Grid - Cargar grid con los datos de una tabla y el where recibidos como parámetros.

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

Procedimiento para cargar los datos de una tabla recibida como parámetro, filtrando por el where, también recibido


Código VB6:

Sub CargaHistoricoArticulo ( aNomTabla,aWhere, aCaption )
' Formulario de mantenimiento
Set lfrm = gcn.AhoraProceso("NewfrmMantenimiento",False,gCn)
     lfrm.Form.Width = 10000
     lfrm.Form.Height = 7000
     lfrm.Form.Caption= aCaption
 Set lGrid= lFrm.Grid("HistoricoArticulo")
 With lGrid
 If Not .Preparada Then
     .Agregar = False
     .Editar = False
     .Eliminar = False 
     .RowDivider = 6
     .ColDivider = 6
     .Grid.HeadLines = 1
.CargaObjetos = False
.EditarPorObjeto = False
lsql="Select sc.name Campo , REPLACE (CASE WHEN LEFT (sc.name,2)='D_' THEN RIGHT(sc.name,Len( sc.name)-2) ELSE sc.name END ,'_' ,' ') nombre , " & _
" stB.name tipocampo, st.length long from Sys.syscolumns Sc inner Join sys.systypes St On Sc.xusertype = st.xusertype " & _
" inner Join systypes stB On st.xtype = stb.xtype And st.xtype = stb.xusertype " & _
" WHERE object_id('" & aNomTabla & "') = id " & _
" And Sc.name Not In ('FechaInsertUpdate','IdDoc', 'InsertUpdate')"

Set lr1 = gcn.OpenResultSet (lSQL)
While Not lr1.EOF
lCampo = CStr(lr1("Campo"))
ldescrip = CStr(lr1("nombre"))
lTipo = CStr(lr1("tipocampo"))
lLong = CStr(lr1("long"))
 Select Case ltipo
     Case "int","smallint" .AgregaColumna "" & lCampo & "" , 800, "" & ldescrip & "", False,,,"#,##0"
     Case "varchar","nvarchar" .AgregaColumna "" & lCampo & "" , 3000, "" & ldescrip & "", False
     Case "datetime" .AgregaColumna "" & lCampo & "" , 2000, "" & ldescrip & "", False,,,"dd/mm/yyyy hh:mm"
     Case "float" ,"decimal" ,"real" ,"money" ,"smallmoney" .AgregaColumna "" & lCampo & "" , 1000, "" & ldescrip & "", False,,,"#,##0.00"
     Case "date" ,"smalldatetime" .AgregaColumna "" & lCampo & "" , 1000, "" & ldescrip & "", False,,,"dd/mm/yyyy"
     Case Else .AgregaColumna "" & lCampo & "" , 2000, "" & ldescrip & "", False
End Select
    lr1.MoveNext
    Wend
    Set lr1=Nothing
     .From = aNomTabla 
     .Where = aWhere
     .Refresca = True
     End If

     End With 

         lFrm.Form.Caption = "Historico de modificaciones del articulo "
         lFrm.Carga , True, 4 
         Set lFrm = Nothing
End Sub

Código C#:

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

namespace AhoraScriptsPantalla
{
  public class AhoraCl_frmArticulos : AhoraOCX.AhoraBaseScript
  {

    public void Show()
        {
            CargaHistoricoArticulo("Articulos", "", "Histórico de modificaciones del artículo");
        }


        private void CargaHistoricoArticulo(string aNomTabla, string aWhere, string aCaption)
        {
            IFrmMantenimientos lFrm = (IFrmMantenimientos)gCn.AhoraProceso("NewFrmMantenimiento", out _, gCn);
            lFrm.NombreForm = "Pers_CargaHistoricoArticulo";
            lFrm.Form.Width = 667;
            lFrm.Form.Height = 467;
            ICntGridUsuario lGrid = lFrm["HistoricoArticulo"];

            if (!lGrid.Preparada)
            {
                lGrid.Agregar = false;
                lGrid.Editar = false;
                lGrid.Eliminar = false;

                lGrid.RowDivider = DividerStyleConstants.dbgLightGrayLine;
                lGrid.ColDivider = DividerStyleConstants.dbgLightGrayLine;
                lGrid.GridHeadLines = 1;

                lGrid.CargaObjetos = false;
                lGrid.EditarPorObjeto = false;

                string lSql = "Select sc.name Campo , REPLACE (CASE WHEN LEFT (sc.name,2)='D_' THEN RIGHT(sc.name,Len( sc.name)-2) ELSE sc.name END ,'_' ,' ') nombre, stB.name tipocampo, st.length long from Sys.syscolumns Sc inner Join sys.systypes St On Sc.xusertype = st.xusertype inner Join systypes stB On st.xtype = stb.xtype And st.xtype = stb.xusertype " + " WHERE object_id('" + aNomTabla + "') = id And Sc.name Not In ('FechaInsertUpdate','IdDoc', 'InsertUpdate')";

                string lCampo = "";
                string lDescrip = "";
                string lTipo = "";
                string lLong = "";

                IRecordSet lr1 = gCn.OpenResultSet(lSql);
                while (!lr1.EOF)
                {
                    lCampo = lr1["Campo"].Value;
                    lDescrip = lr1["nombre"].Value;
                    lTipo = lr1["tipocampo"].Value;
                    lLong = lr1["long"].Value;
                    switch (lTipo)
                    {
                        case "int":
                        case "smallint":
                            {
                                lGrid.AgregaColumna("" + lCampo + "", 53, "" + lDescrip + "", false, "", false, "#,##0");
                                break;
                            }
                        case "varchar":
                        case "nvarchar":
                            {
                                lGrid.AgregaColumna("" + lCampo + "", 200, "" + lDescrip + "", false);
                                break;
                            }
                        case "datetime":
                            {
                                lGrid.AgregaColumna("" + lCampo + "", 133, "" + lDescrip + "", false, "", false, "dd/MM/yyyy hh:mm");
                                break;
                            }
                        case "float":
                        case "decimal":
                        case "real":
                        case "money":
                        case "smallmoney":
                            {
                                lGrid.AgregaColumna("" + lCampo + "", 67, "" + lDescrip + "", false, "", false, "#,##0");
                                break;
                            }
                        case "date":
                        case "smalldatetime":
                            {
                                lGrid.AgregaColumna("" + lCampo + "", 133, "" + lDescrip + "", false, "", false, "dd/MM/yyyy");
                                break;
                            }
                        default:
                            {
                                lGrid.AgregaColumna("" + lCampo + "", 133, "" + lDescrip + "", false);
                                break;
                            }
                    }

                    lr1.MoveNext();
                }

                lr1 = null;

                lGrid.From = aNomTabla;
                lGrid.Where = aWhere;
                lGrid.Refresca = true;
            }

            lFrm.Form.Text = aCaption;
            lFrm.Carga(null, true, EBotonesMant.eBotMant_Cerrar);

            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

¡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