Code: Alles auswählen
IF oForm.RowCount = 0 THEN
msgbox "Kein Datensatz zum Drucken vorhanden"
EXIT SUB
END IF
REM Der Zugriff auf die URL ist nicht vom Formular aus direkt möglich. Es muss auf den darüber liegen-
REM den Frame der Datenbank Bezug genommen werden.
stDir = Left(oDB.Location,Len(oDB.Location)-Len(oDB.Title))
REM Der Titel der Datenbank wird von der URL abgetrennt.
stDir = stDir & "Lettera bozza.odt"
rem Die Vorlage wird aufgesucht und geöffnet
DIM args(0) AS NEW com.sun.star.beans.PropertyValue
args(0).Name = "AsTemplate"
args(0).Value = true
oNewDoc = StarDesktop.loadComponentFromURL(stDir,"_blank",0,args)
REM Die Textfelder werden eingelesen
oTextfields = oNewDoc.Textfields.createEnumeration
DO WHILE oTextfields.hasMoreElements
oTextfield = oTextfields.nextElement
IF oTextfield.supportsService("com.sun.star.text.TextField.JumpEdit") THEN
stColumnname = oTextfield.PlaceHolder
REM Placeholder ist die Benennung für das Textfeld
IF oColumns.hasByName(stColumnname) THEN
REM Wenn der Name des Textfeldes gleich dem Spaltennamen der Daten ist, die dem Formular
REM zugrunde liegen, wird der Inhalt aus der Datenbank auf das Feld in dem Textdokument übertragen.
inIndex = oForm.findColumn(stColumnname)
oTextfield.Anchor.String = oForm.getString(inIndex)
END IF
END IF
LOOP
REM Datei speichern
dim document as object
dim dispatcher as object
dim surl as string
Dim arg(1) as New com.sun.star.beans.PropertyValue
arg(0).Name="FilterName"
arg(0).Value = "writer8"
arg(1).Name = "Overwrite"
arg(1).Value = False
surl = "file:///C:/Dati/_test.odt"
oNewDoc.storeAsUrl(surl, arg()) 'Speichern