click sobre tree con checkbox
-
- Posts: 132
- Joined: Sun Oct 23, 2005 4:09 pm
- Location: Pánuco,Ver. México
click sobre tree con checkbox
Hola a Todos:
Tengo un Treeview , quiero que haga algo al marcar el check y que se grabe o sea al almar de nuevo el tree debe estar marcado o marcados los que ya clickiee. Tengo el evento al darle click sobre la rama mas no sobre el checkbox. ¿Alguien ya ha resuelto esto?
desde ya muchas gracias.
atte Miguel Salas
México
Tengo un Treeview , quiero que haga algo al marcar el check y que se grabe o sea al almar de nuevo el tree debe estar marcado o marcados los que ya clickiee. Tengo el evento al darle click sobre la rama mas no sobre el checkbox. ¿Alguien ya ha resuelto esto?
desde ya muchas gracias.
atte Miguel Salas
México
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
Re: click sobre tree con checkbox
Miguel,
Con ayuda del buen amigo William Morales, hace tiempo hice lo que necesitas, armar un tree y al seleccionar algunas opciones, estas se graben y despues cuando lo vuelvas a mostrar, salgan ya activas.
Sin embargo, quiero comentarte algo : Cuando son muchas las opciones del tree y mandas un Expand, tarda unos 5-7 segundos para que salgan los datos. Hace poco actualize el xHarbour y me empezo a encimar los nombres de las opciones quedando totalmente ilegible, Por lo que opte por implementar el tree en un xBrowse y los resultados fueron muy satisfactorios : mucho mas rapido y sin problemas de pintado.
Deja busco un respaldo del codigo por si te interesa.
Saludos
Con ayuda del buen amigo William Morales, hace tiempo hice lo que necesitas, armar un tree y al seleccionar algunas opciones, estas se graben y despues cuando lo vuelvas a mostrar, salgan ya activas.
Sin embargo, quiero comentarte algo : Cuando son muchas las opciones del tree y mandas un Expand, tarda unos 5-7 segundos para que salgan los datos. Hace poco actualize el xHarbour y me empezo a encimar los nombres de las opciones quedando totalmente ilegible, Por lo que opte por implementar el tree en un xBrowse y los resultados fueron muy satisfactorios : mucho mas rapido y sin problemas de pintado.
Deja busco un respaldo del codigo por si te interesa.
Saludos
FWH 10.6 + xHarbour + Borland 582
-
- Posts: 132
- Joined: Sun Oct 23, 2005 4:09 pm
- Location: Pánuco,Ver. México
Re: click sobre tree con checkbox
te agradezco la respuesta y en espera de tu valiosa ayuda
saludos
saludos
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
Re: click sobre tree con checkbox
Miguel,
En alguna tabla o dbf debes tener uno o _ para guardar las claves de los items seleccionados, yo los separo usando ':'
// Elementos del tree
// Obtener items seleccionados
// Actualizar items seleccionados
Cualquier dudad estamos a la orden.
Saludos
En alguna tabla o dbf debes tener uno o _ para guardar las claves de los items seleccionados, yo los separo usando ':'
Code: Select all
oTree := TTreeView():ReDefine( 101, oCatUsrFldr:aDialogs[2], CLR_BLACK, CLR_WHITE, .f. ,"RSTree" )
oTree:oFont := aSysFnts[9]
Code: Select all
{'1101021' ,' Notas De Mostrador' ,'K003'}, ;
{'1101022' ,' Facturas' ,'K004'}, ;
{'1101023' ,' Cotizaciones' ,'K005'}, ;
{'1101024' ,' Ventas Express' ,'K006'}, ;
{'1101025' ,' Preventas/Pedidos' ,'K007'}, ;
Code: Select all
static function GetUOptsSld( oTree, aItems )
local n, nCargo
for n = 1 to len( aItems )
if oTree:GetCheck( aItems[n] )
nCargo := aItems[ n ]:cargo
if ascan( aUsrOptsSld, {|n| n == nCargo} ) == 0
aadd( aUsrOptsSld, aItems[n]:cargo ) // Aqui guardo la clave de los items seleccionados : K003, K004, etc
endif
endif
GetUOptsSld( oTree, aItems[n]:aItems )
next
return nil
*-----*
Code: Select all
aOpts2Apl := HB_ATokens( aDmXDts[1,1], ":", .f., .f. )
SrcOptsValues( oTree, aItems, aOpts2Apl )
oTree:Refresh()
static function SrcOptsValues( oTree, aItems, aOptsGrntd )
local nQ
for nQ := 1 to len( aItems )
oTree:SetCheck( aItems[nQ], .f. )
if ascan( aOptsGrntd, aItems[nQ]:cargo ) > 0
oTree:SetCheck( aItems[nQ], .t. )
endif
SrcOptsValues( oTree, aItems[nQ]:aItems, aOptsGrntd )
next
return nil
*-----*
Saludos
FWH 10.6 + xHarbour + Borland 582
-
- Posts: 132
- Joined: Sun Oct 23, 2005 4:09 pm
- Location: Pánuco,Ver. México
Re: click sobre tree con checkbox
Te agradezco infinitamente Raymundo... dejame probarlo y te comento
-
- Posts: 132
- Joined: Sun Oct 23, 2005 4:09 pm
- Location: Pánuco,Ver. México
Re: click sobre tree con checkbox
unas dudas,:
1- No veo en el codigo que uses la funcion "GetUOptsSld" (solo dentro de si misma ¿?)
2- El array aDmXDts ¿con que lo llenas?
3.- SrcOptsValues() la llamas al llenar el Tree?
como ves ando perdido en esto
saludos
1- No veo en el codigo que uses la funcion "GetUOptsSld" (solo dentro de si misma ¿?)
2- El array aDmXDts ¿con que lo llenas?
3.- SrcOptsValues() la llamas al llenar el Tree?
como ves ando perdido en esto
saludos
- Raymundo Islas M.
- Posts: 590
- Joined: Tue Mar 14, 2006 11:34 pm
- Location: Acapulco, Gro. MEXICO
Re: click sobre tree con checkbox
Miguel,
1- No veo en el codigo que uses la funcion "GetUOptsSld" (solo dentro de si misma ¿?)
2- El array aDmXDts ¿con que lo llenas?
3.- SrcOptsValues() la llamas al llenar el Tree?
Y sip, en efecto, las funciones SrcOptsValues() y GetUOptsSld() se llaman recursivamente para recorrer todos los branches del tree.
ya tienes la rutina para armar tu tree ? ya que ahi es donde esta el asunto para armar los "niveles" de tu tree.
Saludos
1- No veo en el codigo que uses la funcion "GetUOptsSld" (solo dentro de si misma ¿?)
Code: Select all
Cuando termino de seleccionar las opciones deseadas, mando llamar esta funcion para que recorra el tree y mando a un a un arreglo el cargo del elemento, que en este caso es la clave de la opcion. Y son las que se van a grabar en un campo.
Code: Select all
En mi caso, lo lleno desde un query del campo donde grabe las opciones previamente seleccionadas y grabadas, asi que, primero armas tu tree con tus opciones y enseguida le indicas cuales fueron seleccionadas previamente para que se muestren con tal atributo.
Code: Select all
Igual al punto anterior, se arma el tree, y despues le aplicas las opciones seleccionadas previamente.
ya tienes la rutina para armar tu tree ? ya que ahi es donde esta el asunto para armar los "niveles" de tu tree.
Saludos
FWH 10.6 + xHarbour + Borland 582
Re: click sobre tree con checkbox
Amigo Raymundo, tiene un ejemplo mas didactico con array
Saludos
Saludos