Formulario de mantenimiento con Colección (para edición de campos configurables)

Creado por David Miralpeix, Modificado el Fri, 16 Feb 2024 a las 12:26 PM por David Miralpeix

Permite la edición de los objetos del ERP, mediante un grid.
Esto permite que podamos ver y editar en 2 tablas, la tabla de objeto y la de sus configurables.

La clave de esta configuración radica en establecer la propiedad .EditarPorObjeto = True y "setear" una colección en la propiedad colección.
---------------------------
.EditarPorObjeto = True ' El guardado de los datos se hace a través del objeto.
Set .Coleccion = gcn.Obj.dameColeccion ("Articulos", "where IdArticulo <> ''") ' Cargar una colección ya filtrada

ADEMÁS:
Set .Coleccion = gcn.Obj.dameColNothing ("Articulos") ' carga una colección vacía. Es más rápido y útil si quiero cargar una grid sin datos para que el filtrado lo haga el usuario.
.CargaObjetos = False ' Estando a false, me permite modificar los campos FROM y WHERE del grid.
---------------------------


Código VB6:

Sub Main()
       frmAux.Descargar 'ATENCIÓN: DEBE ESTAR SIEMPRE QUE NO SE MUESTRE EL FORMULARIO.
       Set lFrm = gcn.ahoraproceso ("NewFrmMantenimiento",False,gcn)
       lfrm.Form.NombreForm = "frmMantPers_Articulos"
       With lFrm.Grid("Articulos")' NO_TRADUCIR_TAG
              .Agregar = False
              .Editar = True
              .Eliminar = False
              .CargaObjetos = False
              .EditarPorObjeto = True
          Set .Coleccion = gcn.Obj.dameColeccion ("Articulos", "where IdArticulo <> ''")
                  .Grid.HeadLines = 2
                  .AgregaColumna "IdArticulo", 2500, "IdArticulo", True,"Select IdArticulo,IdArticulo IdArt, Descrip from Articulos order by Idarticulo"
                  .AgregaColumna "Descrip", 2000, "Descripción",True
                  .AgregaColumna "Alto", 2000, "Alto",False
                  .AgregaColumna "Ancho", 2000, "Ancho",False

                  .From = "VDLG_Articulos"
                       .Where = ""
                              .campo ("IdArticulo").Coleccion = "Articulos"
                              .campo ("IdArticulo").ColeccionWhere = "Where IdArticulo = @IdArticulo"
                              .OrdenMultiple = "IdArticulo"
                              .RefrescaSinLoad = True
                              .Refresca = True
       End With
                 lFrm.MuestraFiltro("Articulos") = True
                 lFrm.Form.Caption = "Artículos"
                 lFrm.Carga , False, 4
End Sub

Código C#:

using AhoraAsistentes;
using AhoraCore;
using AhoraOCX;
using AhoraSistema;

namespace AhoraScriptsVacia
{
    public class Script_0 : AhoraOCX.AhoraBaseScript
    {
        public void Main()
        {
            IFrmMantenimientos lFrm = (IFrmMantenimientos)gCn.AhoraProceso("NewFrmMantenimiento", out _, gCn);
            lFrm.NombreForm = "frmMantPers_ArticulosAlt";
            ICntGridUsuario lGrid = lFrm["Artículos"];
            lGrid.Agregar = false;
            lGrid.Editar = true;
            lGrid.Eliminar = false;
            lGrid.CargaObjetos = false;
            lGrid.EditarPorObjeto = true;
            lGrid.Coleccion = gCn.Obj.DameColeccion("Articulos", "where IdArticulo <> ''");
            lGrid.GridHeadLines = 2;
            lGrid.AgregaColumna("IdArticulo", 133, "IdArticulo", false, "Select IdArticulo,IdArticulo IdArt, Descrip from Articulos order by Idarticulo");
            lGrid.AgregaColumna("Descrip", 133, "Descripción", false);
            lGrid.AgregaColumna("Alto", 133, "Alto", false);
            lGrid.AgregaColumna("Ancho", 133, "Ancho", false);
            lGrid.From = "VDLG_Articulos";
            lGrid.Where = "";
            lGrid.Campo("IdArticulo").Coleccion = "Articulos";
            lGrid.Campo("IdArticulo").ColeccionWhere = "Where IdArticulo = @IdArticulo";
            lGrid.OrdenMultiple = "IdArticulo";
            lGrid.RefrescaSinLoad = true;
            lGrid.Refresca = true;

            lFrm.SetMuestraFiltro("Artículos", true);
            lFrm.Form.Text = "Artículos";
            lFrm.Carga(null, false, EBotonesMant.eBotMant_Cerrar);
        }
    }
}

¿Le ha sido útil este artículo?

¡Qué bien!

Gracias por sus comentarios

¡Sentimos mucho no haber sido de ayuda!

Gracias por sus comentarios

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo