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 SubCó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