TREE - Sugerencia

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

TREE - Sugerencia

Post by SALINETAS24 »

Hola, estoy haciendo una prueba con un MENU utilizando TREE y en principio mola mucho.
Solo una sugerencia o petición.
Cuando hacemos Doble click sobre la opción elegida enviamos a una funcion con un DO CASE, cuya longitud de opciones sera casi igual de grande que el TREE. Es más, si se intenta añadir una nueva opción a mitad del TREE.., hay que cambiar el DO CASE.
He estado mirando los fuentes y se me escapa el uso de la variable _HMG_SYSDATA [ 307 ], pero estaria bien que en la definicion del TREEITEM se puedese añadir una acción opcional, una ultima opción al ARRAY.

Code: Select all

#xcommand TREEITEM <text> [ IMAGES <aImage> ]  [ ID <id> ] [ACTION <accion>] ;
=> ;
_DefineTreeItem (<text>, <aImage> , <id>, <accion> )
 
Y la función

Code: Select all

*------------------------------------------------------------------------------*
Function _DefineTreeNode ( text, aImage , nID, accion )
*------------------------------------------------------------------------------*
Local 	ImgDef, iUnSel, iSel
LOCAL k := GetControlIndexByHandle ( _HMG_SYSDATA [ 180 ] )
DEFAULT accion:=""

	If ValType ( nID ) == 'U'
		nID := 0
	EndIf

	ImgDef := iif( valtype( aImage ) == "A" , HMG_LEN( aImage ), 0 )  //Tree+

	if ImgDef == 0
		
		iUnsel := 0   // Index to defalut Node Bitmaps, no Bitmap loaded
		iSel   := 1
		
	else	
		iUnSel := AddTreeViewBitmap( _HMG_SYSDATA [ 180 ], aImage[1], _HMG_SYSDATA [ 39 ] [k] ) -1 
		iSel   := iif( ImgDef == 1, iUnSel, AddTreeViewBitmap( _HMG_SYSDATA [ 180 ], aImage[2], _HMG_SYSDATA [ 39 ] [k] ) -1 )
		// If only one bitmap in array iSel = iUnsel, only one Bitmap loaded
	endif
	
	_HMG_SYSDATA [ 307 ]++ 
	// ----------------------------------------------------------------------------------------------
	// --> Aqui es donde me pierdo., pero lo suyo seria añadir el valor "accion" a ARRAY
	// -----------------------------------------------------------------------------------------------
	_HMG_SYSDATA [ 337 ] [_HMG_SYSDATA [ 307 ]]:= AddTreeItem ( _HMG_SYSDATA [ 180 ] , _HMG_SYSDATA [ 337 ] [_HMG_SYSDATA [ 307 ]-1] , text, iUnsel, iSel , nID , _IS_TREE_NODE_ )
	

	aAdd ( _HMG_SYSDATA [ 138 ] , _HMG_SYSDATA [ 337 ] [_HMG_SYSDATA [ 307 ]] )
	aAdd ( _HMG_SYSDATA [ 139 ] , nID )
   AADD ( _HMG_SYSDATA [ 32 ] [ _HMG_SYSDATA [ 179 ] ], NIL)   // cargo
Return Nil 

De esta forma a la hora de ejecutar una acción, al hacer Doble click seria algo mucho mas simple

Code: Select all

		DEFINE TREE Tree_1 AT 95,10 WIDTH 210 HEIGHT 580 VALUE 1 ;
			ON DBLCLICK Ejecuta(This.Value)

-----


FUNCION Ejecuta(nPrg)
//-> Aquí detectariamos si tiene algo el último parametro "accion"
// --> Tengo el nombre, pero necesito identificar el siguiente campo

       cAction:=Principal.Tree_1.Item ( Principal.Tree_1.Value ) ,???
     
       IF!empty(cAction)
             &cAction     // --> EJECUTAMOS LO QUE TENEMOS PREDEFINIDO
       ENDIF
       // --> Nos ahorramos todos los DOCASE, si bien el usuario y si cAction esta vacio puede hacer lo que quiera con ELSE
       	DO CASE
		CASE nPrg=2
			_CONMAEM()
		CASE nPrg=3
			_TRAMAUS()
		CASE nPrg=6
			_CONMACO()
		CASE nPrg=7
			_CONMACU()	
		CASE nPrg=8
			_CONMAAS()	
		CASE nPrg=9	
			_CONMATE(0)
	ENDCASE		
RETURN

Bueno.., no se si me ALGUIEN me abra entendido..., de todas formas gracias por leerme y vamos con una cervecita bien fresquita. :roll:

Salud
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
mustafa
Posts: 1158
Joined: Fri Mar 20, 2009 11:38 am
DBs Used: DBF
Location: Alicante - Spain
Contact:

Re: TREE - Sugerencia

Post by mustafa »

Hola amic SALINETAS24
Mírate esta pagina, haber si puede servir ?

http://www.hmgforum.com/viewtopic.php?f ... e&start=40

Mas que Cervecitas , ahora toca Café con Leche je... je..

Una abraçada
Mustafa
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: TREE - Sugerencia

Post by SALINETAS24 »

Gracies amic.., ya estoy en la solución.
He visto el [ ID <nItemID> ] al que puedo asignar un valor que hace referencia a un arrray que contiene las funciones que tengo que ejecutar..., mola !!
Y por ser tu.., un café con leche calentito!!
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
mustafa
Posts: 1158
Joined: Fri Mar 20, 2009 11:38 am
DBs Used: DBF
Location: Alicante - Spain
Contact:

Re: TREE - Sugerencia

Post by mustafa »

Hola amic
Ya colgaras algún Sample , haber si me entero un poco estoy "verde" con el tema de TREE
Saludos
Mustafa :lol:
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: TREE - Sugerencia

Post by SALINETAS24 »

Hola Mustafa, esto es lo que estoy haciendo.

Es muy sencillo, estoy haciendo un experimento para el MENU de la ERP que estoy pasado de Clipper, y queda bastante bien, he cogido dos SAMPLES y estoy haciendo un "collage". Por un lado \SAMPLES\tree_Dynamic_font para los colores, y del \SAMPLES\Tree_NodeFalg la función para saber cuando hago doble clik sobre la opción.

Image

La parte izquierda es el MENU de la aplicación del ERP, y contiene "CONTABILIDAD", "GESTIÓN (ALMACEN Y FACTURACION)", "PRODUCCIÓN".
El MENU de la parte superior estoy intentando hacerlo para que sea definible por el usuario.

Quería hacer esta gestión con el botón derecho del ratón, y en principio funciona de coña, puedo incorporar cualquier opción, pero cuando tengo activa la ventanita que aparece en la opción el MENU PRUEBA o FAVORITOS_2.., el botón derecho no se activa por lo que ahora estoy en un stand by, pero siempre puedo utilizar un Grid con un array.

Venga.., sigo al lío.., vamos con una cervecita fresquita a ver si nos viene la inspiración
Un abrazo
Attachments
Dibujo.JPG
Dibujo.JPG (96.63 KiB) Viewed 1415 times
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
Post Reply