🙏 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!🍀

❤️ DANKE >> << DANKE ❤️

>> 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

Alles zur Programmierung im LibreOffice.
Antworten
WbrunoT
Beiträge: 7
Registriert: So 4. Mai 2014, 12:50

[gelöst] per Makro Listfeld in Unterformular auslesen

Beitrag von WbrunoT » Di 2. Nov 2021, 18:05

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.
Zuletzt geändert von WbrunoT am Do 4. Nov 2021, 19:29, insgesamt 2-mal geändert.

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2538
Registriert: Fr 10. Dez 2010, 10:01

Re: per Makro Listfeld in Unterformular auslesen

Beitrag von karolus » Di 2. Nov 2021, 19:48

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: Alles auswählen

…
…
mri(oEvent.Source)
sorry, wie wird Code im separaten Feld angezeigt?)
indem du auf den </> button drückst und deinen Code zwischen den Code-tags einfügst:
[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)

WbrunoT
Beiträge: 7
Registriert: So 4. Mai 2014, 12:50

Re: per Makro Listfeld in Unterformular auslesen

Beitrag von WbrunoT » Mi 3. Nov 2021, 17:24

Danke, werde es durchkauen.

Code: Alles auswählen

...
 Test  :-) 

WbrunoT
Beiträge: 7
Registriert: So 4. Mai 2014, 12:50

Re: per Makro Listfeld in Unterformular auslesen

Beitrag von WbrunoT » Mi 3. Nov 2021, 18:36

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:

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
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.

Code: Alles auswählen

https://users.de.libreoffice.narkive.com/46CM1bVA/base-formular-datenfeld-per-makro-auslesen
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.

WbrunoT
Beiträge: 7
Registriert: So 4. Mai 2014, 12:50

Re: per Makro Listfeld in Unterformular auslesen

Beitrag von WbrunoT » Do 4. Nov 2021, 17:20

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


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.



Antworten