En un mismo formulario de mantenimiento, generamos dos grids, uno en cada pestaña. Uno de los grids se filtra automáticamente con el contenido del primero.
Útil cuando necesitamos mantener datos en 2 tablas vinculadas.
La propiedad del campo "TAG" es la que establece el vínculo entre los diferentes grids. El campo clave debe llamarse igual en ambos grids.
Código VB6:
Sub main() Dim lfrm Set lfrm = ceesi_apoyo.getformbyname("FRMMANTENIMIENTOS") lfrm.form.panCaption.AccionarSeguridad With lFrm.Grid("Datos Scripts") If Not .Preparada Then .Agregar =True .Editar = True .Eliminar = True .CargaObjetos = False .EditarPorObjeto = False .AgregaColumna "IdCliente", 1500, "IdCliente", , "SELECT IdCliente, Cliente FROM Clientes_Datos ", True .AgregaColumna "@Cliente", 3000, "Cliente" .Campo("@Cliente").Sustitucion = "SELECT TOP 1 cliente FROM clientes_datos WHERE IdCliente=@IdCliente" .Campo("@Cliente").Column.AllowFocus = False .AgregaColumna "IdEmpleado", 500, "IdEmpleado", , "SELECT IdEmpleado,IdEmpleado,Nombre + ','+ Apellidos as Empleado FROM Empleados_Datos ", True .AgregaColumna "@Nombre", 2000, "Nombre" .Campo("@Nombre").Sustitucion = "SELECT TOP 1 Nombre + ','+ Apellidos as Empleado FROM Empleados_Datos WHERE IdEmpleado=@IdEmpleado" .Campo("@Nombre").Column.AllowFocus = False .AgregaColumna "Analisis", 2000, "Analisis" .AgregaColumna "Descrip", 5000, "Descrip" .AgregaColumna "FechaModif", 1000, "Fecha Modif",,,,"dd/mm/yyyy" .AgregaColumna "IdEjemplo", 200, "IdEjemplo", True .Campo("IdEjemplo").Tag = "IdEjemplo" .Campo("IdEjemplo").Column.AllowFocus = False .From = "Ceesi_Clientes_programacion" .Orden = "IdDoc" .Refresca = True End If End With With lFrm.Grid("Scripts") If Not .Preparada Then .Agregar = True .Editar = True .Eliminar = True .CargaObjetos = False .EditarPorObjeto = False .AgregaColumna "IdEjemplo", 0, "IdEjemplo" .AgregaColumna "Objeto", 1500, "Objeto", , "SELECT Objeto, DEscrip FROM Objetos ", True .AgregaColumna "Formulario", 4000, "Formulario" .AgregaColumna "Script", 750, "Script" .Campo("IdEjemplo").Tag = "IdEjemplo" .From = "CEESI_clientes_Programacion_scripts" .Orden = "IdDOc" .Refresca = True End If End With lFrm.EnlaceGrid("Scripts") = "Datos Scripts" lFrm.MuestraFiltro("Datos Scripts") = True 'lFrm.MuestraFiltro("Scripts") = True lfrm.form.Width=15000 lfrm.form.Height=10000 lfrm.form.left=200 lfrm.form.top=100 lFrm.Carga Set lFrm = Nothing frmAux.Descargar End Sub
Código C#:
using AhoraAsistentes; using AhoraSistema; using AhoraOCX; using AhoraCore; using System.Windows.Forms; namespace AhoraScriptsVacia { public class Script_0 : AhoraOCX.AhoraBaseScript { public void Main() { IFrmMantenimientos lFrm = (IFrmMantenimientos)gCn.AhoraProceso("NewFrmMantenimiento", out _, gCn); (lFrm.Form.Controls["panCaption"] as IEnlaceObjetos).AccionarSeguridad(); ICntGridUsuario lGrid = lFrm["Datos Scripts"]; if (!lGrid.Preparada) { lGrid.Agregar = true; lGrid.Editar = true; lGrid.Eliminar = true; lGrid.CargaObjetos = false; lGrid.EditarPorObjeto = false; lGrid.AgregaColumna("IdCliente", 100, "IdCliente", false, "SELECT IdCliente, Cliente FROM Clientes_Datos ", true); lGrid.AgregaColumna("@Cliente", 200, "Cliente"); lGrid.Campo("@Cliente").Sustitucion = "SELECT TOP 1 cliente FROM clientes_datos WHERE IdCliente=@IdCliente"; lGrid.Campo("@Cliente").Column.AllowFocus = false; lGrid.AgregaColumna("IdEmpleado", 33, "IdEmpleado", false, "SELECT IdEmpleado,IdEmpleado,Nombre + ','+ Apellidos as Empleado FROM Empleados_Datos ", true); lGrid.AgregaColumna("@Nombre", 133, "Nombre"); lGrid.Campo("@Nombre").Sustitucion = "SELECT TOP 1 Nombre + ','+ Apellidos as Empleado FROM Empleados_Datos WHERE IdEmpleado=@IdEmpleado"; lGrid.Campo("@Nombre").Column.AllowFocus = false; lGrid.AgregaColumna("Analisis", 133, "Analisis"); lGrid.AgregaColumna("Descrip", 333, "Descrip"); lGrid.AgregaColumna("FechaModif", 66, "Fecha Modif", false, "", false, "dd/mm/yyyy"); lGrid.AgregaColumna("IdEjemplo", 13, "IdEjemplo", true); lGrid.Campo("IdEjemplo").Tag = "IdEjemplo"; lGrid.Campo("IdEjemplo").Column.AllowFocus = false; lGrid.From = "Ceesi_Clientes_programacion"; lGrid.Orden = "IdDoc"; lGrid.Refresca = true; } ICntGridUsuario lGrid2 = lFrm["Scripts"]; if (!lGrid2.Preparada) { lGrid2.Agregar = true; lGrid2.Editar = true; lGrid2.Eliminar = true; lGrid2.CargaObjetos = false; lGrid2.EditarPorObjeto = false; lGrid2.AgregaColumna("IdEjemplo", 0, "IdEjemplo"); lGrid2.AgregaColumna("Objeto", 100, "Objeto", false, "SELECT Objeto, DEscrip FROM Objetos ", true); lGrid2.AgregaColumna("Formulario", 267, "Formulario"); lGrid2.AgregaColumna("Script", 50, "Script"); lGrid2.Campo("IdEjemplo").Tag = "IdEjemplo"; lGrid2.From = "CEESI_clientes_Programacion_scripts"; lGrid2.Orden = "IdDoc"; lGrid2.Refresca = true; } lFrm.SetEnlaceGrid("Scripts", "Datos Scripts"); lFrm.SetMuestraFiltro("Datos Scripts", true); lFrm.Form.Width = 1000; lFrm.Form.Height = 667; lFrm.Form.Left = 200; lFrm.Form.Top = 100; lFrm.Carga(gCn.Sesion.MainForm, true); lFrm = null; } } }
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo