Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- Force 4.0 Reference - _dbedisp database browse display function type http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 _DBEDISP            Database browse display function type
------------------------------------------------------------------------------
 Declaration
   database.hdr

 Syntax
   func char _DBEDISP ptr
   param _ALIAS_PARAM sDatabase, ;
         value uint   uColumn, ;
               uint   uFieldLength

 Arguments
   sDatabase is the alias displayed.

   uColumn is the current column (field) number.

   uFieldLength is the width of the displayed header or record cell.

 Return
   The header or record cell string for the browse display.

 Description
   The _DBEDISP function type is used to declare a pointer to a function
   wich is responsible for displaying column header or record cell data
   during a database browse. The function type is used in conjunction with
   the dbedit() function to display header and record cell data.

 Example
   #define EXAMPLE_TYPE
   #define EXAMPLE_DATABASE
   #include example.hdr

   func uint KeyFunc3 static
   param _ALIAS_PARAM pDbf, ;
         value uint   uField, ;
         value ulong  pBitArray, ;
         value uint   uMode
   vardef
      uint uMarked
      uint n
   enddef
   uMarked := 0
   for n := 1 to areccount( pDbf )
      if barrget( pBitArray, n )     // calculate number of marked records
         uMarked++
      endif
   next
   @ 2, 11 ?? arecno( pDbf )         // status display
   @ 2, 26 ?? uField
   @ 2, 41 ?? uMarked
   @ 2, 56 ?? uMode
   return( DBER_CONTINUE )
   endproc
   
   func char HeaderFunc3 static          // return column headers
   param _ALIAS_PARAM pDbf, ;
          value uint  uField, ;
                uint  nFldLen
   nFldLen := afieldlen( pDbf, uField )  // must always return a length
   return( upper( afieldname( pDbf, uField ) ) )
   endfunc
   
   func char RecordFunc3 static          // return record contents
   param _ALIAS_PARAM pDbf, ;
         value uint   uField, ;
               uint   nFldLen
   nFldLen := afieldlen( pDbf, uField )  // must always return a length
   return( afieldstring( pDbf, uField ) )
   endfunc
   
   proc Test_DBEDISP
   vardef
      uint            n
      _DBESET         mBrw
      ptr( _DBEDISP ) _aFuncRec[ NUM_FIELDS ]
      ptr( _DBEDISP ) _aFuncHdr[ NUM_FIELDS ]
   enddef
   clear
   cursor( .f. )
   @ 23, 0 ?? center( "Use the Ins and Del keys to (un)mark records", 80 )
   @ 1, 15 ?? "Record"
   @ 1, 30 ?? "Field"
   @ 1, 46 ?? "Marked"
   @ 1, 62 ?? "Mode"
   __syscolor[ CLR_STD ] := WHITE_BLACK
   @ 5, 14 ?? replicate( "-", 53 )
   __syscolor[ CLR_DBE_STD    ] := WHITE_BLUE    // unmarked records
   __syscolor[ CLR_DBE_SEL    ] := BLUE_WHITE    // selection bar
   __syscolor[ CLR_DBE_CELL   ] := BLACK_WHITE   // selected cell
   __syscolor[ CLR_DBE_MARKED ] := GREEN_BLACK   // marked records
   __syscolor[ CLR_DBE_HEAD   ] := WHITE_BLACK   // header
   mBrw.uColumns := NUM_FIELDS
   for n := 0 to NUM_FIELDS - 1                  // fill function arrays
      _aFuncHdr[ n ] := &HeaderFunc3
      _aFuncRec[ n ] := &RecordFunc3
   next
   mBrw.bTop     := 6                            // browse settings
   mBrw.bLeft    := 14
   mBrw.bBottom  := 21
   mBrw.bRight   := 66
   mBrw.pSepRec  := &" "
   mBrw.pSepHdr  := &" "
   mBrw.pKeyFunc := &KeyFunc3
   open sTest                                    // open database
   __syscolor[ CLR_STD ] := BLACK_LIGHT_GREY
   dbedit( sTest, mBrw, &_aFuncRec[], &_aFuncHdr[] )
   cursor( .t. )
   endproc

   proc main
   Test_DBEDISP()
   endproc

See Also: dbedit()

Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson