Code: Select all
#include "dac.ch"
#INCLUDE "dcdialog.CH"
#INCLUDE "appevent.CH"
#Pragma Library("dclipx.lib")
FUNCTION Main
LOCAL GetList[0], GetOptions, aObjects, oBrowse, oBitmap, oStatic, nPointer := 1, i, lStatus
DbeLoad( "foxdbe" )
DbeLoad( "cdxdbe" )
DbeBuild( "foxcdx", "foxdbe", "cdxdbe" )
Use parts VIA 'FOXCDX'
SELECT partno as Number, ;
partname as Name, ;
parttype as Type, ;
bmpImage as Image, ;
RecNo() as Record ;
FROM parts ;
INTO OBJECTS aObjects
FOR i := 1 TO Len(aObjects)
aObjects[i]:name := Pad(aObjects[i]:name,20) // Pad the data for cell editing
NEXT
oBitmap := XbpBitmap():new():create()
@ 0,0 DCBROWSE oBrowse ;
SIZE 72,22 ;
DATA aObjects ;
HEADLINES 2 ;
POINTER nPointer ;
FONT '10.Lucida Console' ;
EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITDOWN ;
ITEMMARKED {||oBitmap:setBuffer(aObjects[nPointer]:image), oStatic:invalidateRect()}
DCBROWSECOL OBJECTVAR Number HEADER 'Part;Number' WIDTH 10 PARENT oBrowse PROTECT {||.t.}
DCBROWSECOL OBJECTVAR Name HEADER 'Part;Name' WIDTH 30 PARENT oBrowse
DCBROWSECOL OBJECTVAR Type HEADER 'Part;Type' WIDTH 10 PARENT oBrowse PROTECT {||.t.}
DCBROWSECOL OBJECTVAR Record HEADER 'Record;Number' WIDTH 6 PICTURE '99999' PARENT oBrowse ;
PROTECT {||.t.}
@ 0, 74 DCSTATIC TYPE XBPSTATIC_TYPE_BITMAP OBJECT oStatic ;
CAPTION oBitmap SIZE 43,12 ;
RESIZE DCGUI_RESIZE_REPOSONLY
DCGETOPTIONS RESIZE RESIZEDEFAULT DCGUI_RESIZE_RESIZEONLY
DCREAD GUI ;
FIT ;
TITLE 'Browsing a Fox Database SQL Query' ;
OPTIONS GetOptions ;
TO lStatus ;
ADDBUTTONS
IF lStatus
PARTS->(GatherData(aObjects))
ENDIF
RETURN nil
* --------
PROC appsys ; RETURN
* --------
FUNCTION GatherData( aObjects )
LOCAL i
FOR i := 1 TO Len(aObjects)
DbGoTo(aObjects[i]:record)
IF dbRLock()
REPLACE partname WITH aObjects[i]:name
dbRUnlock()
ENDIF
NEXT
RETURN nil