Seite 1 von 2
ComboBox im Grid in einer SubForm -> Event nicht ausgelöst
Verfasst: Do, 15.01.2015 10:08
von madmatmed
Hallo zusammen,
ich hab vor ein paar Tagen begonnen mich mit OpenOffice Base zu beschäftigen.
Unter Zuhilfenahme von google, konnte ich auch schon ein kleines Projekt realisieren und hab mich dazu entschlossen ein paar Sachen für zu Hause umzusetzen.
Ich beginne mit unserem Haushaltsbuch.
Jetzt bin ich auf folgendes Problem gestoßen, dass ich leider nicht mit Hilfe von google lösen konnte:
Ich habe eine Form "RegisterCashBon". Diese besteht aus einem Kopfteil und einer SubForm mit Erfassungszeilen.
In der SubForm ist ein Grid, in dem Grid wiederum ist eine ComboBox. Beim Ändern des Wertes in der ComboBox, möchte ich ein Makro ausführen.
Der Inhalt des Makros ist dafür relativ unwichtig. Momentan steht da nur
Ich habe in den Eigenschaften unter Ereignisse das Makro dem Ereignis "Text modifiziert" zugeordnet. Leider wird dieses Ereignis nie ausgelöst/durchlaufen.
Hat jemand von euch eine Ahnung, wieso das so sein könnte. Hab die Datenbank mal angehängt.
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Do, 15.01.2015 16:38
von F3K Total
Moin,
probiere doch mal die anderen Ereignisse, wie "Status geändert" oder "Maustaste losgelassen" durch.
Gruß R
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Do, 15.01.2015 16:49
von madmatmed
Hatte ich schon gemacht. Die anderen Events werden meist auch ausgelöst, aber leider nicht in der Art und Weise, wie ich es benötige.
Was ich nicht verstehe ist, dass ich im Kopf der Form ja auch eine ComboBox vorhanden ist, wo das Ereignis einwandfrei funktioniert, egal, ob ich eintippe oder auswähle....
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Do, 15.01.2015 17:52
von RobertG
Hallo madmatmed,
in Deinem MainForm handelt es sich bei der Combobox um eine Standalone-Version. Wenn Du so eine Version auch im SubForm einbaust, dann funktioniert die auch da. Innerhalb eines Tablecontrol sind die verschiedenen Felder in ihrer Funktionalität aber beschränkt. Schon der Blick auf die Ereignisse innerhalb und außerhalb des Tablecontrols macht das vielleicht deutlich. Da das Ereignis für Dich innerhalb des Tablecontrols nicht auslösbar ist wird wohl kein Listener auf dieses Ereignis angesetzt sein.
Du könntest einmal versuchen, das Listenfeld innerhalb des Tablecontrols mit xray weiter zu erforschen. Vielleicht gibt es ja dort einen Listener, den Du beim Laden des Unterformulars ebenfalls mit laden kannst.
Gruß
Robert
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Do, 15.01.2015 20:11
von madmatmed
Hallo Robert,
erst mal vielen Dank für deine Antwort. Der Unterschied in den Events war mir aufgefallen, da mein gewünschtes Event einmal an erster und einmal an zweiter Stelle stand. Ich dachte nur, dass die Events, die angeboten werden auch funktionieren müssten.
Ich hab noch keine Ahnung, was du mit Listener meinst, aber ich werde es herausfinden. Hab das XRay - Tool gefunden und installiert und werde mich mal schlau machen. Ich denke mal, ich werde mich dann nochmal mit ein paar Fragen melden. Aber bis dahin hab ich ja erstmal was zu tun.
Gruß
Mathias
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Do, 15.01.2015 20:16
von madmatmed
Und was mir auch noch gerade eingefallen ist, wenn ich die ComboBox durch eine ListBox ersetze, wird der Trigger ausgelöst. Deswegen vermute ich eher einen Bug.
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Do, 15.01.2015 20:29
von F3K Total
Hi,
anbei eine Variante, die zeigt, wie du im Formular RegisterCashBon komplett ohne Makro auskommst.
Gruß R
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Do, 15.01.2015 20:53
von madmatmed
Vielen Dank für deine außerordentliche Mühe.
Das ist ein sehr interessantes Konzept. Was die ListBoxen betrifft, werde ich es wohl nicht so machen, weil mir die ComboBoxen besser gefallen. Aber die Dateneingabe ist eine gute Idee... Ich werde mir das mal durch den Kopf gehen lassen. Könnte gut sein, dass ich das so umsetze in meiner Datenbank.
Danke nochmals.
Gruß
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Fr, 16.01.2015 22:45
von madmatmed
So, hab mich mal mit dem Listener beschäftigt und auch umgesetzt. Im Ergebnis hbe ich jedoch kein Unterschied.
Hab dann mit dem XRay-Tool nochmal meine ProductGroupName - Spalte angeschaut und sehe da auch keinen Listener der passt. Vielleicht hab ich ja was übersehen. Kann nochmal jemand mit einem etwas geübteren Blick drüber schauen?
Hier das Ergebnis:
Code: Alles auswählen
__ com.sun.star.beans.XPropertiesChangeListener __
_ Events watched by this Listener _
disposing com.sun.star.lang.XEventListener
propertiesChange com.sun.star.beans.XPropertiesChangeListener
_ Methods using this Listener as a parameter _ ( nothing to display )
__ com.sun.star.beans.XPropertyChangeListener __
_ Events watched by this Listener _
disposing com.sun.star.lang.XEventListener
propertyChange com.sun.star.beans.XPropertyChangeListener
_ Methods using this Listener as a parameter _ ( nothing to display )
__ com.sun.star.beans.XVetoableChangeListener __
_ Events watched by this Listener _
disposing com.sun.star.lang.XEventListener
vetoableChange com.sun.star.beans.XVetoableChangeListener
_ Methods using this Listener as a parameter _ ( nothing to display )
__ com.sun.star.form.validation.XFormComponentValidityListener __
_ Events watched by this Listener _
disposing com.sun.star.lang.XEventListener
componentValidityChanged com.sun.star.form.validation.XFormComponentValidityListener
_ Methods using this Listener as a parameter _ ( nothing to display )
__ com.sun.star.form.XResetListener __
_ Events watched by this Listener _
disposing com.sun.star.lang.XEventListener
approveReset com.sun.star.form.XResetListener
resetted com.sun.star.form.XResetListener
_ Methods using this Listener as a parameter _ ( nothing to display )
__ com.sun.star.form.XUpdateListener __
_ Events watched by this Listener _
disposing com.sun.star.lang.XEventListener
approveUpdate com.sun.star.form.XUpdateListener
updated com.sun.star.form.XUpdateListener
_ Methods using this Listener as a parameter _ ( nothing to display )
__ com.sun.star.lang.XEventListener __
_ Events watched by this Listener _
disposing com.sun.star.lang.XEventListener
_ Methods using this Listener as a parameter _ ( nothing to display )
__ com.sun.star.sdb.XSQLErrorListener __
_ Events watched by this Listener _
disposing com.sun.star.lang.XEventListener
errorOccured com.sun.star.sdb.XSQLErrorListener
_ Methods using this Listener as a parameter _ ( nothing to display )
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Sa, 17.01.2015 00:04
von F3K Total
Was soll das sein?
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Sa, 17.01.2015 07:11
von madmatmed
Das it das, was das Xray-Tool zu meiner ComboBox zum Thema Listener ausspuckt.
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Sa, 17.01.2015 08:05
von F3K Total
Ach so,
na dann viel Spaß damit ..., wie man Listener zur Laufzeit erzeigt kannst du bei Pitonyak nachlesen.
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Sa, 17.01.2015 14:28
von madmatmed
Also nochmal: ich habe mich auf Anraten von Robert mit Listenern beschäftigt. Das ist kein Problem (beides hatte ich oben hingeschrieben).
Ich hab das folgendermaßen umgesetzt:
Beim Laden der Form:
Code: Alles auswählen
Listener = CreateUnoListener("RegisterCashBon_Lines_ProductGroupName_OnValidate","com.sun.star.document.XXEventListener")
ProductGroupNameColumn.AddEventListener(Listener)
Beim Entladen der Form:
ProductGroupNameColumn ist meine ComboBox. Ich denke mal, dass der XXEventListener eh nicht der Richtige ist. Deshalb habe ich weiter mit Xray geschaut. Unter den Listenern, die dort aufgelistet sind, habe ich keinen gefunden, den ich für richtig halte. Deshalb hatte ich die Bitte geäußert, das jemand mit mehr als 3 Tagen OOo Base -Erfahrung mal kurz drüber schaut.
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Sa, 17.01.2015 19:05
von RobertG
Hallo madmatmed,
vermutlich kannst Du für Dein spezielles Vorhaben mehr erreichen, wenn Du das unter der Komponente "Basic und Java" weiter versuchst. Selbst Leute mit vielen Jahren Base-Erfahrung wie ich sie habe können dazu nichts weiter beitragen.
Ich würde eher den Bug einfach einmal melden. Mir ist z.B. bei dem Nachsehen für Deinen Bug aufgefallen, dass unter bestimmten Umständen im Tabellenkontrollfeld bei neueren LibreOffice-Ausgaben der Sprung zum letzten Datensatz inaktiv wurde, auch wenn sich der Cursor nicht im letzten Datensatz befand. das habe ich als Bug gemeldet. Innerhalb kürzester Zeit (in diesem Falle nicht einmal ein Tag), kam bereits Lionel mit einem Patch an. Manchmal geht das echt schnell, wenn es genau eingekreist werden kann.
Gruß
Robert
Re: ComboBox im Grid in einer SubForm -> Event nicht ausgelö
Verfasst: Sa, 17.01.2015 20:56
von madmatmed
Das ist zwar nicht die Antwort, auf die ich gehofft habe, aber damit hatte ich schon gerechnet.
Vielen Dank nochmal für die Hilfe.
Gruß
Mathias