Grid - Visualizar campo en varias lineas

1,049 views
Skip to first unread message

Desarrollos AM

unread,
Aug 20, 2010, 4:19:41 PM8/20/10
to Comunidad de Visual Foxpro en Español
Hola grupo :

Si tengo una tabla con un campo descripcion , por ejemplo de 150
posiciones y quiero
mostrar los datos en un grid , y el campo del grid que corresponde a
la descripcion es
menor en capacidad para mostrar evidentemente esos 150 caracteres ...
hay alguna
manera en que en el grid ese campo pueda ser visualizado en su
totalidad , sabiendo que
no todos los campos puedan llegar a tener ese maximo ????? Usando
VFox 8 .

Desde ya y como siempre , muchas gracias !!!!

LUIS

Roberto Matarrita

unread,
Aug 20, 2010, 4:29:08 PM8/20/10
to publice...@googlegroups.com
Lo que puedes hacer es ampliar la columna del grip en las propiedades WIDTH
 
Para que de esta forma ya aparezca la información.
 
OK.

Desarrollos AM

unread,
Aug 20, 2010, 4:43:51 PM8/20/10
to Comunidad de Visual Foxpro en Español
Roberto , gracias por responder .

Mi inquietud venia por el lado de que el grid tiene la limitacion del
tamaño de pantalla , y si la descripcion precisa mucho mas espacio que
el asignado a la columna correspondiente y la necesidad de leer toda
la descripcion de un solo vistazo. Si la columna me permite 50
posiciones y el campo a mostrar tiene 150 caracteres , la idea seria
mostrar una fila del grid pero con esta columna mas alta que las
demas , esa seria la idea.

On 20 ago, 17:29, Roberto Matarrita <rmatar...@gmail.com> wrote:
> Lo que puedes hacer es ampliar la columna del grip en las propiedades WIDTH
>
> Para que de esta forma ya aparezca la información.
>
> OK.
>

Darío Castillejos Avilés

unread,
Aug 20, 2010, 4:52:28 PM8/20/10
to publice...@googlegroups.com

Cambia la propiedad ShowTips de tu formulario a .T., y al pasar el cursor
del mouse sobre la columna de tu grid se mostrará toda la descripción a
estilo ToolTip.

Otra forma es enviando la información a un TextBox de mayor tamaño, esto lo
puedes hacer de 2 formas:
1. Programarlo en el método AfterRowColChange del grid.
Ejm:
ThisForm.txtcDescripcion.Value = tuCursor.tuCampo

2. Establecer la propiedad ControlSource hacia el campo de la tabla o cursor
Ejm: una vez que tengas abierto el cursor/tabla
oText.ControlSource = tuCursor.tuCampo


Saludos.

-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de Desarrollos AM
Enviado el: Viernes, 20 de Agosto de 2010 15:20
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Grid - Visualizar campo en varias lineas

Hola grupo :

LUIS


__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 5383 (20100820) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com


__________ Información de ESET NOD32 Antivirus, versión de la base de firmas
de virus 5383 (20100820) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com


Roberto Olivas Mendoza

unread,
Aug 20, 2010, 5:10:57 PM8/20/10
to publice...@googlegroups.com
No sé si en VFP8 suceda lo mismo, pero en VFP9 si tú colocas el puntero del
ratón en una celda del grid que se muestre parcialmente, automáticamente
aparece un tooltip text mostrándote todo el contenido de la misma.
Cerciórate que en tu formulario la propiedad Tooltips esté en .T.

-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de Desarrollos AM

Enviado el: Viernes, 20 de Agosto de 2010 02:44 p.m.


Para: Comunidad de Visual Foxpro en Español

Asunto: [vfp] Re: Grid - Visualizar campo en varias lineas

Walter R. Ojeda Valiente

unread,
Aug 20, 2010, 5:41:30 PM8/20/10
to publice...@googlegroups.com
Hola

Tienes otra opción, si lo que requieres es mostrar el contenido de un campo y no estar cambiando el ancho de la columna para cada registro al que se accede.

En el método AfterRowColChange() de tu grilla escribes:

ThisForm.Label1.Caption = MiDescripcion

Label1 podría estar un poco más abajo de tu grilla y podrías mostrar allí otros datos, no solamente la Descripción.

También, en ese mismo método podrías escribir algo como:

LongCampo = Len(AllTrim(MiDescripcion))

do case
  case LongCampo <= 80
    This.Width = 80
  case LongCampo <= 120
    This.Width = 120
  case LongCampo <= 150     && o también: otherwise
    This.Width = 150
endcase

En fin, hay muchas posibilidades, ya dependerá de tu gusto.

Saludos.

Walter.

ibania blanco

unread,
Aug 27, 2010, 6:02:05 PM8/27/10
to Comunidad de Visual Foxpro en Español
cabe destacar que hoy aprendi mucho, con lo de ShowTips y esto
AfterRowColChange(), LongCampo = Len(AllTrim(MiDescripcion))
case LongCampo <= 80
This.Width = 80
pero siempre hay un pero
dario disculpe que sea un poco escasa de mente, pero esto no lo
entiendo

2. Establecer la propiedad ControlSource hacia el campo de la tabla o
cursor
Ejm: una vez que tengas abierto el cursor/tabla
oText.ControlSource = tuCursor.tuCampo

por ejemplo en mi grid y en la columna tengo asi ControlSource
temporal.nombre

Adrián Lobo

unread,
May 13, 2022, 1:01:20 PM5/13/22
to Comunidad de Visual Foxpro en Español
Ya sé que se trata de una conversación antigüa pero me encontré recientemente con el mismo problema. Buscando en foros como éste fui reuniendo información de aquí y de allá y experimentando un poco encontré que es perfectamente posible hacerlo sin necesidad de programación adicional ni trucos que son sólo soluciones parciales que dejan una sensación de insatisfacción.
Tampoco se requiere de implementar nada ni de descargas adicionales, es buena noticia sobre todo cuando trabajas solo y no tienes tiempo de aprender algo adicional, es de agradecerse que existan compañeros que comparten sus conocimientos y técnicas con la comunidad pero la verdad es que a veces lo más simple es lo mejor.
Dejo, sobre todo, la solución que encontré esperando que si alguien más necesita hacer lo mismo, pueda encontrarlo aquí.
Y bien, lo que hice fue, efectivamente, como dijeron aquí otros compañeros, primero cambiar el control TextBox de la columna correspondiente del control Grid y reemplazarlo por un control EditBox.
A continuación, en las propiedades de la columna correspondiente dentro del grid, establecer la propiedad "SPARSE" que está en la pestaña DATA, en FALSE.
Posteriormente dentro del mismo grid, debajo de la columna, entrar a las propiedades del "HEADER", luego, en la pestaña "LAYOUT" localizar la propiedad "WORDWRAP", para ponerla en "TRUE". Y listo.
Ambas propiedades están ahí siempre, en el grid, bajo las opciones de columna y header, respectivamente, pero no funcionan por ejemplo con el control TextBox, por eso es necesario reemplazarlo por el EditBox.
Posteriormente hay que encargarse de la propiedad del grid ROWHEIGHT y de la columna en WIDTH, lo cual significa que todas las filas tendrán el mismo valor de altura (HEICHT) pero pueden tener diferentes dimensiones en el ancho (WIDTH).
Supongo que se podrían ir ajustando esos valores en tiempo de ejecución pero de momento queda a criterio de cada quien. Personalmente la solución me resulta óptima ya que así puedo mostrar la información completa, registro por registro, y no obligo al usuario a hacer scroll horizontalmente para leer textos muy largos.Un consejo adicional: Para mejorar la apariencia del grid elimina el scroll bar del control Edit Box, poniendo en "0" (cero) la opción "SCROLLBARS" dentro de sus propiedades.
Estoy usando VFP9
Reply all
Reply to author
Forward
0 new messages