TextTables und BorderLines

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: TextTables und BorderLines

gelöst, Danke

von chrdz » Mi, 12.07.2006 08:14

Hallo Thomas,

jetzt funktionierts endlich. Danke!

Mein Fehler war von vornherein, dass ich versucht habe die Tabelle vorzubereiten, anstatt sie nachträglich zu formatieren. Das heißt, dass ich die Tabelle erst mit vorgefertigten Rahmen darstellen wollte.

so sieht es jetzt aus:

Code: Alles auswählen

Table = oMyDoc.createInstance("com.sun.star.text.TextTable")
REM
Table.Initialize(2,1)
oMyDoc.Text.insertTextContent(Cursor, Table, False)
with oLinie
   .Color = rgb(0,0,0)
   .outerLineWidth = 0
   .LineDistance = 0
   .innerLineWidth = 0
end with
with oRahmen
   .TopLine = oLinie
   .BottomLine = oLinie
   .LeftLine = oLinie
   .RightLine = oLinie
   .VerticalLine = oLinie
   .HorizontalLine = oLinie
   .IsBottomLineValid = true
   .IsDistanceValid = true
   .IsHorizontalLineValid = true
   .IsLeftLineValid = true
   .IsRightLineValid = true
   .IsTopLineValid = true
   .IsVerticalLineValid = true
end with
table.TableBorder = oRahmen 
Cell = Table.getCellByPosition(0,0)
CellCursor = Cell.CreateTextCursor()
CellCursor.ParaStyleName = "Überschrift 3"
CellCursor.String = ResultSet1.getString(1)+" "+ResultSet1.getString(2)
Aber wie immer: Man lernt nie aus.

Grüße

Christian

von Toxitom » Di, 11.07.2006 17:33

Hey Christian,
Mit Table.BorderLine geht scheinbar auch nichts
na ja, so verkehrt war das gar nicht. Nur: BorderLine trifft nur auf die einzelne Zelle zu.
Eine Texttabelle unterstützt wie auch jede Zelle die Eigenschaften TableBorder, die die Umrahmung eines Zellbereiches regelt.
Beide Eigenschaften erwarten einen Struct (ein Objekt), einmal des Typs com.sun.star.table.BorderLine und einmal des Typs com.sun.star.table.TableBorder.
Um also deiner Tabelle eine Umrahmung zu geben, musst du dies zunächst definieren (Prinzip):

Code: Alles auswählen

 dim oLinie as new com.sun.star.table.BorderLine
with oLinie
   .Color = rgb(41, 191, 20)  'grün
   .outerLineWidth =50
end with
dim oRahmen as new com.sun.star.table.TableBorder
with oRahmen
   .TopLine = oLinie
   .BottonLine = oLinei
end with
table.TableBorder = oRahmen
Also, du brauchst zuerst ein Linienobjekt, hier hier Farbe "grün" und Breite 0,5 mm
Dann das Rahmenobjekt - mit Ober- und Unterlinie
Das weist du dann der Tabelle zu, erst dann fügst du sie in den Text ein.
Rahmen sind Fleissarbeit....

Gruss
Thomas

TextTables und BorderLines

von chrdz » Di, 11.07.2006 13:29

Hallo,

und wieder ein Problem. Ich habe in irgendeinem Thread schon etwas gelesen, das hat mir jedoch nicht wirklich geholfen. Daher meine Frage:

mit folgendem Code erzeuge ich eine einfache Tabelle in einem Writer Dokument und schreibe Text hinein:

Code: Alles auswählen

Table = oMyDoc.createInstance("com.sun.star.text.TextTable")
Table.Initialize(2,1)
oMyDoc.Text.insertTextContent(Cursor, Table, False)
Cell = Table.getCellByPosition(0,0)
CellCursor = Cell.CreateTextCursor()
CellCursor.ParaStyleName = "Überschrift 3"
CellCursor.String = ResultSet1.getString(1)+" "+ResultSet1.getString(2)
Standardmäßig scheint eine Umrandung gesetzt zu sein.

Mit Table.BorderLine geht scheinbar auch nichts. Ich weiß, dass es viele Wege zum Ziel gibt. Könnte mir jemand einen anderen aufzeigen?

Grüße

Christian

Nach oben