Pasa que estoy probando la rutina del Ing. Anserk, pero al tratar de compilar, me marca error:
Error E0030 Syntax error: "syntax
error at 'AITEMS'"
O si hay alguna otra manera de mejorar ese codigo?; tengo casi un par de semanas de intentar crear armar tree mi catalogo de cuentas, tome el ejemplo que viene en samples: \samples\account, al igual me marca otro tipo de error, por el TreeEnd(),Treebegin y otras variables mas, ha de ser que ya no es compatible con la version actual que tengo 8.12, espero me puedan echar la mano con ese error o mejorar el codigo,ya que lo intento hacer desde base de datos, con la esturctura de cuentas . Cuentas caracter de longitud 16 y Nivel numerico de longitud 1...
Cuentas Nivel Descripcion
1020000000000000 1 Cuenta mayor
1020000100000000 2 Subcta
1020000100010000 3 Subsubcta
1020000100010001 4 subsubctanddetalles
Code: Select all
#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} }
*/
Local aItems:={ {"1020-0000-0000-0000", 1,"Cuenta mayor"},;
{"1020-0001-0000-0000", 2,"Subcta"},;
{"1020-0001-0001-0000", 3,"Subsubcta"},;
{"1020-0001-0001-0001", 4,"subsubctanddetalles"} }
TREE oTree
nLevel:=aItems[1][2]
nTreeCount:=0
For i:=1 to Len(aItems)
if aItems[i][2] > nLevel
TREE
nTreeCount++
Elseif aItems[i][2] < nLevel
nPrevLevel:=nLevel
nCurLevel:=aItems[i][2]
nLevelDiff:=nPrevLevel-nCurLevel
For j:=1 to nLevelDiff
ENDTREE
nTreeCount--
Next
Endif
[b]TREEITEM aItems[i][3] CARGO { aItems[i][1] } // Item Code aqui me da error ...[/b]
nLevel:=aItems[i][2]
Next
if nTreeCount > 0
For i:=nTreeCount To 1 Step -1
ENDTREE
Next
Endif
ENDTREE
Return oTree
Atte: Adrian C. C.