ich versuche seit Wochen verzweifelt Daten aus einer Datenbank in ein Array zu laden und in xbpbrowse() darzustellen. Ich habe fbrowse.prg als Beispiel angeschaut. Leider verstehe ich nicht was die einzelnen Schritte dort bedeuten und kann das Beispiel daher auch nicht auf einen andern Fall übertragen.
Beispiel für das nicht verstandene:
Code: Alles auswählen
FUNCTION DirBlock( aArray, nSubScript )
RETURN {|nElement| nElement := aArray[ ARR_NO ], nElement := aArray[ ARR_SORT, nElement ], aArray[ ARR_SRC, nElement, nSubScript ] }
Das habe ich bisher zusammengeschrieben:
Code: Alles auswählen
aArray={}
do while kennzeich=mkennzeich
aadd(aArray,{gruppe,bezeich,pn,sn}) // gruppe, bezeich, pn, sn sind Felder aus der Datenbank
skip
enddo
oBrowseA := XbpBrowse():new( ,,{60,40}, {200,500})
oBrowseA:create()
oColumn := XbpColumn():new( )
oColumn:dataLink := {|| aArray }
oBrowseA:addColumn( oColumn )
// Navigationscodeblöcke fr den Browser
oBrowseA:skipBlock := {|n| DbSkipper(n) }
oBrowseA:goTopBlock := {| | DbGoTop() }
oBrowseA:goBottomBlock := {| | DbGoBottom() }
oBrowseA:phyPosBlock := {| | Recno() }
// Navigationscodeblöcke für den vertikalen Scrollbar
oBrowseA:posBlock := {| | DbPosition() }
oBrowseA:goPosBlock := {|n| DbGoPosition(n) }
oBrowseA:lastPosBlock := {| | 100 }
oBrowseA:firstPosBlock := {| | 0 }
oBrowseA:show()
SetAppFocus( oBrowseA )
// Event loop
DO WHILE nEvent <> xbeP_Close
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
IF nEvent == xbeP_Keyboard .AND. oXbp == oBrowseA
DO CASE
CASE mp1 == xbeK_ESC
exit
ENDCASE
ENDIF
ENDDO
Ich denke bei datalink und bei den Navigationszeilen klemmt es.
Ich hoffe auf Hilfe.
Danke
Wolfgang