home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 16 / CD_ASCQ_16_0994.iso / news / 4611 / fw16d.ins / SOURCE / CLASSES / WORKAREA.PRG < prev   
Text File  |  1994-06-11  |  3KB  |  102 lines

  1. #include "Objects.ch"
  2.  
  3. //----------------------------------------------------------------------------//
  4.  
  5. CLASS TWorkArea
  6.  
  7.    DATA   nArea     AS Numeric              // No cambiar el orden
  8.    DATA   lBufferOn AS Logical   READONLY   // de estas declaraciones
  9.    DATA   aBuffer   AS Array                // de datos.
  10.  
  11.    METHOD New( nArea )  CONSTRUCTOR     // Buffering ON By default
  12.  
  13.    METHOD FieldGet( nField ) EXTERN TWAFieldGe()       // if buffering
  14.    METHOD FieldPut( nField, uVal ) EXTERN TWAFieldSe() // access to buffer.
  15.    METHOD Load()        EXTERN TWALoad()
  16.    METHOD Save()        EXTERN TWASave()
  17.    HIDE METHOD SetArea( nArea )
  18.    METHOD SetBuffer( lOnOff )  // if TRUE reloads buffer
  19.  
  20.  
  21.    METHOD Eof()         EXTERN TWAEof()
  22.    METHOD Bof()         EXTERN TWABof()
  23.    METHOD FCount()      EXTERN TWAFCount()
  24.    METHOD RecNo()       EXTERN TWARecNo()
  25.    METHOD Deleted()     EXTERN TWADeleted()
  26.    METHOD LastRec()     EXTERN TWALastRec()
  27.    METHOD RecCount()    EXTERN TWALastRec()
  28.    METHOD Lock()        EXTERN TWALock()
  29.    METHOD RecLock()     EXTERN TWARLock()
  30.    METHOD GoTop()       EXTERN TWAGoTop()    // if buffering reloads buffer
  31.    METHOD GoBottom()    EXTERN TWAGoBotto()  //    "
  32.    METHOD Commit()      EXTERN TWACommit()
  33.    METHOD Delete()      EXTERN TWADelete()
  34.    METHOD ReCall()      EXTERN TWAReCall()
  35.    METHOD DBEval( bBlock, bFor, bWhile, nNext, nRecord, lRest ) ;
  36.                         EXTERN TWAEval()
  37.    METHOD Seek( uExp, lSoft ) EXTERN TWASeek() // if buffering reloads buffer
  38.    METHOD Skip( nRecords ) EXTERN TWASkip()    //    "
  39.    METHOD GoTo( nRecNo ) EXTERN TWAGoTo()      //    "
  40.    METHOD Append()      EXTERN TWAAppend()
  41.    METHOD UnLock()      EXTERN TWAUnLock()
  42.    METHOD Pack()        EXTERN TWAPack()
  43.    METHOD Zap()         EXTERN TWAZap()
  44.  
  45. ENDCLASS
  46.  
  47. //----------------------------------------------------------------------------//
  48.  
  49. METHOD New( nArea ) CLASS TWorkArea
  50.  
  51.    DEFAULT nArea := Select()
  52.  
  53.    ::lBufferOn := .T.
  54.  
  55.    ::SetArea( if( nArea == 0, Select(), nArea ) )
  56.  
  57. return Self
  58.  
  59. //----------------------------------------------------------------------------//
  60.  
  61. METHOD SetArea( nArea ) CLASS TWorkArea
  62.     static nClassH
  63.     local n
  64.  
  65.     DEFAULT nClassH := TWorkArea():ClassH()
  66.  
  67.     ::nArea   = nArea
  68.  
  69.     nArea := Select()
  70.  
  71.     SELECT ( ::nArea )
  72.  
  73.     for n = 1 to FCount()
  74.         TWADictAdd( nClassH, "_" + Field( n ), Field( n ) )
  75.     next
  76.  
  77.     ::aBuffer   := Array( FCount() )
  78.  
  79.     if ::lBufferOn
  80.        ::Load()
  81.     endif
  82.  
  83.     SELECT ( nArea )
  84.  
  85. return nil
  86.  
  87. //---------------------------------------------------------------------------//
  88.  
  89. METHOD SetBuffer( lOnOff )
  90.  
  91.     DEFAULT lOnOff := .f.
  92.  
  93.     ::lBufferOn := lOnOff
  94.  
  95.     if ::lBufferOn
  96.        ::Load()
  97.     endif
  98.  
  99. return nil
  100.  
  101. //---------------------------------------------------------------------------//
  102.