Hallo Leute,
hänge bei einer Sache fest, die ich mir einfach nicht erklären kann.
Ich möchte den Inhalt einer Tabelle einer Datenbank in einer Listbox anzeigen lassen und hab folgendes Beispiel aus der Hilfe verwendet.
#include "Appevent.ch"
#include "Xbp.ch"
PROCEDURE Main
LOCAL nEvent, mp1, mp2, oXbp
LOCAL oListBox, aStruct
SetColor("N/W")
CLS
USE Kunden NEW
aStruct := kunden->Name
CLOSE Kunden
oListBox := XbpListbox():new()
oListBox:markMode := XBPLISTBOX_MM_MULTIPLE
oListBox:create( ,, {300, 100}, {200, 150} )
ArrayToListBox( oListBox, aStruct )
oListBox:ItemSelected := {|mp1, mp2, obj| ;
QOut( "Fields:", ArrayFromListBox( obj ) ) }
nEvent := 0
DO WHILE nEvent <> xbeP_Close
nEvent := AppEvent( @mp1, @mp2, @oXbp)
oXbp:HandleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN
FUNCTION ArrayToListBox( oListBox, aArray )
LOCAL i:=0, imax := Len(aArray)
IF Valtype( aArray[1] ) == "A" // 2-dim Array
DO WHILE ++i <= imax // Erste Spalte übertragen
oListBox:addItem( aArray[i,1] )
ENDDO
ELSE // 1-dim Array
DO WHILE ++i <= imax // Arrayelemente übertragen
oListBox:addItem( aArray )
ENDDO
ENDIF
RETURN oListBox
STATIC FUNCTION ArrayFromListBox( oListBox )
LOCAL aArray := oListBox:getData() // Numerische Indizes
LOCAL i := 0, imax := Len(aArray)
DO WHILE ++i <= imax // Einträge lesen
aArray := oListBox:getItem( aArray )
ENDDO
RETURN aArray
Jetzt mein Problem so wie es zur Zeit ist wird mir nur der erste Datensatz angezeigt und dann jeder Buchstabe des Namen in einer neuen Zeile.
Ich hofe ich hab mich jetzt nicht zu kompl. ausgedrückt und jemand kann mir da weiterhelfen.
Gruß eddy
Inhalt von Tabelle in Listbox [ERLEDIGT]
Moderator: Moderatoren
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Re: Inhalt von Tabelle in Listbox
Hallo, Eddy.
Du siehst vermutlich nacheinander einzelnen Buchstaben des Namens aus dem Datenfeld, denn Du weist dem Auswahlarray "aStruct" kunden->Name zu. Das Auswahlarray muss aber tatsächlich ein Array sein (Zeichenfelder sind auch Arrays, deshalb siehst Du die einzelnen Buchstaben). Also z.B. sowas:
Du siehst vermutlich nacheinander einzelnen Buchstaben des Namens aus dem Datenfeld, denn Du weist dem Auswahlarray "aStruct" kunden->Name zu. Das Auswahlarray muss aber tatsächlich ein Array sein (Zeichenfelder sind auch Arrays, deshalb siehst Du die einzelnen Buchstaben). Also z.B. sowas:
Code: Alles auswählen
DO WHILE !Eof()
aAdd(aStruct,kunden->name)
SKIP
ENDDO
Herzlich,
Tom
Tom
Re: Inhalt von Tabelle in Listbox
Danke für die schnelle Hilfe!
Manches kann doch so einfach sein!
Gruß eddy
Manches kann doch so einfach sein!
Gruß eddy