Formulario de mantenimiento con Sólo Array

Creado por David Miralpeix, Modificado el Vie, 16 Feb a 12:26 P. M. por David Miralpeix

Consiste en configurar un frmMantenimiento desconectado de la tabla.
Si bien la carga inicial la podemos realizar desde una tabla o vista, al establecer la propiedad SoloArray a true, hacemos que todo cambio que hagamos en el grid no se realice en la tabla origen.

Se utiliza para los casos que debemos preparar la información para luego realizar un proceso de actualización masiva. Generalmente va acompañado de scripts de pantalla que realizan esa función.


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 "IdArticuloAlt", 2500, "Art. Alt.",False,"Select IdArticulo,IdArticulo IdArt, Descrip from Articulos order by Idarticulo"
      .AgregaColumna "@Descrip", 2000, "Descripción",True
      .AgregaColumna "@M", 2000, "Marca",False
      .From = "Pers_Articulos_Alternativos"
      .Where = ""
              .Campo ("@Descrip").Sustitucion = "Select Descrip from Articulos where IdArticulo = @IdArticuloAlt"
              .Campo ("@M").Booleano = True
              .Campo ("@M").Default = True
              .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
              . soloarray = True
              End With
              lFrm.Form.Width = lFrm.Form.width * 2
              lFrm.Form.Caption = "Artículo alternativos "
               lFrm.Carga , False, 4
End Sub


Código C#:

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

namespace AhoraScriptsVacia
{
    public class Script_0 : AhoraOCX.AhoraBaseScript
    {
        public void Main()
        {
            IFrmMantenimientos lFrm =  (IFrmMantenimientos)gCn.AhoraProceso("NewFrmMantenimiento", out _, gCn);
            lFrm.Form.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", 167, "IdArticulo", false, "Select IdArticulo,IdArticulo IdArt, Descrip from Articulos order by Idarticulo");
            lGrid.AgregaColumna("IdArticuloAlt", 167, "Art. Alt.", false, "Select IdArticulo,IdArticulo IdArt, Descrip from Articulos order by Idarticulo");
            lGrid.AgregaColumna("@Descrip", 133, "Descripción", true);
            lGrid.AgregaColumna("@M", 133, "Marca", false);
            lGrid.Where = "";
            lGrid.Campo("@Descrip").Sustitucion = "Select Descrip from Articulos where IdArticulo = @IdArticuloAlt";
            lGrid.Campo("@M").Booleano = true;
            lGrid.Campo("@M").Default = true;
            lGrid.ColumnaEscalada = "@Descrip";
            lGrid.Campo("IdArticulo").Coleccion = "Articulos";
            lGrid.Campo("IdArticulo").ColeccionWhere = "WHERE IdArticulo = @IdArticulo";
            lGrid.Campo("@Descrip").Coleccion = "Articulos";
            lGrid.Campo("@Descrip").ColeccionWhere = "WHERE IdArticulo = @IdArticuloAlt";
            lGrid.RefrescaSinLoad = true;

            lGrid.Refresca = true;
            lGrid.SoloArray = true;

            lFrm.Form.Width = lFrm.Form.Width * 2;
            lFrm.Form.Text = "Artículos alternativos";

            lFrm.Carga(null, false, AhoraOCX.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