FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour xBrowse table Tree
Posts: 811
Joined: Tue May 06, 2008 04:28 AM
xBrowse table Tree
Posted: Sat Nov 15, 2014 02:42 AM
Dear all,

I have this xBrowse tree with single level on my dbfs for some time now..
I'd like to make this tree to branch-out depending on the column I would like to define as sub-tree..

here:



Code (fw): Select all Collapse
oBrw:SetTree( 2, { 'Expand16', 'Collapse16', '' } )


result:



How can I branch a tree to 'common'?
like:

MIS
|
+ --- common
|
+ --- C01
--- E01
Kind Regards,

Frances



Fivewin for xHarbour v18.07

xHarbour v1.2.3.x

BCC 7.3 + PellesC8 ( Resource Compiler only)

ADS 10.1 / MariaDB

Crystal Reports 8.5/9.23 DE

xMate v1.15
Posts: 811
Joined: Tue May 06, 2008 04:28 AM
Re: xBrowse table Tree
Posted: Sat Nov 15, 2014 12:06 PM
Dear All,

I am trying to do is like this on a single table with xbrowse

Kind Regards,

Frances



Fivewin for xHarbour v18.07

xHarbour v1.2.3.x

BCC 7.3 + PellesC8 ( Resource Compiler only)

ADS 10.1 / MariaDB

Crystal Reports 8.5/9.23 DE

xMate v1.15
Posts: 811
Joined: Tue May 06, 2008 04:28 AM
Re: xBrowse table Tree
Posted: Sun Nov 16, 2014 11:41 PM

RAO?

Kind Regards,

Frances



Fivewin for xHarbour v18.07

xHarbour v1.2.3.x

BCC 7.3 + PellesC8 ( Resource Compiler only)

ADS 10.1 / MariaDB

Crystal Reports 8.5/9.23 DE

xMate v1.15
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: xBrowse table Tree
Posted: Mon Nov 17, 2014 09:45 AM
Here you have it
Code (fw): Select all Collapse
/*
*
*  XbTree2.Prg
*  G.N.Rao
*
*/

#include "FiveWin.Ch"
#include "ord.ch"
#include "xbrowse.ch"

//----------------------------------------------------------------------------//

REQUEST DBFCDX

#xtranslate bmp( <c> ) => "c:\fwh\bitmaps\16x16" + chr(92) + <c> + ".bmp"

//----------------------------------------------------------------------------// 

function Main()

   CreateTestData()
   TreeBrowse()

return (0)

//----------------------------------------------------------------------------//

init procedure PrgInit

   SET DATE ITALIAN
   SET CENTURY ON
   SET TIME FORMAT TO "HH:MM:SS"
   SET EPOCH TO YEAR(DATE())-50

   SET DELETED ON
   SET EXCLUSIVE OFF

   RDDSETDEFAULT( "DBFCDX" )

   XbrNumFormat( 'A', .t. )
   SetKinetic( .f. )
   SetGetColorFocus()

return

//----------------------------------------------------------------------------//

exit procedure PrgExit

   SET RESOURCES TO

return

//----------------------------------------------------------------------------//

static function TreeBrowse

   local oDlg, oBrw, oFont, oTree
   local aTot  := { 0, 0 }
   local aColors  := {  { CLR_WHITE,   CLR_GREEN         }, ;
                        { CLR_BLACK,   RGB(255,255,180)  }, ;
                        { CLR_BLACK,   CLR_WHITE         }  }

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12
   DEFINE DIALOG oDlg SIZE 250,600 PIXEL ;
      TITLE "Xbrowse Tree" FONT oFont

   oTree    := MakeTree()

   @ 10,10 XBROWSE oBrw SIZE -10,-10 PIXEL OF oDlg ;
      DATASOURCE oTree ;
      HEADERS "Mis Info" ;
      CELL LINES NOBORDER

   WITH OBJECT oBrw
      :aCols[ 1 ]:AddBitmap( { bmp( "open" ), bmp( "folder" ), bmp( "spurce" ) } )
      :bClrStd          := { || aColors[ oBrw:oTreeItem:nLevel ] }
      :nStretchCol      := 1
      :lHScroll         := .f.
      //
      :CreateFromCode()
   END

   oBrw:oTree:OpenAll()

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE FONT oFont

return nil

//----------------------------------------------------------------------------//

static function MakeTree()

   field MIS,COMMON,INFO
   local oTree
   local cMis, cCommon

   USE FRAXZI NEW SHARED
   INDEX ON MIS+COMMON+INFO TAG MISTREE TO TMP MEMORY
   SET FILTER TO !EMPTY(COMMON) .AND. !EMPTY(INFO)
   GO TOP

   TREE oTree

   do while .not. eof()

      TREEITEM "MIS:" + MIS
      cMis     := MIS

      TREE
      do while MIS == cMis
         TREEITEM "Common:" + COMMON
         cCommon  := COMMON

         TREE
         do while COMMON == cCommon
            TREEITEM INFO
            SKIP
         enddo
         ENDTREE

      enddo
      ENDTREE

   enddo
   ENDTREE

   CLOSE FRAXZI

return oTree

//----------------------------------------------------------------------------//

static function createTestData()

   field MIS,COMMON,INFO

   local aCols := {  ;
      {  "MIS",     "C",   3,   0  }, ;
      {  "COMMON",  "C",   3,   0  }, ;
      {  "INFO",    "C",  10,   0  }  }

   local i,n,m

   DbCreate( "FRAXZI.DBF", aCols, "DBFCDX", .t., "FRX" )

   for i := 1 to 20

      APPEND BLANK
      n           := HB_RandomInt( 1, 3 )
      MIS         := { "FAP","RIR","TDG" }[ n ]
      m           := HB_RandomInt( 1, 2 )
      COMMON      := {{ "C01","D01"},{"E01","F01"},{"G01","L01"}}[ n, m ]
      INFO        := "1411" + Str( HB_RandomInt( 1111111,2999911 ), 7 )

   next i

   CLOSE FRX

return nil

//----------------------------------------------------------------------------//
Regards



G. N. Rao.

Hyderabad, India
Posts: 811
Joined: Tue May 06, 2008 04:28 AM
Re: xBrowse table Tree
Posted: Wed Nov 19, 2014 12:07 AM

Dear RAO,

Great example! :!: :!:

This is more than I expected :)

I will try to improved this and will post it here.

Good god we have you here.

Kind Regards,

Frances



Fivewin for xHarbour v18.07

xHarbour v1.2.3.x

BCC 7.3 + PellesC8 ( Resource Compiler only)

ADS 10.1 / MariaDB

Crystal Reports 8.5/9.23 DE

xMate v1.15

Continue the discussion