Hallo,
ich möchte gerne in einem OO Writer Dokument über ein Makro Textmarken (Bookmarks) in einer Tabelle beschreiben.
Bei "normalen" Texmarken hab ich das schon gemacht, das funktioniert wunderbar:
oDoc.getBookmarks().getByName("Firma").getAnchor.setString(Firma)
Aber wenn sich die Textmarken in einer Tabelle befinden funktioniert das so nicht. Ich denke man muß sie wahrscheinlich anders ansprechen um sie beschreiben zu können, weil sie eben in einer Tabelle stehen?!
Wäre sehr nett, wenn mir jemand die Syntax dafür verraten könnte!
Grüße
[Writer] Textmarken in einer Tabelle beschreiben
Moderator: Moderatoren
Hey tdtech05,
lade dir die Rechnungsvorlag von -> hier herunter. Dort wird eine Bookmark in einer Tabele angesprochen. Da kannst du dir den Code ansehn.
Viele Grüße
Thomas
lade dir die Rechnungsvorlag von -> hier herunter. Dort wird eine Bookmark in einer Tabele angesprochen. Da kannst du dir den Code ansehn.
Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hmm, also irgendwie "funktioniert" das bei mir nicht mit dem Beschreiben der Bookmarks in einer Tabelle!? Hab folgendes probiert:
oBookmark=oDoc.Bookmarks.getByName(Name)
oCell=oDoc.TextTables(0).getCellByIndex(A1)
cursor=oCell.createTextCursorByRange(oBookmark.anchor)
If cursor.isEndOfParagraph() then
cursor.string=" "
else
cursor.goright(1, false)
end if
cursor.goToEndOfParagraph(true)
Cursor.string = Name
Bricht schon in der ersten Zeile mit einem runtime-error ab. Der Name in Hochkommata bringt leider auch keine Besserung. ( getByName("Name") )
Hat jemand noch nen Lösungvorschlag bzw. kann mir das viell. jemand erklären, wie ich ich Tabellen Felder/Zellen anspringen und beschreiben kann?!

oBookmark=oDoc.Bookmarks.getByName(Name)
oCell=oDoc.TextTables(0).getCellByIndex(A1)
cursor=oCell.createTextCursorByRange(oBookmark.anchor)
If cursor.isEndOfParagraph() then
cursor.string=" "
else
cursor.goright(1, false)
end if
cursor.goToEndOfParagraph(true)
Cursor.string = Name
Bricht schon in der ersten Zeile mit einem runtime-error ab. Der Name in Hochkommata bringt leider auch keine Besserung. ( getByName("Name") )
Hat jemand noch nen Lösungvorschlag bzw. kann mir das viell. jemand erklären, wie ich ich Tabellen Felder/Zellen anspringen und beschreiben kann?!


Hey tdtech05,
Also, wenn es dir nur darum geht, in die Zelle A1 der Tabelle 1 (index 0) des Dokumentes einen String zu schreiben, so reicht folgender Code:
Viele Grüße
Thomas
Hmm, hast du denn überhaupt eine Bookmark (Tetmarke) im Dokument mit Namen "Name"? Und wie ist "oDoc" definiert?Bricht schon in der ersten Zeile mit einem runtime-error ab.
Also, wenn es dir nur darum geht, in die Zelle A1 der Tabelle 1 (index 0) des Dokumentes einen String zu schreiben, so reicht folgender Code:
Code: Alles auswählen
sub ZelleSchreiben
thisComponent.TextTables(0).getCellByName("A1").setString("Hallo!")
end sub
Viele Grüße
Thomas

Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo,
erstmal danke für deine schnelle Antwort.
"Name" war jetzt nur ein Bsp, ist natürlich definiert. Macht halt nur Probleme wenn die Textmarke/Bookmark in einer Tabelle steht?!
oDoch ist einfach das aktuelle Dokument:
Dim oDoc As Object
oDoc = ThisComponent
Hmm, naja dann probiere ich es erstmal über die Tabellenfelder, schöner fände ich dennoch das mit mit den Textmarken in der Tabelle (noch bessere Positionierung).
Vielen Dank nochmal & schöne Grüße,
Carsten
erstmal danke für deine schnelle Antwort.
"Name" war jetzt nur ein Bsp, ist natürlich definiert. Macht halt nur Probleme wenn die Textmarke/Bookmark in einer Tabelle steht?!
oDoch ist einfach das aktuelle Dokument:
Dim oDoc As Object
oDoc = ThisComponent
Hmm, naja dann probiere ich es erstmal über die Tabellenfelder, schöner fände ich dennoch das mit mit den Textmarken in der Tabelle (noch bessere Positionierung).
Vielen Dank nochmal & schöne Grüße,
Carsten