Vengo usando de manera habitual el GRID VIRTUAL y ahora necesito implementar el ON CHECKBOXCLICKED.
El caso es que aparece el espacio pero no boton de seleccionar.
He leido en el foro y parece ser que es un tema persistente en el tiempo, ya que en el año 2016 al parecere ya fue detectado.
¿no se ha solucionado hasta la fecha?
¿no es posible impletar ON CHECKBOXCLICKED en un GRID virtual?
¿Hay alguna forma de usar esto en un GRID VIRTUAL o tengo que pasar los datos a un GRID NORMAL?,
Gracias
Correo por srvet_claudio »jue 12 mayo 2016 1:45 am
No es un error, Virtual Grid (como fuente de fila) no funciona con la casilla de verificación.
Para corregir el error al compilar, vea esta publicación:viewtopic.php?f=43&t=4738&start=30#p45165
Atentamente.
Dr. Claudio Soto
(de Uruguay)
http://srvet.blogspot.com
Code: Select all
/*
* HMG Virtual Grid Demo
* (c) 2003 Roberto Lopez
*/
#include "hmg.ch"
#define BS_MULTILINE 8192
#define BS_CENTER 768
* When using virtual Grids you must avoid to use Item property and additem
* method. It can generate unexpected results.
Function Main
DEFINE WINDOW Form_1 ;
AT 0,0 ;
WIDTH 450 ;
HEIGHT 400 ;
TITLE 'Hello World!' ;
MAIN
DEFINE MAIN MENU
DEFINE POPUP 'File'
MENUITEM 'Change ItemCount' ACTION Form_1.Grid_1.ItemCount := Val(InputBox('New Value','Change ItemCount'))
END POPUP
END MENU
@ 10,10 GRID Grid_1 ;
WIDTH 400 ;
HEIGHT 330 ;
HEADERS {'Column 1','Column 2','Column 3'} ;
WIDTHS {140,140,140};
VIRTUAL ;
ITEMCOUNT 100000000 ;
ON DBLCLICK PonerMensaje() ;
ON QUERYDATA QueryTest() ;
ON CHECKBOXCLICKED MSGBOX("TOMA")
END WINDOW
SetProperty( "Form_1", "Grid_1", "CheckBoxEnabled", .T.)
Form_1.Grid_1.CheckBoxEnabled
CENTER WINDOW Form_1
HMG_ChangeWindowStyle ( GetControlHandle("Grid_1","Form_1"), BS_MULTILINE, NIL, .F. )
ACTIVATE WINDOW Form_1
Return
Procedure QueryTest()
LOCAL cVar
* This.QueryData := Str ( This.QueryRowIndex ) + ',' + Str ( This.QueryColIndex )
This.QueryData := TRANSFORM( This.QueryRowIndex,"$ 999.99" ) + ',' + Str ( This.QueryColIndex )+HB_VALTOEXP(CRLF)+"HOLA"
Return
Procedure PonerMensaje()
LOCAL nFil,nCol
nFil:=Form_1.Row+This.CellRow
nCol:=Form_1.Col
MSGBOX("FILA"+STR(NFIL)+" COLUMNA"+STR(NcOL)+" CELDA "+STR(This.CellRow))
msgbox(form_1.Grid_1.Value)
RETURN