/*
*
* 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
//----------------------------------------------------------------------------//