Borrar Items de Treeview

Borrar Items de Treeview

Postby cuatecatl82 » Sun Dec 13, 2015 4:51 am

Saludos a Todos:

Estoy armando un Tree en base al ejemplo re.prg, ya armado un arbol de items como puedo borrar items, he buscado y probado por varias formas pero no funciona, hay alguna forma de poderlo realizar..

Image
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: Borrar Items de Treeview

Postby cnavarro » Sun Dec 13, 2015 9:29 am

Victor, seria algo asi, a ver si te sirve

Code: Select all  Expand view  RUN


Local nSect
Local nPos
Local oIt    := oTree:GetSelected()
if !Empty( oIt )
   nSect := oTree:GetItemPos( oIt:oParent )
   nPos  := oIt:oParent:GetItemPos( oIt )
   oIt:oParent:aItems[ nPos ]:DeleteBranches()
   oIt:oParent:DelItemPos( nPos )
endif

 
Last edited by cnavarro on Sun Dec 13, 2015 7:23 pm, edited 1 time in total.
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6549
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Borrar Items de Treeview

Postby cuatecatl82 » Sun Dec 13, 2015 6:52 pm

Cristóbal:

Como siempre muy oportuna tu ayuda... Funcionó de maravilla


Gracias por tu apoyo. Saludos
Soluciones y Diseño de Software
Damos Soluciones...

I.S.C. Victor Daniel Cuatecatl Leon
Director y Diseñador de Proyectos

http://www.soldisoft.unlugar.com
http://www.sisa.unlugar.com
danyleon82@hotmail.com
www.facebook.com/victordaniel.cuatecatlleon
User avatar
cuatecatl82
 
Posts: 625
Joined: Wed Mar 14, 2007 6:49 pm
Location: San Cristobal de las Casas, Chiapas México

Re: Borrar Items de Treeview

Postby Carles » Wed Dec 16, 2015 1:51 pm

Hi,

Cuidado que en esta clase habia un pequeño bug, no se si esta resuelto ahora. Lo que ocurria creo recordar es que borraba el item pero no la referencia que estaba en su padre. :shock:

Yo tengo el código asi para que funcione correctamente

Code: Select all  Expand view  RUN

        //  Buscamos el Padre del que cuelga este Item

            oPadre           :=  oBranch:GetParent()       
           
            TVDeleteItem( ::oTree:hWnd, oBranch:hItem )

        //  TVDeleteItem borra la rama pero NO elimina de la clase el Item de la rama

            nPosHijoenPadre  := Ascan( oPadre:aItems, {|o| o:hItem == oBranch:hItem } )

            IF nPosHijoenPadre > 0

               ADel ( oPadre:aItems, nPosHijoenPadre )
               ASize( oPadre:aItems, Len(oPadre:aItems)-1 )

            ENDIF   


Por si alguien lo necesita o quiere revisar...
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1139
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: Borrar Items de Treeview

Postby Silvio.Falconi » Fri Dec 18, 2015 9:09 am

Carles,
here run ok but only for subcategory
when I try to delete a category make error
Code: Select all  Expand view  RUN

Application
===========
   Path and name: C:\Documents and Settings\Administrator\Desktop\tree\test.Exe (32 bits)
   Size: 2,737,664 bytes
   Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20140725)
   FiveWin  Version: FWHX 15.01
   Windows version: 5.1, Build 2600 Service Pack 3

   Time from start: 0 hours 1 mins 13 secs
   Error occurred at: 12/18/15, 10:06:55
   Error description: Error BASE/1004  Class: 'NIL' has no exported method: AITEMS
   Args:
     [   1] = U  

Stack Calls
===========
   Called from:  => AITEMS( 0 )
   Called from: test.prg => MABORRA( 244 )
   Called from: test.prg => (b)TEST( 67 )
   Called from: .\source\classes\BUTTON.PRG => TBUTTON:CLICK( 175 )
   Called from: .\source\classes\CONTROL.PRG => TBUTTON:HANDLEEVENT( 1687 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3450 )
   Called from:  => SENDMESSAGE( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:COMMAND( 403 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 906 )
   Called from:  => DIALOGBOXINDIRECT( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 286 )
   Called from: test.prg => TEST( 104 )
 




Code: Select all  Expand view  RUN



   local oLink       := oTree:GetSelected()
   local cPrompt     := oLink:cPrompt
   local cCargo      := oLink:Cargo
   local nRecno      := GE->(Recno())
   local lMateria    := ( Len(cCargo) <= 40 )
   local  nNext



SELECT GE
      GE->(DbSkip())
      nNext := GE->(Recno())
      GE->(DbGoto(nRecno))

      GE->(DbDelete())
      GE->(DbPack())
      GE->(DbGoto(nNext))

      IF GE->(EOF()) .or. nNext == nRecno
         GE->(DbGoBottom())
      ENDIF


   // CANCELLO IL TREE
//      oLink:End()   //  <-----------------
       * TvDeleteItem( oTree:hWnd, oLink:hItem )
       * MyDelItem( oTree, oLink )


            //  Buscamos el Padre del que cuelga este Item

                oPadre  :=  oLink:GetParent()
                TVDeleteItem(oTree:hWnd, oLink:hItem )
            //  TVDeleteItem borra la rama pero NO elimina de la clase el Item de la rama
                nPosHijoenPadre  := Ascan( oPadre:aItems, {|o| o:hItem == oLink:hItem } )
                IF nPosHijoenPadre > 0
                   ADel ( oPadre:aItems, nPosHijoenPadre )
                   ASize( oPadre:aItems, Len(oPadre:aItems)-1 )
                ENDIF

             ENDIF

   oTree:refresh()
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
User avatar
Silvio.Falconi
 
Posts: 7075
Joined: Thu Oct 18, 2012 7:17 pm

Re: Borrar Items de Treeview

Postby goosfancito » Tue Nov 23, 2021 10:52 pm

Veo que tienen mas experiencia en tree que yo.

pueden decirme como puedo recorrerme el tree desde una punta a la otra pasando por todos los OITEM que tnega?

gracias
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: Borrar Items de Treeview

Postby Antonio Linares » Wed Nov 24, 2021 4:30 am

Gustavo,

oTree:Scan( bAction )

bAction recibe el parámetro oItem y tiene que devolver un valor lógico indicando si se ha encontrado lo que se buscaba ó hay que seguir buscando :-)

{ | oItem | ..., lEncontrado }

lEncontrado es .T. ó .F.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42122
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 40 guests