Seite 1 von 1
ODT per Basic generieren und Kopfzeile dyn. setzen
Verfasst: Do, 06.03.2008 15:11
von khsc7
Moin,
ich generiere aus ner Text-Liste ein ODT .
Jetzt möchte ich den 1. und letzten Eintrag (1. Spalte) der jew. Seite - ähnlich einem Telephon-Buch - auch in der Kopfzeile haben.
wie kann man sowas lösen?
Danke!
Hermann
Re: ODT per Basic generieren und Kopfzeile dyn. setzen
Verfasst: Do, 06.03.2008 16:16
von gschuckar
Hallo Herrmann,
versuch mal:
Code: Alles auswählen
REM ***** BASIC *****
option explicit
Sub Kopfzeile
dim oDoc as Object ' aktuelles Dokument
Dim oSVorlagen as Object ' Alle Vorlagen
dim oSVorlage as Object ' eine Vorlage
Dim oCursor as Object ' der Cursor
oDoc = thisComponent
oSVorlagen = oDoc.getStyleFamilies.getByName("PageStyles")
'vorlagenobject, auf dem die Seite aufgebaut wird
oSVorlage = oSVorlagen.getByName("Standard") ' <--- Standardvorlage
' Kopfzeile einschalten
oSVorlage.HeaderIsOn=True
oCursor =oSVorlage.headerText.Text.CreateTextCursor()
' den Text -> testTexten <- in die Kopfzeile schreiben
oSVorlage.HeaderText.Text.insertString(oCursor,"testTexten",False)
End Sub
Dabei gehe ich davon aus, das Dein odt auf einer Standardvorlage basiert. Ansonsten must Du den Code an der Stelle anpassen.
Der Text "testTexten" kommt aus Deiner Liste. Hilfts weiter?
Gruß Gerd
Re: ODT per Basic generieren und Kopfzeile dyn. setzen
Verfasst: Fr, 07.03.2008 10:41
von khsc7
Hallo Gerd,
Das scheint mir die Kopfzeile fürs ganze ODT zu setzen
ich brauchs aber abhängig von den Daten auf der akt. Seite, also dynamisch
das könnte ggf. mit Feldbefehlen gehen -
ich weiß nur nicht wie.
danke!
hermann
Re: ODT per Basic generieren und Kopfzeile dyn. setzen
Verfasst: Fr, 07.03.2008 11:52
von Stephan
Das scheint mir die Kopfzeile fürs ganze ODT zu setzen
Wie Gerd bereits sagte setzt das die Kopfzeile für die Seitenvorlage "Standard" - denn Kopfzeilen lassen sich nun mal nur für Seitenvorlagen festlegen, das ist nämlich deren Sinn.
Wenn jede Seite eine völlig unterschiedlich Kopfzeile haben soll, mußt Du alle SEiten durch harte SEitenumbrüche abtrennen und für jede SEite eine eigene Seitenvorlage verwenden - sinniger wäre es ggf. erst garkeine Kopfzeilen zu verwenden und die Werte oben auf der Seite (dort wo sonst die Kopfzeile ist) einzutragen.
Gruß
Stephan
Re: ODT per Basic generieren und Kopfzeile dyn. setzen
Verfasst: Fr, 07.03.2008 11:59
von gschuckar
Hallo Herrmann,
das geht auch, nur brauchst Du dann für jede Seite eine andere Vorlage. So verstehe ich den Hilfetext von Writer
--
Sie können in Ihrem Dokument auf unterschiedlichen Seiten unterschiedliche Kopf- und Fußzeilen verwenden, vorausgesetzt die Seiten verwenden unterschiedliche Seitenvorlagen.
--
Ich habe noch nicht so viel mit writer hergestellt. deswegen geht mein wissen da so ziemlich gegen null. Aber ein Denkansatz wäre:
Die Standard Vorlage sooft kopieren, wie sie benötigt wird. Mit Namen heisen diese Vorlagen dann z.Bsp. Standard1 bis Standardx.
Dann mittels einer Schleife im oben gezeigten Codefragment die Vorlage benutzen. So hat dann die Seite 1 die Vorlage Standard1 and so on.
Die Kopfzeile dann wie angegeben beschreiben. Ist vielleich ein bischen aufwendig, aber sollte so gehen.
Gruß
Gerd
Re: ODT per Basic generieren und Kopfzeile dyn. setzen
Verfasst: Fr, 07.03.2008 13:15
von khsc7
Hallo miteinander,
so wie ich das sehe, müßte ich bei bewiden Ansätzen vorher wissen, wo die Seitenumbrüche liegen.
dies ist aber von der Länge der Daten und der daraus entstehenden Absätze abhängig.
ich hab mir das so ähnlich wie bei den Seiten-Numerierungen vorgestellt.
ansonsten müssen wir das anschließend von Hand ergänzen.
-> Textrahmen einfügen - an der Seite verankern - in den Bereich der Kopfzeile schieben
Danke!
Hermann
Re: ODT per Basic generieren und Kopfzeile dyn. setzen
Verfasst: Fr, 07.03.2008 19:23
von Stephan
so wie ich das sehe, müßte ich bei bewiden Ansätzen vorher wissen, wo die Seitenumbrüche liegen.
Ja, aber die wären ggf. auch rauszukriegen. Es reicht aber die Variante mit den Seitenvorlagen zu nehmen und die als aufeinanderfolgende Folgevorlagen zu definieren dann braucht es keine manuellen Seitenumbrüche.
Gruß
Stephan