Page 1 of 1

a tree with tdatabase give me error

Posted: Thu Jan 26, 2023 12:09 pm
by Silvio.Falconi
I tried to converte a tree into Tdatabase but make me error

I open the database with tdatabase

Code: Select all | Expand

     ::oTabMag:= TTabMag():New()
    ::oTabMag:SetOrder(1 )
    ::oTabMag:GoTop()
    ::oTreeMag    := ::MakeTree()
 
the error

Code: Select all | Expand

   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 )





Image



the original

Code: Select all | Expand

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


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

Re: a tree with tdatabase give me error

Posted: Mon Jan 30, 2023 9:35 pm
by nageswaragunupudi
Will you please send me the DBF ?

Re: a tree with tdatabase give me error

Posted: Tue Jan 31, 2023 8:35 am
by Silvio.Falconi
nageswaragunupudi wrote:Will you please send me the DBF ?
I sent you the test run with nomale use dbf , I wish use tdatabase