Inhalt von Tabelle in Listbox [ERLEDIGT]

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
eddy
Rookie
Rookie
Beiträge: 9
Registriert: Mo, 27. Jul 2009 12:23

Inhalt von Tabelle in Listbox [ERLEDIGT]

Beitrag von eddy »

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
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
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

Beitrag von Tom »

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:

Code: Alles auswählen

DO WHILE !Eof()
aAdd(aStruct,kunden->name)
SKIP
ENDDO
Herzlich,
Tom
eddy
Rookie
Rookie
Beiträge: 9
Registriert: Mo, 27. Jul 2009 12:23

Re: Inhalt von Tabelle in Listbox

Beitrag von eddy »

Danke für die schnelle Hilfe!

Manches kann doch so einfach sein!

Gruß eddy
Antworten