Makro SubForm_Grid auslesen
Verfasst: Mi 24. Sep 2025, 19:16
Hallo zusammen
Habe Ein Formular, aus dem ich zwecks Mailversand sowohl aus dem Haupt- als auch aus dem Unterformular per Makro Daten auslesen möchte. Das klappt auch . allerdings kann ich aus nur eine Zeile aus dem SubForm_Grid (Tabelle des Unterformulars) auslesen, da ich den Basic Befehl zum Ansteuern der nächsten Zeile nicht finde. Habe schon gesucht auch im Handbuch aber Dinge wie oForm.next ergeben ein Fehlermeldung. Gibt es überhaupt eine Basic Lösung zum Ansteuern der nächsten Zeilec/ Datensatz oder muss ich SQL nehmen?
Ich komme da einfach nicht weiter - über Hilfe würde ich mich freuen!
Michael
Habe Ein Formular, aus dem ich zwecks Mailversand sowohl aus dem Haupt- als auch aus dem Unterformular per Makro Daten auslesen möchte. Das klappt auch . allerdings kann ich aus nur eine Zeile aus dem SubForm_Grid (Tabelle des Unterformulars) auslesen, da ich den Basic Befehl zum Ansteuern der nächsten Zeile nicht finde. Habe schon gesucht auch im Handbuch aber Dinge wie oForm.next ergeben ein Fehlermeldung. Gibt es überhaupt eine Basic Lösung zum Ansteuern der nächsten Zeilec/ Datensatz oder muss ich SQL nehmen?
Ich komme da einfach nicht weiter - über Hilfe würde ich mich freuen!
Michael
Code: Alles auswählen
SUB Mail_Aufruf
REM Aus Libreoffice-Forum
REM Mailaufruf mit mailto:Empfänger?subject=...&body=...&cc=...&bcc=...
REM Die letzten beiden Eingaben sind im Formular nicht aufgeführt
REM Anhänge sind laut Definition von "mailto" nicht definiert. Manchmal funktioniert allerdings "attachment="
DIM oDoc AS OBJECT
DIM oDrawpage AS OBJECT
DIM oForm AS OBJECT
DIM oFeld1 AS OBJECT
DIM oFeld2 AS OBJECT
DIM oFeld3 AS OBJECT
DIM oFeld4 AS OBJECT
DIM oFeld5 AS OBJECT
DIM oFeld6 AS OBJECT
DIM oFeld7 AS OBJECT
DIM oFeld8 AS OBJECT
DIM oFeld9 AS OBJECT
DIM oFeld10 AS OBJECT
DIM oShell AS OBJECT
DIM Zeilensumme AS Double
DIM Gesamtsumme AS DOUBLE
DIM oObj1 AS OBJECT
DIM stFeld1 AS STRING
DIM stFeld2 AS STRING
DIM stFeld3 AS STRING
DIM stFeld4 AS STRING
DIM stFeld5 AS STRING
DIM stFeld6 AS STRING
DIM stFeld7 AS STRING
DIM stFeld8 AS DOUBLE
DIM stFeld9 AS DOUBLE
DIM stFeld10 AS STRING
DIM stBody AS STRING
oDoc=thisComponent
oDrawpage=oDoc.Drawpage
oForm=oDrawpage.Forms.getByName("MainForm")
oFeld1=oForm.getByName("EMail")
oFeld2=oForm.getByName("Name")
ofeld3 = oForm.getByName("Vorname")
oForm=oDrawpage.Forms.getByName("MainForm").getByName("SubForm").getByName("SubForm_Grid")
ofeld4 = oForm.getByName("Pos")
ofeld5 = oForm.getByName("Artikel")
ofeld6 = oForm.getByName("Machart")
ofeld7 = oForm.getByName("Beschreibung")
oFeld8 = oform.getByName("Stck")
oFeld9 = oform.getByName("Brutto_Stck")
REM --------WICHTIG
REM Der Abruf des Anzeigewertes von Listenfeldern muss über stringitemlist erfolgen
stFeld5 = oFeld5.StringItemList(oFeld5.SelectedItems(0))
MsgBox(stFeld5)
stFeld6 = oFeld6.StringItemList(oFeld6.SelectedItems(0))
MsgBox(stFeld6)
stFeld4=oFeld4.getCurrentValue()
MsgBox(stFeld4)
stFeld7=oFeld7.getCurrentValue()
MsgBox(stFeld7)
stFeld8=oFeld8.getCurrentValue()
MsgBox(stFeld8)
stFeld9=oFeld9.getCurrentValue()
MsgBox(stFeld9)
Zeilensumme = stFeld8 * stFeld9
MsgBox(Zeilensumme)
stBody=stFeld5 +" " + stFeld6 + " " + stFeld7 + " " + stFeld8 + " Stck " + stFeld9 + "€" + " Summe " + Zeilensumme
stFeld1=oFeld1.Text
IF stFeld1 = "" THEN
msgbox "Keine Mailadresse vorhanden." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
EXIT SUB
END IF
REM Die Konvertierung zu URL ist notwendig, da sonst Sonderzeichen und Zeilenumbrüche nicht übernommen werden
REM Die überflüssigen Einträge file:/// werden dabei wieder herausgeschnitten
stFeld2=Mid(ConvertToUrl(oFeld2.Text),9)
stFeld3=Mid(ConvertToUrl(oFeld3.Text),9)
stFeld4=Mid(ConvertToUrl(stFeld4),9)
REM Start des Files mit der entsprechenden URL-Verbindung
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute("mailto:"+ stFeld1 + "?subject="+ stFeld2 + "&body="+ stBody,"",0)
END SUB