Hi Robert,

> Ich will ein Auswahlfeld neu bestücken. Dazu habe ich gerade noch einmal das 
> Model probiert. Dort steht mir nur SelectedItems, StringItemList und 
> ValueItemList zur Verfügung. Das Object wird bei dbg_properties als "unknown" 
> bezeichnet.
> Ich benötige aber eben auch die Möglichkeit, alte Items zu entfernen und neue 
> in das Auswahlfeld zu schreiben.

Dazu müßtet Du StringItemList manipulieren, das ist die Liste der
Einträge. Der Nachteil gegenüber der API am Control ist, dass man hier
halt nur alle Einträge als eine große Liste bekommen, und Dinge wie
"lösche den dritten Eintrag" manuell machen muß, während es das am
Control direkt gibt.

Wenn Du allerdings das Control manipulierst, und nicht das Model, dann
wirst Du spätestens beim Schreiben der Daten Probleme bekommen. Wenn Du
zum Beispiel im Control den dritten Eintrag löschst, dann weiß das
Control nichts davon. Wenn jetzt der Benutzer des Formulars den (neuen)
dritten (und ehemals vierten) Eintrag selektiert, und das in die
Datenbank geschrieben werden soll, dann passiert das am *Model*. Und da
das nicht weiß, dass der dritte Eintrag gelöscht wurde, wird es Dir
etwas Falsches schreiben.

Deswegen: Sobald Daten-Anbindung bei Formular-Kontrollfeldern ins Spiel
kommt, immer mit dem Model arbeiten, nie mit dem Control. Alles, was Du
am Control erledigen kannst, geht prinzipiell auch am Model - nur
manchmal leider etwas anders oder komplizierter.


So, nach diesere Vorrede die schlechte Nachricht: Wie oben erklärt ist
es eine schlechte Idee, die Listen-Einträge direkt am Control zu
manipulieren. Leider ist es *auch* eine schlechte Idee, dass am Model zu
tun :-\ Das Problem ist, das für ein Listenfeld zwei Listen existieren,
die von Dir schon erwähnten StringItemList und ValueItemList. Erstere
enthält die anzuzeigenden Texte, letztere die korrespondierenden Werte,
die bei Auswahl eines Listen-Eintrages in die DB geschrieben werden. Du
müßtest also beide immer konsistent halten - was nicht funktioniert,
weil die ValueItemList nur zum Lesen, aber nicht zum Schreiben gedacht
ist, da der Inhalt implizit aus der DB gefüllt wird.

Wenn Du also den Listen-Inhalt einschränken willst (was ich einer Deiner
vorigen Mails entnehme), dann solltest Du vielleicht einfach mit einem
Filter auf dem SQL-Statement für die ListBox arbeiten - das ginge völig
ohne Makros.

Ciao
Frank

-- 
- Frank Schönheit, Software Engineer         frank.schoenh...@sun.com -
- Sun Microsystems                      http://www.sun.com/staroffice -
- OpenOffice.org Base                       http://dba.openoffice.org -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org

Antwort per Email an