Seite 1 von 1

Probleme mit Texttabelle (.Width)

Verfasst: So, 12.05.2019 12:44
von Stephan
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

Re: Probleme mit Texttabelle (.Width)

Verfasst: So, 12.05.2019 13:36
von F3K Total
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

Re: Probleme mit Texttabelle (.Width)

Verfasst: So, 12.05.2019 14:09
von Toxitom
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)

Verfasst: So, 12.05.2019 17:42
von Stephan
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)

Verfasst: So, 12.05.2019 18:10
von 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!
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)

Verfasst: Mi, 28.08.2019 13:43
von Stephan
Könntest du mal den Code posten, der dein XML File öffnet und vorbereitet?
Ich habe keinen derartigen Code, weil ich keinen brauche, soweit es das Thema des Threads hier betrifft, denn das Dokument wird normal per Hand geöffnet.

Dokumente allgemein lassen sich so per Code öffnen:
http://www.dannenhoefer.de/faqstarbasic ... ffnen.html



Gruß
Stephan

Re: Probleme mit Texttabelle (.Width)

Verfasst: Mi, 28.08.2019 17:11
von Karolus
@Stephan
LenDierce ist ein Spam(bot?) siehe auch https://de.openoffice.info/viewtopic.ph ... 49#p284649