FoxPro/Visual FoxPro - actualizar grid da pantallazo

 
Vista:

actualizar grid da pantallazo

Publicado por Ángel I. (86 intervenciones) el 10/06/2006 22:25:08
Hola a todos:

Tengo un grid que como origen de datos toma un cursor creado con una sentencia sql. Cada vez que cambio la sentencia sql (solo afecta al order by) el grid se descompone.
Para ello he creado un método en el formulario llamado actgrid (actualiza grid) en el cual le indico los colores, headers, datos....:

*metodo actgrid: recompone el grid
thisform.grid1.column1.ControlSource='ccur.cliente_id'
thisform.grid1.column2.ControlSource='ccur.empresa'
thisform.grid1.column3.ControlSource='ccur.rotulo'
thisform.grid1.column4.ControlSource='ccur.provincia'
thisform.grid1.column5.ControlSource='ccur.poblacion'
thisform.grid1.column6.ControlSource='ccur.telefonos'
*
thisform.grid1.column1.FontBold=.t.
thisform.grid1.column2.FontBold=.t.
*
thisform.grid1.column1.header1.Caption="Nº cliente"
thisform.grid1.column2.header1.Caption="Empresa"
thisform.grid1.column3.header1.Caption="Rótulo"
thisform.grid1.column4.header1.Caption="Provincia"
thisform.grid1.column5.header1.Caption="Población"
thisform.grid1.column6.header1.Caption="Teléfonos"
*
thisform.grid1.column1.BackColor=RGB(221,245,251)
thisform.grid1.column2.BackColor=RGB(221,245,251)
thisform.grid1.column3.BackColor=RGB(202,223,247)
thisform.grid1.column4.BackColor=RGB(214,228,197)
thisform.grid1.column5.BackColor=RGB(226,236,214)
thisform.grid1.column6.BackColor=RGB(235,235,235)
*
thisform.grid1.column1.Width=56
thisform.grid1.column2.Width=184
thisform.grid1.column3.Width=99
thisform.grid1.column4.Width=99
thisform.grid1.column5.Width=111
thisform.grid1.column6.Width=135
*
thisform.grid1.Refresh
*******

Desde el programa hago una nueva sentencia SQL, y llamo al método :

thisform.actgrid()

Ahora viene el problema y es que cada vez que hago esto el grid da un pequeño pantallazo, como si se moviese y volviesen a su sitio las columnas .....nada elegante....
1.- ¿Cómo puedo resolver ese pantallazo?
2.- ¿Hay otra forma de hacer sentencias SQL y ponérselas al Grid sin que este se descomponga?

Gracias por adelantado.

Un cordial saludo.
Ángel.
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

RE:actualizar grid da pantallazo

Publicado por Plinio (7841 intervenciones) el 10/06/2006 23:44:31
Prueba poniendo antes de este codigo
Thisform.LockScreen= .T.
y al final
Thisform.LockScreen = .F.
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

RE:actualizar grid da pantallazo

Publicado por Ernesto Hernandez (4623 intervenciones) el 11/06/2006 01:43:32
Ya probaste usando el DESTROY cada que cambies la sentencia SQL ??

Suerte
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

RE:actualizar grid da pantallazo

Publicado por Ángel I. (86 intervenciones) el 11/06/2006 23:52:54
Hola Plinio, Ernesto:

Con lo que me dijo Plinio (Thisform.LockScreen) va bien...

Ahora bien Ernesto lo que me dice sobre el DESTROY no tengo ni idea de como se utiliza... He mirado en la ayuda ... no me aclara la verdad. Voy a hacer unos intentos...

Gracias nuevamente a ambos.

Un cordial saludo.
Ángel.
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

RE:actualizar grid da pantallazo

Publicado por Ernesto Hernandez (4623 intervenciones) el 13/06/2006 02:26:14
No dejes de avisar si ya te funciono la solucion ....


suerte
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

RE:actualizar grid da pantallazo

Publicado por Mauricio (105 intervenciones) el 12/06/2006 18:30:00
El problema por el cual se descompone tu grid es porque antes de la sentencia SQL debes poner la siguiente linea

thisform.tugrid.recordsource = ""

con eso ya no necesitaras todo el codigo que estas poniendo ahora
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