🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[gelöst] per Makro Listfeld in Unterformular auslesen
[gelöst] per Makro Listfeld in Unterformular auslesen
Guten Abend,
ich scheitere am Zugriff auf ein Listfeld im Unterformular:
Im Listfeld (erstes Element im Unterformular) wird aus Tabelle "T_Artikel" eine ArtikelID (Integer) ermittelt und gespeichert.
Über diese ArtikelID soll im Makro (ausgelöst durch das Listfeld) per Abfrage der VKPreis ermittelt werden. Ich schaffe es nicht, die ArtikelID für die entsprechende Abrfage aus dem Listfeld auszulesen.
Mein Code (sorry, wie wird Code im separaten Feld angezeigt?):
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oField = oEvent.Source.Model ' funktioniert, wenn Kontrollfeld (z.B. bei Änderung) auslösendes Element ist
oForm = oField.Parent
iID = oField.BoundField.Value ' Beispiel für ein numerisches Feld
'iID = oField.ValueItemList(oField.SelectedItems(0)) ' ArtikelID
msgbox oField.getCurrentValue()
Es wird kein Wert angezeigt.
Danke für einen Tipp.
ich scheitere am Zugriff auf ein Listfeld im Unterformular:
Im Listfeld (erstes Element im Unterformular) wird aus Tabelle "T_Artikel" eine ArtikelID (Integer) ermittelt und gespeichert.
Über diese ArtikelID soll im Makro (ausgelöst durch das Listfeld) per Abfrage der VKPreis ermittelt werden. Ich schaffe es nicht, die ArtikelID für die entsprechende Abrfage aus dem Listfeld auszulesen.
Mein Code (sorry, wie wird Code im separaten Feld angezeigt?):
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oField = oEvent.Source.Model ' funktioniert, wenn Kontrollfeld (z.B. bei Änderung) auslösendes Element ist
oForm = oField.Parent
iID = oField.BoundField.Value ' Beispiel für ein numerisches Feld
'iID = oField.ValueItemList(oField.SelectedItems(0)) ' ArtikelID
msgbox oField.getCurrentValue()
Es wird kein Wert angezeigt.
Danke für einen Tipp.
Zuletzt geändert von WbrunoT am Do 4. Nov 2021, 19:29, insgesamt 2-mal geändert.
Re: per Makro Listfeld in Unterformular auslesen
Hallo
es ist eher Wahrsagerei aus den gegebenen Informationen zu antworten!
Da du offenbar schon ein event-objekt benutzt, würde ich dieses mittels mri untersuchen
[code_ ] …… [ /code] ohne _unterstrich und Leerzeichen
es ist eher Wahrsagerei aus den gegebenen Informationen zu antworten!
Da du offenbar schon ein event-objekt benutzt, würde ich dieses mittels mri untersuchen
Code: Alles auswählen
…
…
mri(oEvent.Source)
indem du auf den </> button drückst und deinen Code zwischen den Code-tags einfügst:sorry, wie wird Code im separaten Feld angezeigt?)
[code_ ] …… [ /code] ohne _unterstrich und Leerzeichen
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Re: per Makro Listfeld in Unterformular auslesen
Danke, werde es durchkauen.
Code: Alles auswählen
...
Test :-)
Re: per Makro Listfeld in Unterformular auslesen
Guten Abend karolus,
ich habe mri erfolgreich als Extention in LO geladen, bekomme bei Aufruf im Code auch das MRI-Fenster.
Über eine Schaltfläche im Formular F_neue_Rechnung, welches das Unterformular RechnDetail enthält, löse ich folgendes Makro aus:
Ich habe im Netz nach einer Kommentierung gesucht, wie die Angaben gelesen werde können. Leider nichts gefunden.
Das Unterformular hat die Spalten Artikel (Listenfeld), Anzahl, Einzelpreis und Endpreis.
Den Code in meinem ersten Post habe ich einem älteren Post von Robert Großkopf entnommen.Hat mir aber nicht weitergeholfen, da es dort nicht um ein Unterformular geht.
Arbeite mit LO 7.1.5.2 (x64). Was brauchst du noch, um keine Glaskugel zu brauchen? Ich kenne aus ACCESS vba die Methode, wie man ein Kontrollfeld in einem Unterformular anspricht. Gibt es in LO Base vba nicht vergleichbares? Das Handbuch (S.453f) hilft mir leider auch nicht weiter.
Ich habe im Forum auch den Link zu einer odb gefunden, die im Kern das leistet, was ich suche. Allerdings wird dort (exzessiv) mit schier endlosen SQL gearbeitet, die ich noch nicht nachvollziehen konnte. Ich habe immer den Weg über vba bevorzugt.
Vielen Dank für deine Geduld.
ich habe mri erfolgreich als Extention in LO geladen, bekomme bei Aufruf im Code auch das MRI-Fenster.
Über eine Schaltfläche im Formular F_neue_Rechnung, welches das Unterformular RechnDetail enthält, löse ich folgendes Makro aus:
Code: Alles auswählen
Sub MeinTest
DIM oDoc AS OBJECT, oDrawpage AS OBJECT
DIM oForm AS OBJECT, oSubForm AS OBJECT
oDoc = thisComponent
oDrawpage = oDoc.drawpage
oForm = oDrawpage.forms.getByName("neue_Rechnung")
oSubForm = oForm.getByName("RechnDetail")
mri oSubform
End Sub
Das Unterformular hat die Spalten Artikel (Listenfeld), Anzahl, Einzelpreis und Endpreis.
Den Code in meinem ersten Post habe ich einem älteren Post von Robert Großkopf entnommen.
Code: Alles auswählen
https://users.de.libreoffice.narkive.com/46CM1bVA/base-formular-datenfeld-per-makro-auslesen
Arbeite mit LO 7.1.5.2 (x64). Was brauchst du noch, um keine Glaskugel zu brauchen? Ich kenne aus ACCESS vba die Methode, wie man ein Kontrollfeld in einem Unterformular anspricht. Gibt es in LO Base vba nicht vergleichbares? Das Handbuch (S.453f) hilft mir leider auch nicht weiter.
Ich habe im Forum auch den Link zu einer odb gefunden, die im Kern das leistet, was ich suche. Allerdings wird dort (exzessiv) mit schier endlosen SQL gearbeitet, die ich noch nicht nachvollziehen konnte. Ich habe immer den Weg über vba bevorzugt.
Vielen Dank für deine Geduld.
Re: per Makro Listfeld in Unterformular auslesen
Für alle, die reingeschaut haben und vielleicht dasselbe (Anfänger)problem haben, hier ein Link (englisch), unter dem ich die Lösung gefunden habe:
https://stackoverflow.com/questions/508 ... ibreoffice
Viel Erfolg
https://stackoverflow.com/questions/508 ... ibreoffice
Viel Erfolg
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.