I open the database with tdatabase
- Code: Select all Expand view RUN
- ::oTabMag:= TTabMag():New()
::oTabMag:SetOrder(1 )
::oTabMag:GoTop()
::oTreeMag := ::MakeTree()
the error
- Code: Select all Expand view RUN
- Error description: Error BASE/1004 Class: 'NIL' has no exported method: CARGO
Args:
[ 1] = U
Stack Calls
===========
Called from: => CARGO( 0 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:SETCOLSFORTREE( 7990 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:SETTREE( 7943 )
Called from: .\source\classes\XBROWSE.PRG => XBRWSETDATASOURCE( 17605 )
Called from: .\source\classes\XBROWSE.PRG => XBROWSENEW( 17348 )
Called from: source\Categorie\TCategorie.prg => TTABCAT:NEW( 135 )
the original
- Code: Select all Expand view RUN
- static function MakeTree()
field CODICE
local oTree
local c1, c2, c3
USE "TABMAG" NEW SHARED
INDEX ON CODICE TAG CODICE TO TMP MEMORY
GO TOP
TREE oTree
do while ! eof()
TREEITEM CODICE CARGO { FIELD->DESC }
c1 := Left( CODICE, 2 )
SKIP
TREE
do while Left( CODICE,2 ) == c1
TREEITEM CODICE CARGO { FIELD->DESC }
c2 := Left( CODICE, 4 )
SKIP
TREE
do while Left( CODICE, 4 ) == c2
TREEITEM CODICE CARGO { FIELD->DESC }
SKIP
enddo
ENDTREE
enddo
ENDTREE
enddo
ENDTREE
oTree:OpenAll()
CLOSE TAG
return oTree
My test
- Code: Select all Expand view RUN
METHOD MakeTree() CLASS TTabCat
FIELD CODICE
local oTree
local c1, c2, c3
::oTabMag:gotop()
// USE "TABMAG" NEW SHARED
// INDEX ON CODICE TAG CODICE TO TMP MEMORY
// GO TOP
TREE oTree
do while ! ::oTabMag:eof()
TREEITEM ::oTabMag:CODICE CARGO { ::oTabMag:DESC }
c1 := Left( ::oTabMag:CODICE, 2 )
::oTabMag:skip()
TREE
do while Left( ::oTabMag:CODICE,2 ) == c1
TREEITEM ::oTabMag:CODICE CARGO { ::oTabMag:DESC }
c2 := Left( ::oTabMag:CODICE, 4 )
::oTabMag:skip()
TREE
do while Left( ::oTabMag:CODICE, 4 ) == c2
TREEITEM ::oTabMag:CODICE CARGO { ::oTabMag:DESC }
::oTabMag:skip()
enddo
ENDTREE
enddo
ENDTREE
enddo
ENDTREE
oTree:OpenAll()
return oTree