von Toxitom » Do, 17.10.2019 20:25
Hei wolli,
also, zumindest den ersten Teil kann ich Dir beantworten. Leider ist das gar nicht soooo toll - möglicherweise gibt es auch ne einfacherern Weg.
Aber funktionieren tut:
Du kannst deine Tabelle identifizieren. Die Tabelle hat immer einen Namen. Soweit so gut.
Die Position der Tabelle ist hingegen leider nicht so einfach zu finden. Per View-Cursor geht das aber. Du erzeugt den ViewCursor, positioniert ihn am Anfang des Dokumentes, und gehst dann immer eine Zeile nach unten.
Jetzt prüfst Du jedesmal, on der ViewCursor in einer Tabelle ist und ob der Name der Tabelle Deiner Wunschtabelle entspricht. Wenn ja, gehst Du wieder einen Zeile zurück - jetzt bist Du genau oberhalb der Tabelle. Dort kannst Du jetzt den beliebigen Text eingeben (und die Tabelle löschen;))
Code: Alles auswählen
dim oDocument as object, _
oTabelle as object, _
intTabCount as integer, _
oViewCursor as object
oDocument = ThisComponent
'letzte Tabelle im Dokument identifizieren
intTabCount = oDocument.GetTextTables().getCount()
if intTabCount = 0 then
exit sub
else
oTabelle = oDocument.TextTables.getByIndex(intTabCount - 1)
end if
oAnk = oTabelle.anchor.start
'ViewCursor setzen
oVC = oDocument.GetCurrentController().GetViewCursor()
oVC.jumpToFirstPage() 'erste Seite
oVC.jumpToStartOfPage() 'erstes Zeichen
REM Schleife zeile für Zeile
Do while oVC.goDown(1, false)
if NOT isEmpty(oVC.textTable) then 'Cursor in einer Tabelle
if oVC.textTable.name = oTabelle.Name then 'Tabelle hat den passenden Namen
oVC.goUp(1, false) 'wieder eine Zeile zurück
oVC.string = "hallo" 'was reinschreiben - steht jetzt genau vor der Tabelle
exit Do
end if
end if
loop
'Tabelle löschen
'oDocument.Text.removeTextContent(oTabelle)
'Text einfügen an der Stelle des ViewCursors - der ist leider nicht bei der Tabelle!
'oDocument.GetText().insertString(oViewCursor, "hullo", False)
end sub
Vielleicht hilft es Dir erst einmal:)
Viele Grüße
Tom
Hei wolli,
also, zumindest den ersten Teil kann ich Dir beantworten. Leider ist das gar nicht soooo toll - möglicherweise gibt es auch ne einfacherern Weg.
Aber funktionieren tut:
Du kannst deine Tabelle identifizieren. Die Tabelle hat immer einen Namen. Soweit so gut.
Die Position der Tabelle ist hingegen leider nicht so einfach zu finden. Per View-Cursor geht das aber. Du erzeugt den ViewCursor, positioniert ihn am Anfang des Dokumentes, und gehst dann immer eine Zeile nach unten.
Jetzt prüfst Du jedesmal, on der ViewCursor in einer Tabelle ist und ob der Name der Tabelle Deiner Wunschtabelle entspricht. Wenn ja, gehst Du wieder einen Zeile zurück - jetzt bist Du genau oberhalb der Tabelle. Dort kannst Du jetzt den beliebigen Text eingeben (und die Tabelle löschen;))
[code]dim oDocument as object, _
oTabelle as object, _
intTabCount as integer, _
oViewCursor as object
oDocument = ThisComponent
'letzte Tabelle im Dokument identifizieren
intTabCount = oDocument.GetTextTables().getCount()
if intTabCount = 0 then
exit sub
else
oTabelle = oDocument.TextTables.getByIndex(intTabCount - 1)
end if
oAnk = oTabelle.anchor.start
'ViewCursor setzen
oVC = oDocument.GetCurrentController().GetViewCursor()
oVC.jumpToFirstPage() 'erste Seite
oVC.jumpToStartOfPage() 'erstes Zeichen
REM Schleife zeile für Zeile
Do while oVC.goDown(1, false)
if NOT isEmpty(oVC.textTable) then 'Cursor in einer Tabelle
if oVC.textTable.name = oTabelle.Name then 'Tabelle hat den passenden Namen
oVC.goUp(1, false) 'wieder eine Zeile zurück
oVC.string = "hallo" 'was reinschreiben - steht jetzt genau vor der Tabelle
exit Do
end if
end if
loop
'Tabelle löschen
'oDocument.Text.removeTextContent(oTabelle)
'Text einfügen an der Stelle des ViewCursors - der ist leider nicht bei der Tabelle!
'oDocument.GetText().insertString(oViewCursor, "hullo", False)
end sub
[/code]
Vielleicht hilft es Dir erst einmal:)
Viele Grüße
Tom