das meiste habe ich verstanden. Aber das Wichtigste ist: Es läuft!!!
So gut wie Alles konnte ich umsetzen. Jetzt muss ich das Teil erstmal ein paar Tage laufen lassen. Da wird es bestimmt noch die ein oder andere Änderung geben. Evtl brauche ich noch so etwas wie einen Text, der groß in dem einen Formular erscheint, wenn in der Datenbank etwas in dem anderen Formular eingegeben wurde. Ich kann das mit den Check-Feldern machen, aber die sind zu klein. Wie auch immer, jetzt läuft´s erstmal.
Vielen Dank und hier das Makro, wie es jetzt läuft:
Code: Alles auswählen
rem
SUB Mail_Neufertigung
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 oShell 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
oDoc=thisComponent
oDrawpage=oDoc.Drawpage
REM Lage des Feldes in dem entsprechenden Formular aufsuchen
oForm=oDrawpage.Forms.getByName("Neufertigungformular")
oFeld1=oForm.getByName("Datum")
oFeld2=oForm.getByName("Kunde")
oFeld3=oForm.getByName("Zeichnung")
oFeld4=oForm.getByName("Sachbearbeiter")
oFeld5=oForm.getByName("Beschreibung")
oFeld6=oForm.getByName("Auftrag")
oFeld7=oForm.getByName("Stück Ausschuss")
oFeld8=oForm.getByName("Stück gesamt")
stFeld2=oFeld2.Text
stFeld3=oFeld3.Text
stFeld5=oFeld5.Text
stFeld6=oFeld6.Text
stFeld7=oFeld7.Text
stFeld8=oFeld8.Text
IF stFeld2 = "" THEN
msgbox "Kein Kundenname vorhanden." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
EXIT SUB
END IF
IF stFeld3 = "" THEN
msgbox "Keine Zeichnungs-Nr.vorhanden." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
EXIT SUB
END IF
IF stFeld5 = "" THEN
msgbox "Keine Beschreibung vorhanden." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
EXIT SUB
END IF
IF stFeld6 = "" THEN
msgbox "Keine Auftrags-Nr.vorhanden." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
EXIT SUB
END IF
IF stFeld7 = "" THEN
msgbox "Keine Ausschuss Stückzahl eingetragen." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
EXIT SUB
END IF
IF stFeld8 = "" THEN
msgbox "Keine Gesamt Stückzahl eingetragen." & CHR(13) & "Das Mailprogramm wird nicht aufgerufen" , 48, "Mail senden"
EXIT SUB
END IF
oControl = oForm.getByName("Sachbearbeiter")
stEintrag = oControl.ValueItemList( oControl.SelectedItems(0) )
stAdresse="elkepopelke@bb.de"
stAdresseCC="ding@bums.de"
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
stFeld1=Mid(ConvertToUrl(oFeld3.Text),9)
stFeld2=Mid(ConvertToUrl(oFeld2.Text),9)
stFeld3=Mid(ConvertToUrl(oFeld3.Text),9)
stFeld5=Mid(ConvertToUrl(oFeld5.Text),9)
stFeld6=Mid(ConvertToUrl(oFeld6.Text),9)
stFeld7=Mid(ConvertToUrl(oFeld7.Text),9)
stFeld8=Mid(ConvertToUrl(oFeld8.Text),9)
REM Start des Files mit der entsprechenden URL-Verbindung
oShell = createUnoService("com.sun.star.system.SystemShellExecute")
oShell.execute("mailto:"+stAdresse+"?subject="+"Neufertigung "+stFeld2+" "+"Auftrag "+stFeld6+"&body="+"Neufertigung "+stFeld7+" von "+stFeld8+" Stück. "+"Beschreibung: "+stFeld5+" - entschieden von: "+stEintrag+"&cc="+stAdresseCC+"",,0)
END SUB