Writer - Querverweis auf Überschriften

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Writer - Querverweis auf Überschriften

Re: Writer - Querverweis auf Überschriften

von Opa Eckhard » So, 08.12.2019 17:34

Danke für den Hinweis. Ich werde also meine Frage noch einmal im Forum "Makros ..." einstellen und hier aber als erledigt kennzeichnen.

Re: Writer - Querverweis auf Überschriften

von quotsi » Sa, 23.11.2019 17:34

Warum im Forum "writer" ???
Warum nicht im Forum "Makros und allgemeine Programmierung" ?

Writer - Querverweis auf Überschriften

von Opa Eckhard » Sa, 23.11.2019 10:00

Hallo Freunde/Freundinnen,

Arbeite mit LibreOffice Version: 6.0.7.3 unter macOS Catalina Version 10.15.1 im Writer-Modul und Base-Modul. Mittels Makro gelingt es mir aus den Daten einer Datenbank den Text eines umfangreicheren Writer-Dokumentes zu generieren. Der Text wird mit benutzerdefinierten Formatvorlagen formatiert (Überschriften in zwei Ebenen, Textkörper und Textkörper mit Einzug). Der Textkörper enthält Worte die als als Querverweis auf eine Überschrift stehen. Ein Inhaltsverzeichnis ist nicht Bestandteil des Dokumentes.

Manuell gelingt das Einfügen des Querverweises auf eine Überschrift ohne Probleme. Der Viewcursor führt beim Anklicken des Verweistextes den erwarteten Sprung zur ausgewählten Überschrift sichtbar aus.

Da im Dokument aber mehr Querverweise der beschriebenen Art anzubringen sind, als manuell in vertretbarer Zeit zu bewältigen ist, will ich auch diesen Teil meiner Arbeit ein Makro erledigen lassen.

Andrew Pitonyak beschreibt in "BASIC-Makros für OpenOffice und LibreOffice" mit Listing 405. wie ein GetReference-Feld einzufügen ist. Mir gelingt dies in der Form

oField = oDoc.createInstance("com.sun.star.text.textfield.GetReference")
oField.ReferenceFieldPart = com.sun.star.text.ReferenceFieldPart.TEXT
oField.ReferenceFieldSource = com.sun.star.text.ReferenceFieldSource.BOOKMARK
oField.SequenceNumber = oReferencedField.SequenceValue
oField.SourceName = sSeqName
oText.insertTextContent(oCurs, oField, True)

wenn ich für SequenceNumber und SourceName auslesbare Werte manuell eingefügter Querverweise benutze, um mein Makro zu testen. Woher nehme ich aber für alle anderen Querverweise die entsprechenden Werte?

Die als Sprungziel vorhandenen Überschriften erreiche ich zwar über oDoc.getLinks() kann aber die dort vermuteten Werte nicht finden.

Wer kann mir helfen? Danke.

Nach oben