Hallo!
Habe hier eine Tabelle, welche unter anderem die Felder "Artikelnummer" und "Artikelbezeichnung" hat. Mein Anliegen ist einfach - wenn ich die Artikelnummer im Kombinationsfeld ändere, soll sich auch die Artikelbezeichnung anpassen - oder umgekehrt. Das Makro, welches die Felder mit entsprechenden Werten füllt habe ich schon.
Allerdings tue ich mir damit schwer es einem Ereignis zuzuordnen. Dem Programm muss klar sein, ob gerade die Artikelnummer oder die Bezeichnung neu ausgewählt worden sind - deshalb habe ich versucht das Makro dem Ereignis "Text verändert" des entsprechenden Feldes zuzuordnen - dann passiert aber eigenartigerweise gar nichts. Also bin ich auf "Status geändert" übergegangen mit folgendem Ergebnis:

- Beispiel.jpg (23.42 KiB) 2282 mal betrachtet
Wie man sieht, im Feld Artikelnummer ist zwar eine "1" ausgewählt worden, folgender Code
Code: Alles auswählen
oDoc=thisComponent
oForm=oDoc.Drawpage.forms.GetByName("Formular1")
oForm=oForm.GetByName("Formular1.1")
oTabelle=oForm.getByName("Abrechnungsfeld")
oElement=oTabelle.GetByName("Artikelnummer")
artikelnummer=oElement.text
if artikelnummer<>"" then
msgbox(artikelnummer)
else
msgbox("Artikelnummer leer:"+artikelnummer)
end if
gibt aber zurück, dass das Feld noch leer wäre. Ich bekomme immer den letzten Wert der im Feld noch vor der Veränderung stand. Wenn ich jetzt in ein anderes Feld klicke, dann zurück zur Artikelnummer gehe und dort eine zwei eintrage, bekomme ich den Rückgabewert 1.
Daraufhin habe ich versucht nach
oElement=oTabelle.GetByName("Artikelnummer")
noch
oElement.commit(true)
einzufügen damit der Wert nicht mehr nur optisch, sondern "tatsächlich" im entsprechenden Feld steht, nutzt nichts. Ich frage mich, wo mein Fehler ist?
Viele Grüße
Arek