FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Antonio - Retomo lo del tree podes ayudarme cn esto?
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Antonio - Retomo lo del tree podes ayudarme cn esto?
Posted: Thu May 05, 2022 12:19 PM
hace un tiempo intente y no funcion贸, vos me dijiste que haga de una forma pero tampoco funcion贸.
te comento: tengo un array que genero asi (con una tupla incluida):
Code (fw): Select all Collapse
    AAdd( ::aTree, { oQry:FieldGet( "c7" ) + "     " + ::cCargo, ;
                       { ;
                         "nId" => oQry:FieldGet( "c4" ), ;
                         "nIdPadre" => oQry:FieldGet( "c5" ), ;
                         "dFecha" => oQry:FieldGet( "c7" ), ;
                         "nHitem" => 0 ;
                       } } )


Luego necesito recorrer ese array para buscar un determinado valor que viene desde una tabla,
el valor existe y tambien existe en el array ::aTree pero el aScan me dice siempre que la posicion es cero
cuando deberia de ser mayor a cero:
Code (fw): Select all Collapse
         nPosicion := AScan( ::aTree, { | xCelda | xCelda[ 2 ][ "nId" ] == oQry:FieldGet( "c5" ) } )


En cambio si me recorro el array con un FOR NEXT o FOR EACH el valor existe.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Antonio - Retomo lo del tree podes ayudarme cn esto?
Posted: Fri May 06, 2022 05:47 AM

Gustavo,

No deber铆a ser asi ?

nPosicion := AScan( ::aTree, { | xCelda | xCelda[ 2 ][ "nIdPadre" ] == oQry:FieldGet( "c5" ) } )

nPosicion := AScan( ::aTree, { | xCelda | xCelda[ 2 ][ "nId" ] == oQry:FieldGet( "c4" ) } )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Antonio - Retomo lo del tree podes ayudarme cn esto?
Posted: Fri May 06, 2022 09:55 AM
No estimado,
Te comento la l贸gica que quiero utilizar.
Tengo esta query:
Code (fw): Select all Collapse
"Select 聽 聽 聽 聽 聽 聽 聽 聽 " + ;
"a.id 聽 聽 聽 聽 聽 AS c1, 聽" + ;
"a.idcarpeta 聽 聽AS c2, 聽" + ;
"a.iddante 聽 聽 聽AS c3, 聽" + ;
"a.nid 聽 聽 聽 聽 聽AS c4, 聽" + ;
"a.nidpadre 聽 聽 AS c5, 聽" + ;
"b.id 聽 聽 聽 聽 聽 AS c6, 聽" + ;


y un array donde tengo los datos que necesito para "rearmar" el arbol (que lo creo a partir de la consulta anterior.
Lo que necesito es saber antes de crear una rama con oItem:add(...) que ya no est茅 creada esa rama, por lo
que necesito verificar con el ascan y buscar dentro del array.
el array cotiene esto:
Code (fw): Select all Collapse
 聽 聽AAdd( ::aTree, { oQry:FieldGet( "c7" ) + " 聽 聽 " + ::cCargo, ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽{ ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽"nId" => oQry:FieldGet( "c4" ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽"nIdPadre" => oQry:FieldGet( "c5" ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽"dFecha" => oQry:FieldGet( "c7" ), ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽"nHitem" => 0 ;
聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽 聽} } )
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Antonio - Retomo lo del tree podes ayudarme cn esto?
Posted: Fri May 06, 2022 10:07 AM
esto funciona, en cambio el Ascan no

Code (fw): Select all Collapse
        FOR EACH o IN ::aTree
            IF ( o[ 2 ][ "nId" ] == oQry:FieldGet( "c5" ) )
               VIEW "tiene hijo"
               exit
            ENDIF
         NEXT
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/

Continue the discussion