Establecer orden de los campos en el Grid

667 views
Skip to first unread message

Gabriel Velazco

unread,
Jun 11, 2011, 9:26:04 PM6/11/11
to publice...@googlegroups.com
Que tal Amigos :
 
Estoy bloqueado con un Grid que no encuentro la forma de mostrar algunos
campos de la Tabla Articulos. 
Mi  formulario de Registro de Ingreso esta compuesto por 2 tablas :

a) tabla KARDEX ( encabezado de la Factura)
b) tabla ARTICULO (detalle de la Factura )

 

Ambas tablas tienen 3 campos indexados que me sirven para realizar el Set
Relation to

La Tabla secundaria esta Enlazada a un Grid  solo debe visualizarme 9 
campos de los 18 que posee dicha tabla)

Los titulos del encabezado del Grid ya fueron definidos en el orden que deseo visualizar los campos.
 
Pero el detalle al utilizar la tabla Articulo me muestra los campos en otro orden diferente...
 
Si utilizo un SELECT SQL obtengo un Cursor en el orden que deseo los campos y ahi si encaja cada
campo con su respectiva cabecera de titulo, pero el problema es que se pierda la relacion establecida...
 
Que debo hacer para obtener el Detalle en el orden de los Titulos del GRID pero utilizando la Tabla Articulos
y asi no se pierda la relacion establecida...
 
Agradezco sus comentarios y/o sugerencias.

atte.,

Gabriel

PD : ADJUNTO EN UN ARCHIVO COMO MUESTRA DEL PROBLEMA CON EL GRID
 

Demo_Cleaner.docx

Daniel Sánchez

unread,
Jun 12, 2011, 12:10:30 AM6/12/11
to publice...@googlegroups.com
Lo único que puede hacer que tu grid se desconfigure las columnas con sus campos indicados de la tabla, es que eliminas la tabla u realices una nueva consulta dejando sin fuente de datos por un momento al grid, para evitar esto lo único que debes hacer es limpiar la referencia del recordsource=[], antes de realizar la consulta a obtener los nuevos datos, una vez obtenidos lo vuelves asignar el nombre de la tabla recordsource=[mitabla].

Saludos

--
Daniel Sánchez Escobar
Investigación y Desarrollo
Reset Software & Sistemas
Móvil +051-949398047
Trujillo - Perú

Foxero

unread,
Jun 12, 2011, 10:04:38 AM6/12/11
to Comunidad de Visual Foxpro en Español
Hola Gabriel

Trata de asignar a cada columna del grid el campo de la tabla que se
muestre en esa columna. Esto puedes hacerlo en la propiedad
ControlSource de la columna.

Algo asi como:

Thisform.MiGrid.MiColumna1.ControlSource='MiTabla.MiCampo'

Espero te sirva

Saludos
David

Gabriel Velazco

unread,
Jun 12, 2011, 4:43:18 PM6/12/11
to Comunidad de VFP
Gracias amigos por sus comentarios y sugerencias...
 
Para el amigo Foxero lo estaba intentando usando la propiedad ControlSource pero dentro de la columna del Grid y no me mostraba ningun registro, mas lo hice de la forma que me sugeristes y si pude visualizar los campos de acuerdo al orden que deseaba...
 
Pero aparecio un nuevo problema aquellas Facturas  o Boletas de Venta que tienen mas de 2 detalles (registros grabados) pues en esos casos me repite el mismo Registro.
 
A continuacion el codigo que estoy utilizando.
 
**********************************************
* Asigno al Grid las siguientes propiedades:
**********************************************
Thisform.GridDetalle.RecordSource="Articulo"
Thisform.GridDetalle.RecordSourceType=0
Thisform.GridDetalle.RelationalExpr="Tipo_Doc+ Ser_Doc+ Nro_Doc"
Thisform.GridDetalle.ChildOrder="Artindx"
Thisform.GridDetalle.LinkMaster="Kardex"
*********************************************************
* Campos a mostrar en el Grid segun el orden establecido
*********************************************************
Thisform.GridDetalle.Column1.ControlSource="Articulo.Figura"
Thisform.GridDetalle.Column2.ControlSource="Articulo.Descrip"
Thisform.GridDetalle.Column3.ControlSource="Articulo.Color"
Thisform.GridDetalle.Column4.ControlSource="Articulo.Fibra"
Thisform.GridDetalle.Column5.ControlSource="Articulo.Cant"
Thisform.GridDetalle.Column6.ControlSource="Articulo.Dia"
Thisform.GridDetalle.Column7.ControlSource="Articulo.Fech_Ent"
Thisform.GridDetalle.Column8.ControlSource="Articulo.Listo"
Thisform.GridDetalle.Column9.ControlSource="Articulo.Status"
Thisform.GridDetalle.Column10.ControlSource="Articulo.Tipo_Doc"
Thisform.GridDetalle.Column11.ControlSource="Articulo.Ser_Doc"
Thisform.GridDetalle.Column12.ControlSource="Articulo.Nro_Doc"
THIS.Refresh
 
Agradezco sus comentarios y/o sugerencias.

atte.,

Gabriel

PD : ADJUNTO NUEVAMENTE EL ARCHIVO CON EL PROBLEMA DEL GRID
 

Demo_Cleaner_2.doc

Foxero

unread,
Jun 13, 2011, 12:28:36 AM6/13/11
to Comunidad de Visual Foxpro en Español
Hola de nuevo

Ya intentaste con SET SKIP....

Checa la ayuda de VFP


Me comentas el resultado

Saludos
David


On 12 jun, 15:43, Gabriel Velazco <gabriel_romant...@hotmail.com>
wrote:
>  Demo_Cleaner_2.doc
> 476 KVerDescargar

integral

unread,
Jun 13, 2011, 8:35:45 PM6/13/11
to Comunidad de Visual Foxpro en Español

Gracias amigo Foxero por tu sugerencia...

Probe con los sigunetes comandos :

SET KEY TO...
SET SKIP TO...

Pero no resulto el efecto deseado...

Al final solo indique :

Thisform.RecordSourceType = 1

Y se arreglo el problema...

Saludos,

Gabriel
> > 476 KVerDescargar- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Gabriel Velazco

unread,
Jun 19, 2011, 12:59:50 PM6/19/11
to Comunidad de VFP
Amigo Hitiel Fernandez :
 
En relacion a tu pregunta, te muestro el codigo que utilizo como solucion a tu problema...
 
FOR lnItem = 1 To .ListCount
 cExtension = IIF(RIGHT(THIS.List(lnItem),1) = "M","Masculino","Femenino")
 DO CASE
   CASE
cExtension = "M"
     Thisform.List2.Picture[lnItem] = "C:\CONTROL90\APLICACION\BMPS\USER.BMP"
   CASE cExtension = "F"
     Thisform.List2.Picture[lnItem] = "C:\CONTROL90\APLICACION\ICONOS\GROUP.PNG"
 ENDCASE
ENDFOR
 
Saludos
 
Gabriel
(Lima-Perú)
 
PD : ADJUNTO ARCHIVO DONDE MUESTRO EL RESULTADO DEL ICONO EN EL LISTBOX
 
Icono_ListBox.jpg

Hitiel Hernández

unread,
Jun 23, 2011, 12:34:17 PM6/23/11
to publice...@googlegroups.com
Gracias Gabriel por tu pronta respuesta.
 
pero, en qué evento escribo el código que me describiste?
Aún no logro hacerlo funcionar.
 
muchas gracias por tu respuesta!

2011/6/19 Gabriel Velazco <gabriel_...@hotmail.com>



--
Sabiduría ante todo; adquiere sabiduría

integral

unread,
Jul 20, 2011, 9:15:42 PM7/20/11
to Comunidad de Visual Foxpro en Español

Amigo Hitiel Fernandez :

He estado muy ocupado con bastante trabajo que me ausente del foro por
varios dias...

Pues bien en relacion a tu pregunta tan solo el codigo que te puse de
ejemplo lo colocas en el evento INIT del ListBox....y listo..

atte.,

Gabriel

On 23 jun, 11:34, Hitiel Hernández <hitie...@gmail.com> wrote:
> Gracias Gabriel por tu pronta respuesta.
>
> pero, en qué evento escribo el código que me describiste?
> Aún no logro hacerlo funcionar.
>
> muchas gracias por tu respuesta!
>
> 2011/6/19 Gabriel Velazco <gabriel_romant...@hotmail.com>
>
>
>
>
>
> >  Amigo Hitiel Fernandez :
>
> > En relacion a tu pregunta, te muestro el codigo que utilizo como solucion a
> > tu problema...
>
> > FOR lnItem = 1 To .ListCount
> >  cExtension = IIF(RIGHT(THIS.List(lnItem),1) = "M","Masculino","Femenino")
>
> >  DO CASE
> >    CASE cExtension = "M"
> >      Thisform.List2.Picture[lnItem] =
> > "C:\CONTROL90\APLICACION\BMPS\USER.BMP"
> >    CASE cExtension = "F"
> >      Thisform.List2.Picture[lnItem] =
> > "C:\CONTROL90\APLICACION\ICONOS\GROUP.PNG"
> >  ENDCASE
> > ENDFOR
>
> > Saludos
>
> > Gabriel
> > (Lima-Perú)
>
> > PD : ADJUNTO ARCHIVO DONDE MUESTRO EL RESULTADO DEL ICONO EN EL LISTBOX
>
> --
> *Sabiduría ante todo; adquiere sabiduría*- Ocultar texto de la cita -

Hitiel Hernández

unread,
Aug 19, 2011, 9:06:45 AM8/19/11
to publice...@googlegroups.com
gracias amigo!!
Reply all
Reply to author
Forward
0 new messages