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);
        }
    }
}