Los formularios de mantenimiento no son únicamente capaces de acceder a tablas, sino que también es posible hacer que muestren los datos devueltos por una vista.

 

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_ArticulosAlt"
With lFrm.Grid("Articulo alternativos") ' NO_TRADUCIR_TAG
      .Agregar = True
      .Editar = True
      .Eliminar = True
      .CargaObjetos = False
      .EditarPorObjeto = False
      .Grid.HeadLines = 2
      .AgregaColumna "IdArticulo", 2500, "IdArticulo", False,"Select IdArticulo,IdArticulo IdArt, Descrip from Articulos order by Idarticulo"
      .AgregaColumna "DescripArt", 2000, "Descripción",False
      .AgregaColumna "IdArticuloAlt", 2500, "Art. Alt.",False,"Select IdArticulo,IdArticulo IdArt, Descrip from Articulos order by Idarticulo"
      .AgregaColumna "DescripArtAlt", 2000, "Descripción",True
      .From = "VPers_Articulos_Alternativos"
      .Where = ""
      '.Campo ("@Descrip").Sustitucion = "Select Descrip from Articulos where IdArticulo=@IdArticuloAlt"
      '.ColumnaEscalada = "@Descrip"
       .campo ("IdArticulo").Coleccion = "Articulos"
       .campo ("IdArticulo").ColeccionWhere = "Where IdArticulo = @IdArticulo"
       '.campo ("@Descrip").Coleccion = "Articulos"
       '.campo ("@Descrip").ColeccionWhere = "Where IdArticulo = @IdArticuloAlt"
        .OrdenMultiple = "IdArticulo"
       .RefrescaSinLoad = True

       .Refresca = True
End With
lFrm.MuestraFiltro("Articulo alternativos") = True
lFrm.Form.Caption = "Artículo alternativos "
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["Articulo alternativos"];
            lGrid.Agregar = true;
            lGrid.Editar = true;
            lGrid.Eliminar = true;
            lGrid.CargaObjetos = false;
            lGrid.EditarPorObjeto = false;
            lGrid.GridHeadLines = 2;
            lGrid.AgregaColumna("IdArticulo", 133, "IdArticulo", false, "Select IdArticulo,IdArticulo IdArt, Descrip from Articulos order by Idarticulo");
            lGrid.AgregaColumna("DescripArt", 133, "Descripción", false);
            lGrid.AgregaColumna("IdArticuloAlt", 133, "Art. Alt.", false, "Select IdArticulo,IdArticulo IdArt, Descrip from Articulos order by Idarticulo");
            lGrid.AgregaColumna("DescripArtAlt", 133, "Descripción", true);
            lGrid.From = "VPers_Articulos_Alternativos";
            lGrid.Where = "";
            lGrid.Campo("IdArticulo").Coleccion = "Articulos";
            lGrid.Campo("IdArticulo").ColeccionWhere = "Where IdArticulo = @IdArticulo";
            lGrid.OrdenMultiple = "IdArticulo";
            lGrid.RefrescaSinLoad = true;

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