FoxPro/Visual FoxPro - Se Distorciona un Grid.

 
Vista:

Se Distorciona un Grid.

Publicado por Juan Carlos Lopera (13 intervenciones) el 18/09/2011 17:36:47
Un saludo cordial a todos.

Antes de nada gracias por su atención.

Resulta que tengo un Form que contiene varios TxtBox, Grids y demas objetos, es digamos de mediana dimensión, luego de ejecutar varias operaciones y realizar un Select asignado al ControlSource de un Grid y al volver a desplegar el mismo, este aparece con las columnas distorcionadas, es decir ya no aparecen igual como fueron definidos, Los títulos de las columnas aparecen con los nombres de los campos de la tabla y los anchos de las columnas bastante reducidas y los demas atributos receteados.

No se como resolver este problema, gracias por su ayuda !!!!!!

Luego en otro Form al salir del mismo o sea al ejecutar Thisform.Release siempre me sale el mensaje que una variable de Memoria no existe.

Creo que los dos problemas estan relacionas con algun parametro de configuración pero no se cual es.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Se Distorciona un Grid.

Publicado por SIXTO RAMON E (4 intervenciones) el 18/09/2011 18:00:41
Buen día,
Te comento como lo soluciono yo.. cuando tengo que mostrar datos en un grid, lo hago:
1) creo un metodo p.ej. llamado cargagrid() donde ejecuto mi consulta Select generando un cursor o una tabla libre.-
2) creo un metodo llamado p.ej. mostrargrid() en el cual asigno al controlsource del grid el cursor generado en el metod de carga segun el diseño del grid que quiera:
P.Ej.

lccur1 = ThisForm.lcur1

ThisForm.grid2.ColumnCount = 4
ThisForm.grid2.RecordSource = (lccur1)
Thisform.grid2.RecordSourceType = 1

WITH ThisForm.grid2
.column1.controlsource = "IDCTA"
.column2.controlsource = "DESCRIPCION"
.column3.controlsource = "IMPORTE"
.column4.controlsource = "PAGADO"

.column1.width = 40
.column2.width = 130
.column3.width = 90
.column4.width = 90
ENDWITH

SELECT (lccur1)
GO TOP
ThisForm.grid2.Refresh()

Bueno.. espero te sirva.-
Saludos..!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Se Distorciona un Grid.

Publicado por Juan Manuel Cruz (512 intervenciones) el 19/09/2011 10:34:17
Lo del Grid pasa porque internamente el origen de datos se cierra y vuelve a abrir, con lo que se desconfigura -o reinicia, como prefieras llamarlo- el Grid.

Puedes quitar el nombre del origen de datos antes de hacer los cambios, y volver a ponerlo tras finalizar, para no afectar el Grid, pero éste seguirá dando problemas.

Yo por ejemplo, tengo una clase predefinida basada en Grid, que desde el INIT guarda una copia de las definiciones de columna, así que tras un proceso de estos, recurre a esa copia para restaurar el aspecto de todas las columnas.

PROCEDURE Col_Guarda
LOCAL oCOl as Column
FOR EACH oCol IN this.Columns
oCol.Tag= ocol.ControlSource
NEXT

PROCEDURE Col_Recupera
LOCAL oCOl as Column
FOR EACH oCol IN this.Columns
ocol.ControlSource = oCol.Tag
NEXT

Y en el init del Grid:
this.col_guarda()

Y tras cada proceso que me cambie el origen de datos...
*** bla blabla...
Thisform.MyGrid.Col_recupera()
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se Distorciona un Grid.

Publicado por Ale P (92 intervenciones) el 19/09/2011 15:59:27
Nooo! eso es una locura!!

la mejor forma es que cada vez que vas a tocar algo en el cursos/tabla que esta pegado a la grilla hagas esto

thisform.grilla.recordsource = null

hacer cambios en cursor

thisform.grilla.recordsource = "cursor"

y eso es todo, con eso conserva toda la configuracion
salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Se Distorciona un Grid.

Publicado por Juan Manuel Cruz (512 intervenciones) el 19/09/2011 16:12:13
Intenta hacer un CursorFill y CursorRefresh de un CursorAdapter, y verás que si hay un grid asociado, se desconfigura, sin importar si has dejado vacío el RecordSource de éste antes de proceder a la operación.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Se Distorciona un Grid.

Publicado por Juan Carlos Lopera (13 intervenciones) el 20/09/2011 01:42:07
Muchas Gracias por todas las ayudas, use la opción de Ale P y todo fue bien,

Un abrazo y muchas Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar