Probleme mit Texttabelle (.Width)

Antwort erstellen


Um automatische Eingaben zu unterbinden, musst du die nachfolgende Aufgabe lösen.

BBCode ist eingeschaltet
[img] ist ausgeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Probleme mit Texttabelle (.Width)

Re: Probleme mit Texttabelle (.Width)

von Stephan » So, 12.05.2019 18:10

die Tabellen-Breite einer Texttabelle lässt sich nicht eindeutig über den Wert .width auslesen. Die Breite gibt es nämlich eigentlich gar nicht, sie ist immer intern berechnet!
Letzteres stimmt, steht auch sinngemäß so in der IDL-Referenz.
Ersteres ist hingegen eine Art der Kuriosität, offensichtlich aus OOo-Zeiten, wo ich nicht weiß was das soll, entweder die Eigenschaft funktioniert oder man sollte sie weglassen.
Dann schaust Du Dir die die linken und rechten Ränder der Tabelle an (leftmargin, rightmargin) und daraus kannst Du dann die 100% (10000) Tabellebreite bestimmen. Und dann geht es weiter mit den TableSeperators... die kannst Du ja auslesen:) Daraus bastelste Dir dann die Breite der Spalte zusammen.
Danke. Ich hatte das schon befürchtet.


Gruß
Stephan

Re: Probleme mit Texttabelle (.Width)

von Stephan » So, 12.05.2019 17:42

Die Breite der ersten Spalte steckt also im Makro irgendwo drin, vielleicht hilft dir die Datei.
danke, aber leider nein, insofern das Makro auch <Tabellenobjekt>.Width nutzt und es also zum Fehler kommt wenn ich es auf meine Tabelle anwende.


Gruß
Stephan

Re: Probleme mit Texttabelle (.Width)

von Toxitom » So, 12.05.2019 14:09

Hallo Stephan,

die Tabellen-Breite einer Texttabelle lässt sich nicht eindeutig über den Wert .width auslesen. Die Breite gibt es nämlich eigentlich gar nicht, sie ist immer intern berechnet!

Die Beite einer Texttabelle wird immer auf den verfügbaren Platz ausgedehnt - also auf die Breite des Textbereiches der Seitenvorlage. Den musst Du herauslesen!

Dann schaust Du Dir die die linken und rechten Ränder der Tabelle an (leftmargin, rightmargin) und daraus kannst Du dann die 100% (10000) Tabellebreite bestimmen. Und dann geht es weiter mit den TableSeperators... die kannst Du ja auslesen:) Daraus bastelste Dir dann die Breite der Spalte zusammen.

Im Makro-Handbuch gibt´s ein Beispiel dafür.

Viel Spass
Tom

Re: Probleme mit Texttabelle (.Width)

von F3K Total » So, 12.05.2019 13:36

Hallo Stephan,
habe jetzt keine Zeit zu forschen, aber in angehängter Datei habe ich mich vor kurzem mit dem Thema "Texttables"auseinandergesetzt und es geschafft, eine Spalte, die die Seitenbreite auffüllt, anzuhängen und dabei die Breite der ursprünglichen Spalten beizubehalten.
Die Breite der ersten Spalte steckt also im Makro irgendwo drin, vielleicht hilft dir die Datei.

Gruß R
Dateianhänge
Tabellenspalte_zufuegen.odt
(12.29 KiB) 26-mal heruntergeladen

Probleme mit Texttabelle (.Width)

von Stephan » So, 12.05.2019 12:44

Hallo,

in einem bestehenden Textdokument (odt) möchte ich eigentlich nur die Breite der ersten Spalte der Texttabelle bestimmen in der sich aktuell der Cursor befindet.

Scheinbar ist die direkte Bestimmung dieser Spaltenbreiten garnicht so einfach, denn bisher finde ich nur den Weg sie so zu lesen:
https://forum.openoffice.org/en/forum/v ... mn#p213666

was dann einen Wert ergibt indem ich durch Umrechnung, unter Beachtung von .TableColumnRelativeSum die Breite der gewünschten Spalte bekomme WENN ich die Gesamtbreite der Tabelle kenne. Letztere sollte zu ermitteln sein mit:

<Tabellenobjekt>.Width

allein klappt das augenscheinlich nicht immer. Die angehängte Beispieldatei enthält eine Beispieltabelle (die ich aus einem bestehenden Dokument kopiert habe) und bei der:

Code: Alles auswählen

Sub Test()
	v_cur = ThisComponent.CurrentController.ViewCursor
	Msgbox v_cur.TextTable.Width
End Sub
den Wert 115596 liefert, der falsch ist.

Wenn ich geringfügige Veränderungen an den Tabellen Eigenschaften z.B. unter Register "Tabelle" Abstände-nach rechts vornehme. liefert das gleiche Makro problemlos den richtigen Wert für .Width, komischerweise selbst dann wenn ich erst den Wert geringfügig ändere, den Eigenschaftsdialog schließe, sofort den Eigenschaftsdialog wieder öffne und den ursprünglichen Wert wiederherstelle (geprüft mit z.B. -2,41 auf -2,36 gestellt und zurück auf -2,41).

Was ist da los?

Fehler beobachtet unter OO und LO.


Gruß
Stephan
Dateianhänge
Testdatei_Tabellenbreite.odt
(12.17 KiB) 39-mal heruntergeladen

Nach oben