Grid desde tabla
Publicado por ANTONIO MARTIN (55 intervenciones) el 14/10/2008 18:28:09
Saludos a todos... he creado un grid, definiendo los campos desde una tabla llamada ESTRGRID, e indexada por el campo ORDEN de la siguiente manera:
ORDEN NOMCAMPO ANCHOCAMP MASCARA
01 articulo.codigo 100
02 articulo.nombre 300
03 articulo.pcompra 75 99,999.99
04 articulo.pventa 75 99,999.99
En cualquier formulario inserto un grid en blanco y abrego la tabla ARTICULO y ejecuto una funcion llamada Agrego()
SELECT ESTRGRID
SET ORDER TO 1
GO TOP
THISFORM.GRID1.RECORDSOURCE="ARTICULO"
THISFORM.GRID1.COLUMNCOUNT=RECCOUNT()
FOR I=1 TO RECCOUNT()
COLU="COLUMN"+ALLTRIM(STR(I))
THISFORM.GRID1.&COLU..CONTROLSOURCE=NOMCAMP
THISFORM.GRID1.&COLU..WIDTH=ANCHOCAMP
THISFORM.GRID1.&COLU.INPUTMASK=MASCARA
SKIP
NEXT
RETURN
Lo aanterior me funciona excelente, el problema es cuando agrego a la tabla ESTRGRID un campo que no es de la misma base de datos por ejemplo:
05 departa.nomdepa 200
y agrego al formulario tambien la tabla DEPARTA el ciclo FOR despues de asignar el nombre del campo al CONTROLSOURCE de la columna que le corresponde en la tabla ESTRGRID se brinca a RECCOUNT()+1 con lo cual me marca el error de se ha encontrado el final del archivo.
Trato de hacer esto con la finalidad de que si el cliente quiere cambios en el orden de presentacion de columnas o informaición, no tenga que modificar el programa fuente y hacerlo solo en la tabla ESTRGRID en el negocio del cliente...
Si alguien sabe la razon de porque me hace esto o tiene alguna otra solucion, se los agradecere mucho. De antemano gracias...
ORDEN NOMCAMPO ANCHOCAMP MASCARA
01 articulo.codigo 100
02 articulo.nombre 300
03 articulo.pcompra 75 99,999.99
04 articulo.pventa 75 99,999.99
En cualquier formulario inserto un grid en blanco y abrego la tabla ARTICULO y ejecuto una funcion llamada Agrego()
SELECT ESTRGRID
SET ORDER TO 1
GO TOP
THISFORM.GRID1.RECORDSOURCE="ARTICULO"
THISFORM.GRID1.COLUMNCOUNT=RECCOUNT()
FOR I=1 TO RECCOUNT()
COLU="COLUMN"+ALLTRIM(STR(I))
THISFORM.GRID1.&COLU..CONTROLSOURCE=NOMCAMP
THISFORM.GRID1.&COLU..WIDTH=ANCHOCAMP
THISFORM.GRID1.&COLU.INPUTMASK=MASCARA
SKIP
NEXT
RETURN
Lo aanterior me funciona excelente, el problema es cuando agrego a la tabla ESTRGRID un campo que no es de la misma base de datos por ejemplo:
05 departa.nomdepa 200
y agrego al formulario tambien la tabla DEPARTA el ciclo FOR despues de asignar el nombre del campo al CONTROLSOURCE de la columna que le corresponde en la tabla ESTRGRID se brinca a RECCOUNT()+1 con lo cual me marca el error de se ha encontrado el final del archivo.
Trato de hacer esto con la finalidad de que si el cliente quiere cambios en el orden de presentacion de columnas o informaición, no tenga que modificar el programa fuente y hacerlo solo en la tabla ESTRGRID en el negocio del cliente...
Si alguien sabe la razon de porque me hace esto o tiene alguna otra solucion, se los agradecere mucho. De antemano gracias...
Valora esta pregunta


0