Writer Dokument Bearbeiten und Texte einfügen?
Moderator: Moderatoren
Writer Dokument Bearbeiten und Texte einfügen?
Hallo, ich finde nicht so recht einen Ansatz.
Ich fange gerade an ein neues Makro zu schreiben. Dieses mal muss ich ein Angebot in einem Writer Dokument erstellen. Es gibt eine Vorlage die ich nutze und in der an bestimmten stellen aus der Datenbank Daten eingefügt werden müssen (Adresse, Ansprechpartner etc...) Bei Calc Dokumenten ist das ja absolut kein Problem, aber wie mache ich es bei Writer Dokumenten? Muss ich mir Marken Setzen, und dann diese dann mit einem suchen und ersetzen Makro mit den Daten überspielen? Oder wie kann ich sonst auf die entsprechenden Stellen zugreifen? Immerhin habe ich ja nicht einfach nur Adressen wie bei Calc.
Vielen dank schon mal für jeden Tipp.
Ich fange gerade an ein neues Makro zu schreiben. Dieses mal muss ich ein Angebot in einem Writer Dokument erstellen. Es gibt eine Vorlage die ich nutze und in der an bestimmten stellen aus der Datenbank Daten eingefügt werden müssen (Adresse, Ansprechpartner etc...) Bei Calc Dokumenten ist das ja absolut kein Problem, aber wie mache ich es bei Writer Dokumenten? Muss ich mir Marken Setzen, und dann diese dann mit einem suchen und ersetzen Makro mit den Daten überspielen? Oder wie kann ich sonst auf die entsprechenden Stellen zugreifen? Immerhin habe ich ja nicht einfach nur Adressen wie bei Calc.
Vielen dank schon mal für jeden Tipp.
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Windows XP Professional SP3 x86
Re: Writer Dokument Bearbeiten und Texte einfügen?
Aloha
Der Weg, den ich bei derlei Dingen empfehlen würde, ist der über Platzhalter (Placeholder), die den gleichen Namen wie die korrespondierenden Datenbankspalten tragen.
Der Weg, den ich bei derlei Dingen empfehlen würde, ist der über Platzhalter (Placeholder), die den gleichen Namen wie die korrespondierenden Datenbankspalten tragen.
Re: Writer Dokument Bearbeiten und Texte einfügen?
Okay, dann lege ich mir Platzhalter ins Dokument und ersetze diese mit der replace Funktion.
Aber was ist, wenn der Text eine bestimmte Formatierung haben muss?
Wird die Formatierung beim ersetzen übernommen?
Aber was ist, wenn der Text eine bestimmte Formatierung haben muss?
Wird die Formatierung beim ersetzen übernommen?
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Windows XP Professional SP3 x86
Re: Writer Dokument Bearbeiten und Texte einfügen?
Aloha
Du kannst die Platzhalter nach Belieben formatieren, da geht nichts verloren.
Nicht per "Replace" ersetzen, sondern per Placeholder.Anchor.String.
Du kannst die Platzhalter nach Belieben formatieren, da geht nichts verloren.
Nicht per "Replace" ersetzen, sondern per Placeholder.Anchor.String.
Re: Writer Dokument Bearbeiten und Texte einfügen?
Ich habe es nun so gelöst.
Code: Alles auswählen
Sub AB_FK_AdressdatenEinfuegen
globalScope.BasicLibraries.loadLibrary("Tools")
dim aPlatzhalter() 'LIste der Platzhalter
aPlatzhalter = array("<$Adressdaten1$>")
dim aInhalt(uBound(aPlatzhalter)) 'Liste der zu ersetzenden Texte
rem---DB Abfrage der Adressdaten
Call AB_FK_SQL
oStatement = oCon.createStatement()
oResult = oStatement.executeQuery(AB_SQL_Adresskopf)
IF NOT ISNULL(oResult) THEN
Do while oResult.Next
VAR_Abfragedaten = oResult.getString(1) & chr(10) &_
oResult.getString(2) & chr(10 &_
oResult.getString(3) & chr(10) &_
oResult.getString(4)
Loop
End If
aInhalt(0) = VAR_Abfragedaten
REM Eintragen der Inhalte
for i = 0 to uBound(aPlatzhalter())
AB_FK_trageEin(oDoc, aInhalt(i), aPlatzhalter(i)
next
End Sub
Code: Alles auswählen
Sub AB_FK_trageEin(oDoc as object, sNeuTxt as string, sPlatzhalter as string)
oSuche = oDoc.createReplaceDescriptor()
with oSuche
.setSearchString(sPlatzhalter)
.setReplaceString(sNeuTxt)
end with
oDoc.replaceAll(oSuche)
End Sub
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Windows XP Professional SP3 x86
Re: Writer Dokument Bearbeiten und Texte einfügen?
Aloha
Das ist auch eine Möglichkeit, ersetzt Dir aber alle Vorkommen, ob nun relevante Felder oder nicht.
Zudem bietet sich z.B. nicht die einfache Möglichkeit, z.B. Platzhalter für Bilder zu definieren.
Das ist auch eine Möglichkeit, ersetzt Dir aber alle Vorkommen, ob nun relevante Felder oder nicht.
Zudem bietet sich z.B. nicht die einfache Möglichkeit, z.B. Platzhalter für Bilder zu definieren.
Re: Writer Dokument Bearbeiten und Texte einfügen?
Platzhalter einfügen ist ja kein Problem. Aber wie spreche ich diese an und ersetze Sie?
Speziell bei Grafiken?
Speziell bei Grafiken?
OpenOffice 3.3 & postgresql-sdbc-driver 0.7.6b
Windows XP Professional SP3 x86
Windows XP Professional SP3 x86
Re: Writer Dokument Bearbeiten und Texte einfügen?
Aloha
Code: Alles auswählen
enumTextFields = thisComponent.TextFields.createEnumeration
Do While enumTextFields.hasMoreElements
thisTextField = enumTextFields.NextElement
If thisTextField.supportsService("com.sun.star.text.textfield.JumpEdit") Then
'REM Platzhalter gefunden
End If
Loop
Loop