Code: Alles auswählen
oBrowse := XbpBrowse():new(oDlgEan:drawingArea, , {10, 10}, {760, 400}) // Browse für die Artikel
oBrowse:useVisualStyle := .F. // Browse ohne Themes anzeigen, ist unter Windows 7 + 8 sehr unübersichtlich
oBrowse:vScrollObject:useVisualStyle := .T. // Aber die Scrollbar soll Themes haben, sieht besser aus
oBrowse:hScroll := .F. // Horizontale Scrollbar ausschalten
oBrowse:skipBlock := {|n| DbSkipper(n) }
oBrowse:goTopBlock := {| | DbGoTop() }
oBrowse:goBottomBlock := {| | DbGoBottom() }
oBrowse:phyPosBlock := {| | Recno() }
// Navigationscodeblöcke für den vertikalen Scrollbar
oBrowse:posBlock := {| | DbPosition() }
oBrowse:goPosBlock := {|n| DbGoPosition(n) }
oBrowse:lastPosBlock := {| | 100 }
oBrowse:firstPosBlock := {| | 0 }
oBrowse:cursorMode := XBPBRW_CURSOR_ROW // Zeilencursor anschalten
oBrowse:keyboard := {|nKeyboard, uNIL, self| eanBrowse(nKeyBoard, oBrowse, oDlgEan, oSleText)} // Tatstaturdrücke auswerten
oBrowse:create()
// Spalte für die Artikelnummer
oSpalte := XBPColumn():new(oDlgEan:drawingArea, , , , {{XBP_PP_COL_HA_CAPTION, "Artikelnr."}, ; // Eine neue Spalte hinzufügen
{XBP_PP_COL_DA_ROWWIDTH, 100}})
oSpalte:dataLink := {|x| wala->bestnr} // Den Datalink auf das Feld stellen
oSpalte:create() // Das Objekt erstellen
oBrowse:addColumn(oSpalte) // Die Spalte dem Browse hinzufügen
oSpalte := XBPColumn():new(oDlgEan:drawingArea, , , , {{XBP_PP_COL_HA_CAPTION, "Artikel"}, ; // Eine neue Spalte hinzufügen
{XBP_PP_COL_DA_ROWWIDTH, 400}})
// Spalte für die Artikelbezeichnung
oSpalte:dataLink := {|x| AllTrim(wala->artikel)} // Den Datalink auf das Feld stellen
oSpalte:create() // Das Objekt erstellen
oBrowse:addColumn(oSpalte) // Die Spalte dem Browse hinzufügen
oSpalte := XBPColumn():new(oDlgEan:drawingArea, , , , {{XBP_PP_COL_HA_CAPTION, "Titel"}, ; // Eine neue Spalte hinzufügen
{XBP_PP_COL_DA_ROWWIDTH, 240}})
// Spalte für die Artikelbezeichnung
oSpalte:dataLink := {|x| AllTrim(wala->titel)} // Den Datalink auf das Feld stellen
oSpalte:create() // Das Objekt erstellen
oBrowse:addColumn(oSpalte) // Die Spalte dem Browse hinzufügen
Wenn ich mit den Cursortasten durchwandere, ändert die Satzanzeige sich nicht. Ich habe mir schon den RecNo() anzeigen lassen, der bleibt bei egal wie viel Scrollen immer oben stehen.
Gehe ich mit STRG + BildAb nach ganz unten, steht die Scrolleiste unten, wo sie hingehört. Ich kann aber dennoch weiter nach unten scrollen. Nachweislich (siehe Kommentar zum nächsten Code).
Ich habe dann mal die Zeile mit dem oBwose:keyboard eingebaut.
Code: Alles auswählen
FUNCTION eanBrowse(nKeyBoard, oBrowse, oDlgEan, oSLeText)
IF nKeyboard == xbeK_DOWN
wala->(DbSkip())
oBrowse:refreshCurrent()
ENDIF
RETURN NIL
Wichtig ist auch, das ich ein RefreshCurrent() einbaue. Ein refreshAll() zeigt mir wieder in jeder Zeile den gleichen Satz an.
Das ist kein Indexfehler. Ich habe schon ein wala->(OrdSetFocus(0)) eingesetzt, das Ergebnis ist das Gleiche.
Auch die Navigationscodeblöcke dürften das nicht sein. Die verwende ich so immer, und sind auch hier nur aus einem anderen Projektteil rüberkopiert worden.
Jan