[Writer] Textmarken in einer Tabelle beschreiben

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

tdtech05
Beiträge: 4
Registriert: Fr, 24.02.2006 12:20
Wohnort: Herford

[Writer] Textmarken in einer Tabelle beschreiben

Beitrag von tdtech05 »

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
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

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
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
tdtech05
Beiträge: 4
Registriert: Fr, 24.02.2006 12:20
Wohnort: Herford

Beitrag von tdtech05 »

Danke für den Tipp, werd ich mir angucken! Hoffe ich kann das nachvollziehen...

Eigentlich könnte ich die Tabellen-Felder ja auch direkt ansprechen/anspringen. Kann mir jemand verraten wie man das macht? :oops:
tdtech05
Beiträge: 4
Registriert: Fr, 24.02.2006 12:20
Wohnort: Herford

Beitrag von tdtech05 »

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?!

:evil: :oops:
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey tdtech05,
Bricht schon in der ersten Zeile mit einem runtime-error ab.
Hmm, hast du denn überhaupt eine Bookmark (Tetmarke) im Dokument mit Namen "Name"? Und wie ist "oDoc" definiert?

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 :D
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
tdtech05
Beiträge: 4
Registriert: Fr, 24.02.2006 12:20
Wohnort: Herford

Beitrag von tdtech05 »

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
Antworten