[<<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.ClipX.Net --- NG 2 HTML conversion by Dave Pearson