Tree: Error en oTree:GetSelected():GetParent():cPrompt

Post Reply
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Tree: Error en oTree:GetSelected():GetParent():cPrompt

Post by MarioG »

Estimados;
Buscando post anteriores encuentro que el tema se trato en este post: oTree:GetSelected():GetParent():cPrompt
No obstante no tiene respuesta al interrogante. Alguien lo usa y lo soluciono?, como?
En mi proyecto genero un Tree desde una BD. Luego bajo ciertas condiciones deseo buscar mediante ::cPrompt. a través de bLdblclick; y es allí donde se produce el error
Alguna idea?

desde ya muchas gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
Daniel Garcia-Gil
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita
Contact:

Re: Tree: Error en oTree:GetSelected():GetParent():cPrompt

Post by Daniel Garcia-Gil »

Hola Mario...

Seria buena idea que mostraras minimo el error y aparte si tienes un ejemplo autocontenido que podamos reproducir el error, con gusto podremos encontrar mas rapida una respuesta
our best documentation is the source code
Isla de Margarita Venezuela.
danielgarciagil@gmail.com
http://tdolphin.blogspot.com/
https://www.dropbox.com/referrals/NTI5N ... rc=global9
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Tree: Error en oTree:GetSelected():GetParent():cPrompt

Post by MarioG »

Daniel; desde ya muchas gracias por responder
He tomado testtre2.prg de \samples y agruegué el siguiente código:

oTree:blDblClick:= {|| if( !Empty( oTree:GetSelText() ), ;
if( !Empty( oTree:GetSelected():GetParent():cPrompt ), ;
wqout( { oTree:GetSelected():GetParent():cPrompt }), "vacio"), "" ) }

Al ejecutar el sample y hacer doblclic sobre el primer Item ya se manifiesta el error.
Lo que, si bien es coherente, ya que no existe un nivel por encima; lo que pretendo es averiguar si estoy en el 1º o 2º nivel para obrar en consecuencia
digamos que:
+ Hello Word
- xBase & OOPS
+ Otro Item
- SubItem

Si esta expandido y puslo sobre Hello Word, da error
Sobre el 2º Item (Otro Item), si no está expandido, lo abre, pero si esta abierto y pulso sobre él (Otro Item), tmb ocurre el error

Si esta no es la forma cual sería?

Saludos
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Tree: Error en oTree:GetSelected():GetParent():cPrompt

Post by MarioG »

Daniel;
alguna respeusta para esta consulta?

desde ya muchas gracias
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Tree: Error en oTree:GetSelected():GetParent():cPrompt

Post by MarioG »

Daniel;
Sin querer entrar en una polémica y reconociendo que no es tu obligación dar una respeusta; no obstante pregunto:
El silencio es respuesta?
Puse el sample que pediste, pero nunca hubo respuesta.
Este tema, por ahora no tiene solución?

Saludos
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
VPOZO
Posts: 32
Joined: Tue Jun 24, 2008 5:19 pm
Location: Punta Arenas, Chile

Re: Tree: Error en oTree:GetSelected():GetParent():cPrompt

Post by VPOZO »

Mario en estos momenots me veo enfrentado al mismo problema que tu pero luego de hacer varias pruebas, opte por hacer algo diferente, veras en mi caso las ramas del tree tienen en _ el mismo cprompt, lo que me complicaba mas el tema al ir a la tabla a buscar con esto "cprompt". Me di cuenta que cada rama del tree es un objeto y tiene un numero de manejador que es unico asi que lo que hice fue guardar estos numeros en arreglos para despues buscar en otro vector relacionado el valor de la clave que necesito para hacer el seek en la tabla. Todo esta en ocupar dos arreglos con la misma cantidad de elementos. este es un ejemplo:

ahItem = guarda los manejadores
aBound = guardo la clave a buscar en la talba

//-------------------------------------------
#Include "Fivewin.ch"

MEMVAR ahItem, aBound

FUNCTION Main()
LOCAL oDlgTree, oTree
PRIVATE ahItem:={}, aBound:={}

DEFINE DIALOG oDlgTree FROM 2,3 TO 40, 40 TITLE "PRUEBA DEL TREE" RESOURCE "DLG_MANTREE"

//--> Defino el Tree desde un Recurso
oTree:= TTreeview():ReDefine( 800, oDlgTree, 0, RGB( 255, 255, 255) )

//--> en este bloque muestro inflormacion de la rama del tree al hacer click
//--> y lo que le paso como parametro es el manejador del objeto item
oTree:bChanged := { |oTree,oItem| Verarbol( oTree:GetSelected():hItem ) }

ACTIVATE DIALOG oDlgTree CENTERED ArmTree(oTree)

RETURN Nil


---------------------------------*
* HACE EL LLENADO DEL TREE CON UNA
* TABLA DONDE ESTAN TODAS LAS REGIONDE DEL PAIS
* !CHILE!
*---------------------------------*
FUNCTION ArmTree( oTree)
LOCAL oItem1

Select RChile
Go Top
Do While !Eof()

//--> Busco el nombre de la Region y lo coloco com rama del arbol
Select Regiones
Seek RChile->Regi_chile
oItem1 := oTree:Add( Regiones->Nomb_regio, 0)

//--> Llena el arreglo con los manejadores de los objetos item
Aadd( ahItem, oItem1:hItem )

//--> llena este arrehlo con la clave que luego buscare
Aadd( aBound, RChile->Regi_chile )

SkIP

Enddo
RETURN Nil


*-----------------------------*
* muestro _ correspondientes a la rama del tree
* donde se hiso click
*-----------------------------*
FUNCTION Verarbol( nhItem )
LOCAL nPos:=0, cRegion:=""

nPos := Ascan( ahItem, nhItem)
//--> busco con el valor aBound en la tabla de regiones
If nPos > 0 .and. DbSeek( aBound[nPos] )
Select Regiones
cRegion := Regiones->Nomb_regio

Endif
RETURN cRegion //--> devuelve el nombre de la regio pero la puedes modificar para que retorne lo que quieras
User avatar
MarioG
Posts: 1356
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Tree: Error en oTree:GetSelected():GetParent():cPrompt

Post by MarioG »

VPozo
Muchisimas gracias!
Lo implemento y te comento o, consulto si me quedaran dudas.
A mi proyecto lo tengo parado desde hace un buen tiempo debido a este viejo error para el que, lamentablemente, no hay soporte

Saludos
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
Post Reply