Introducir registros nuevos pero con algunos datos
Cuando añadimos registros a una tabla, algunas veces, ocurre que ya hay campos que conocemos ya su valor. Por ejemplo, si un registro lleva la fecha del dia que se crea, cuando se crea ese registro ese dato ya es conocido.Vamos a definir los pasos a realizar:
'1º creo un registro de datos
'2º pongo dato conocido
'3º añado un nuevo registro a la base de datos...
'4º voy al ultimo registro
'5º edito...
'6º compruebo que el usuario no cancelo el formulario de entrada de datos
Código de ejemplo:
Public
Sub
AgregarLabor_Click()
Dim idcategoriaActual As Integer
Dim tmpVO As New LaborVO
Dim ArrayTmpVo As New LaborVO[]
Dim hresult As Result
Dim realizado As Boolean
'esta añadido es especial, ya que se van a incluir un dato ya predefinido.
'1º creo un registro de datos
'2º pongo dato conocido
idcategoriaActual = Val(Split(ComboBoxLaboresSubcategoria.Text, "|")[0])
tmpVO.idsubcategoria = idcategoriaActual
'3º añado un nuevo registro a la base de datos...
manejadorLabores.registrar(tmpVO)
'4º voy al ultimo registro
hresult = manejadorLabores.contenido()
hresult.MoveLast
ArrayTmpVo = manejadorLabores.ConvertirResult(hresult)
'5º edito...
realizado = manejadorLabores.FormularioModificarRegistroIdlabor(ArrayTmpVo[0].idlabor, ArrayTmpVo[0], 1)
'6º compruebo que el usuario no cancelo el formulario de entrada de datos
If realizado Then
'mostrar datos
ComboBoxLaboresSubcategoria_click()
Else
'el usuario cancelo el formulario , borrar el registro introducido temporalmente.
manejadorLabores.BorrarIdlabor(ArrayTmpVo[0].idlabor)
Endif
End
Dim idcategoriaActual As Integer
Dim tmpVO As New LaborVO
Dim ArrayTmpVo As New LaborVO[]
Dim hresult As Result
Dim realizado As Boolean
'esta añadido es especial, ya que se van a incluir un dato ya predefinido.
'1º creo un registro de datos
'2º pongo dato conocido
idcategoriaActual = Val(Split(ComboBoxLaboresSubcategoria.Text, "|")[0])
tmpVO.idsubcategoria = idcategoriaActual
'3º añado un nuevo registro a la base de datos...
manejadorLabores.registrar(tmpVO)
'4º voy al ultimo registro
hresult = manejadorLabores.contenido()
hresult.MoveLast
ArrayTmpVo = manejadorLabores.ConvertirResult(hresult)
'5º edito...
realizado = manejadorLabores.FormularioModificarRegistroIdlabor(ArrayTmpVo[0].idlabor, ArrayTmpVo[0], 1)
'6º compruebo que el usuario no cancelo el formulario de entrada de datos
If realizado Then
'mostrar datos
ComboBoxLaboresSubcategoria_click()
Else
'el usuario cancelo el formulario , borrar el registro introducido temporalmente.
manejadorLabores.BorrarIdlabor(ArrayTmpVo[0].idlabor)
Endif
End
Nota:
Si queremos que este campo no sea modificable (osea que solo se muestra y no se pueda cambiar) cuando se crea el formulario automatizado, debemos de modificar la función GeneradorCodigoFormulario() que se encuentre en la clase DAO del manejador
Añadiremos un nuevo parámetro ""|true;" al valuebox, para que se vuelva "de solo lectura", (se mostrará de color gris)
Código a sustituir
'codigocampos &= "valuebox|idsubcategoria|" & ("idsubcategoria") & "|" & datosEditar.idsubcategoria & ";"
Código añadido:
codigocampos &= "valuebox|idsubcategoria|" & ("idsubcategoria") & "|" & datosEditar.idsubcategoria & "|true;"
No hay comentarios:
Publicar un comentario