Seite 1 von 1
Probleme mit einem Kombinationsfeld und meinem Makro
Verfasst: Mi 5. Dez 2012, 14:39
von thomas.weiss
Hallo Leute,
ich benötige Eure Hilfe auf meinen Formular habe eine Listbox eingereicht, über die nach Datensatz Nummern suchen kann. Bei einer Listbox kann aber keine Eintrage hinzufügen, leider funktioniert das Makro bei einem Kombinationsfeld nicht mehr.
Sub Speichern_und_Neuladen
oForm = ThisComponent.drawpage.forms.getByName("Standard")
oCtr = oForm.getByName("ListBox") 'Objekt es Kontrollelementes
oForm.UpdateInt(2, oCtr.selectedItems(0))
oForm.updateRow() 'geänderten Datensatz speichern
oForm.reload() 'Formular neu einlesen
End Sub
Wie muss man das Makro ändern, damit es bei einem Kombinationsfeld unter Base (Version 3.5.4.2) funktioniert? Leider reichen meine Kenntnisse dafür nicht aus. Vielen Dank für die Hilfe im Voraus.
Gruß
Thomas
Re: Probleme mit einem Kombinationsfeld und meinem Makro
Verfasst: Mi 5. Dez 2012, 20:29
von RobertG
Hallo Thomas,
thomas.weiss hat geschrieben:
Sub Speichern_und_Neuladen
oForm = ThisComponent.drawpage.forms.getByName("Standard")
oCtr = oForm.getByName("ListBox") 'Objekt es Kontrollelementes
oForm.UpdateInt(2, oCtr.selectedItems(0))
Hier wird der Haken sein. Bei einer Listbox ist ein Unterschied zwischen dem Wert, den sie anzeigt, und dem Wert, den sie schreibt. Bei einem Kombinationsfeld sind die Werte gleich. Das Feld schreibt das, was es anzeigt, also keinen Integer-Wert. Du kannst also auf das Feld auch direkt zugreifen, z.B. mit
Nur setzt das natürlich voraus, dass Du da tatsächlich ein Varchar-Feld liegen hast und kein Integer-Feld
Gruß
Robert
Re: Probleme mit einem Kombinationsfeld und meinem Makro
Verfasst: Do 6. Dez 2012, 19:41
von thomas.weiss
Hallo Robert,
erstmal vielen Dank für Hilfe, aber das Makro bricht mit folgender Fehler Meldung ab:
Basic- Laufzeitfehler
Es ist eine Ausnahme aufgetreten
Type: com.sun.star.lang.llieal.ArguementException
Message: arguments len differ!
Was hat diese Fehlermeldung für eine Bedeutung wo kann der Fehler liegen.
Gruß
Thomas
Re: Probleme mit einem Kombinationsfeld und meinem Makro
Verfasst: Do 6. Dez 2012, 20:02
von gogo
Re: Probleme mit einem Kombinationsfeld und meinem Makro
Verfasst: Do 6. Dez 2012, 20:39
von thomas.weiss
Hallo gogo,
Vielen Dank für die Hilfe, ich habe ein Kombinationsfeld eingefügt und die Zeile von Robert
oForm.UpdateString(oCtr.GetCurrentValue()) übernommen, danach folgt die Fehlermeldung.
Mit freundlichen Grüßen
Thomas
Re: Probleme mit einem Kombinationsfeld und meinem Makro
Verfasst: Do 6. Dez 2012, 21:28
von RobertG
Hallo Thomas,
stimmt, hat einen Fehler:
nicht
oForm.UpdateString(oCtr.GetCurrentValue())
sondern
oCtr.BoundField.UpdateString(oCtr.GetCurrentValue())
Dass bei Dir "arguments len differ" als Meldung erscheint, liegt daran, dass Du entweder auf das Feld der Datenbank mit Hilfe von
oForm.UpdateInt(2, oCtr.selectedItems(0))
über das Formular und das entsprechende Element der Tabelle in den Datensatz schreibst; "2" steht dabei für die Position dieses Feldes in der Tabelle der Datenbank.
In diesem Fall hat also der Update-Befehl zwei voneinander getrennte Werte: eine Zahl und einen Wert, der durch oCtr.selectedItems(0) ausgelesen wird.
Gebe ich hingegen auf andere Art bekannt, zu welchem Feld denn der Wert gehört, so spare ich mir die Nummerierung. Das mache ich, indem ich das an das Formularfeld gebundene (BoundField) Feld anspreche.
Gruß
Robert
Re: Probleme mit einem Kombinationsfeld und meinem Makro
Verfasst: Fr 7. Dez 2012, 12:52
von thomas.weiss
Hallo Robert,
vielen herzlichen Dank, es funktioniert prima!
Gruß
Thomas