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 SubCó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
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo