Insertar y Editar registro de Vistas
Las vistas se usan para mostrar campos que nos interesen de las tablas, campos que surgen de la combinación de varias tablas, etc.
Vamos a describir un ejemplo de insertar/editar registros:
Tenemos una tabla Presupuesto y una VistaPresupuesto (la cual solo muestra algunos campos de la tabla Presupuesto). La Vista tiene un campo idpresupuesto que también esta en la tabla Presupuesto , es la relación que usaremos.
0) Siempre tendremso que tener un manejador de Vista que se usara en el formulario.
Private
ManejadorVistaPrespuesto
As New VistaPresupuestoDAO
1) Para insertar un registro:
Es sencillo ya que lo que usamos en una manejador de la Tabla principal (en este caso AdaptaPresupuestoDAO)
Public
Sub
addPresupuesto_Click()
Dim
manejadorPresupuesto As
New
AdaptadaPresupuestoDAO
manejadorPresupuesto.FormularioRegistrar(2) ' el 2 indica nº de paneles que tendrá el formulario
ManejadorVistaPrespuesto.MostrarGridView(GridViewPresupuesto) ' se mostraran los registro, segun los campos que tenga la vista.
End
2) La Edicion:
La edición no es tan directa. A continuación vemos los pasos a realizar:
Al hacer click en la opción del menu Editar:
Public Sub MenuEditar_Click()
'0.
Definir clases VO temporales y DAO de manejo Tabla
Dim
tmpVO
As
New
VistaPresupuestoVO
'datos
de un registro de vista
Dim
tmpVO1
As
New
PresupuestoVO
'datos
de un registro de una tabla
Dim
tmpDAO
As
New
AdaptadaPresupuestoDAO
'manejador
DAO de tabla (será seguramente una adaptada ya que tendremos modificado el formulario automatizado con combobox o toma de dato de otras tablas)
'1.
Obtener el registro de la vista que este seleccionado en el gridview de la Vista
tmpVO
=
ManejadorVistaPrespuesto.filaSeleccionadaVO()
'2.
Si no es nulo, es porque esta seleccionado algo.
If
Not
IsNull(tmpVO)
Then
'3.
Uso el campo que relaciona las vista con la tabla: idpresupuesto. El
valor lo obtengo por la fila seleccionada en la Vista
tmpVO.idpresupuesto
'
y busco el registro que tenga igual el valor de ese campo en el
Tabla
'
con .ConvertirResult, convierto el resultado en un Array de
PresupuestoVO
tmpVO1
=
tmpDAO.ConvertirResult(tmpDAO.BuscarIgualIdpresupuesto(tmpVO.idpresupuesto))[0]
'4.
Uso los métodos de la clase DAO de la tabla para editar el registro
tmpDAO.FormularioTitulo
=
"Editando
Presupuesto"
tmpDAO.FormularioModificarRegistroIdpresupuesto(tmpVO1.idpresupuesto,
tmpVO1,
2)
'5.
Presento datos en la Vista
ManejadorVistaPrespuesto.MostrarGridView(GridViewPresupuesto)
Endif
De esta manera se verá un formulario de edición, eligiendo una fila de un gridview donde tendremos cargados datos de una Vista.
NOTAS IMPORTANTE:
1) El campo que relaciona la vista con la tabla principal, debe de ser el primer campo de la tabla Vista, para que este se pueda usar al hacer click en la fila del gridview de la vista. En el ejemplo siguiente es el campo "iddescompuesto"
2) Los campos de nombre compuesto NO ESTAN PERMITIDOS, osea no es válido poner "presupuesto.total" como nombre del campo. Hay que usar un alias en la definición de la vista.
Ejemplo:
CREATE VIEW "VistaDescomLabores" AS select iddescompuesto,idpresupuesto,tipo,textocorto,precio,descompuestolabores.medicion as "medicion",descompuestolabores.total as "total" from descompuestolabores,tipo,labor
where
descompuestolabores.idlabor=labor.idlabor
and
descompuestolabores.idtipo=tipo.idtipo
No hay comentarios:
Publicar un comentario