anserkk wrote:Try this.

#include "FiveWin.ch"
#include "xBrowse.ch"
//---------------------//
Function Main()
Local oBrw,oWnd
DEFINE WINDOW oWnd TITLE "Tree using Array"
@0,0 XBROWSE oBrw OF oWnd
WITH OBJECT oBrw
:SetTree(BuildTree())
:oTree:OpenAll()
:CreateFromCode()
END
oWnd:oClient:=oBrw
ACTIVATE WINDOW oWnd
Return NIL
//---------------------//
Function BuildTree()
Local oTree,nTreeCount,nPrevLevel,nCurLevel,nLevelDiff
Local i,j
Local aItems:={ {"01","Computers" ,0},;
{"02","Core i3" ,1},;
{"03","Core i5" ,1},;
{"04","Furnitures" ,0},;
{"05","Tables" ,1},;
{"06","Computer Table" ,2},;
{"07","Regular Table" ,2},;
{"08","Desk" ,1},;
{"09","Computer Desk" ,2},;
{"10","Regular Desk" ,2},;
{"11","Chairs" ,1} }
TREE oTree
nLevel:=aItems[1][3]
nTreeCount:=0
For i:=1 to Len(aItems)
if aItems[i][3] > nLevel
TREE
nTreeCount++
Elseif aItems[i][3] < nLevel
nPrevLevel:=nLevel
nCurLevel:=aItems[i][3]
nLevelDiff:=nPrevLevel-nCurLevel
For j:=1 to nLevelDiff
ENDTREE
nTreeCount--
Next
Endif
TREEITEM aItems[i][2] CARGO { aItems[i][1] } // Item Code
nLevel:=aItems[i][3]
Next
if nTreeCount > 0
For i:=nTreeCount To 1 Step -1
ENDTREE
Next
Endif
ENDTREE
Return oTree
Regards
Anser
Hola buenas tardes Anserk,como esta, estoy tratando de compilar tu ejemplo, pero me marca error,que es lo que hace falta,uso version 8.12
//---------------------//
Function BUSCAR1()
Local oBrw,oWnd
DEFINE WINDOW oWnd TITLE "Tree using Array"
@0,0 XBROWSE oBrw OF oWnd
WITH OBJECT oBrw
:SetTree(BuildTree())

Tree:OpenAll()
:CreateFromCode()
END
oWnd:=oBrw
ACTIVATE WINDOW oWnd
Return NIL
//---------------------//
Function BuildTree()
Local oTree,nTreeCount,nPrevLevel,nCurLevel,nLevelDiff
Local i,j,nLevel
Local aItems:={ {"01","Computers" ,0},;
{"02","Core i3" ,1},;
{"03","Core i5" ,1},;
{"04","Furnitures" ,0},;
{"05","Tables" ,1},;
{"06","Computer Table" ,2},;
{"07","Regular Table" ,2},;
{"08","Desk" ,1},;
{"09","Computer Desk" ,2},;
{"10","Regular Desk" ,2},;
{"11","Chairs" ,1} }
TREE oTree
nLevel:=aItems[1][3]
nTreeCount:=0
For i:=1 to Len(aItems)
if aItems[i][3] > nLevel
TREE
nTreeCount++
Elseif aItems[i][3] < nLevel
nPrevLevel:=nLevel
nCurLevel:=aItems[i][3]
nLevelDiff:=nPrevLevel-nCurLevel
For j:=1 to nLevelDiff
ENDTREE
nTreeCount--
Next
Endif
TREEITEM aItems[i][2] CARGO { aItems[i][1] } // Item Code
nLevel:=aItems[i][3]
Next
if nTreeCount > 0
For i:=nTreeCount To 1 Step -1
ENDTREE
Next
Endif
ENDTREE
Return oTree
Este es el error :
C:\Pro_FWH\ProveIVA\Prg\buscar1.prg(70) Error E0030 Syntax error: "syntax
error at 'AITEMS'"
Estoy tratando de adaptar a mi catalago de cuentas de 1 a 4 niveles de cuentas con caracter y longitud 16 ,y estaba tomando tu ejemplo, pero no me sale desde mi dbfs.
Saludos y buen dia.
Atte: Adrian C. C.