
synchronisation Spaltenbreiten über mehrere Tabellen
-
vlad_tepesch
- Beiträge: 4
- Registriert: Do 8. Okt 2026, 17:14
synchronisation Spaltenbreiten über mehrere Tabellen
Gibt es eine Möglichkeit mehrere (an sich unabhängige) Tabellen so konfigurieren, dass die Spaltenbreiten bei allen Tabellen gleich sind und bei Änderung auch synchron gehalten werden?
zB angenommen, ich hab mehrere Tabellen mit Datenreihen - es sieht hässlich aus, wenn bei jeder die spalten anders breit sind, vor allem, wenn sie im Text nicht weit voneinander Entfernt gesetzt sind.
zB angenommen, ich hab mehrere Tabellen mit Datenreihen - es sieht hässlich aus, wenn bei jeder die spalten anders breit sind, vor allem, wenn sie im Text nicht weit voneinander Entfernt gesetzt sind.
Zuletzt geändert von vlad_tepesch am Mi 14. Okt 2026, 13:46, insgesamt 1-mal geändert.
Re: snchronisation Spaltenbreiten über mehrere Tabellen
Sollte doch funktionieren wenn du statt mehrerer Tabellen, alles in eine Tabelle packst, und für den Text dazwischen jeweils eine Tabellenzeile zu einer Zelle zusammenfasst?!
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)
-
vlad_tepesch
- Beiträge: 4
- Registriert: Do 8. Okt 2026, 17:14
Re: snchronisation Spaltenbreiten über mehrere Tabellen
das wäre aber schon ein ziemlich ekliger hack, da man ja vor der eigentlichen Tabelle leerzellen einbauen müsste, um die Einrückung der Tabelle auf mittig manuell zu bewerkstelligen
Und es scheitert spätestens dann, wenn man verschiedene Tabellentypen hat, die untereinander gleich sein sollen, aber zueinander inkompatibel sind.
Nebenbei: wie zur hölle bring man writer dazu, die Tabellenbeschriftung linksbündig am Tabellenrahmen auszurichten?
Er klatscht sie immer an den Zeilenanfang. Im Beispiel hab ich die Einzüge der Beschriftungen manuell angepasst
Und es scheitert spätestens dann, wenn man verschiedene Tabellentypen hat, die untereinander gleich sein sollen, aber zueinander inkompatibel sind.
Nebenbei: wie zur hölle bring man writer dazu, die Tabellenbeschriftung linksbündig am Tabellenrahmen auszurichten?
Er klatscht sie immer an den Zeilenanfang. Im Beispiel hab ich die Einzüge der Beschriftungen manuell angepasst
Re: snchronisation Spaltenbreiten über mehrere Tabellen
Hast du aber in deinem Eingangsbeitrag NICHT erwähnt!vlad_tepesch hat geschrieben: ↑Mi 14. Okt 2026, 10:01…
Und es scheitert spätestens dann, wenn man verschiedene Tabellentypen hat, die untereinander gleich sein sollen, aber zueinander inkompatibel sind.
Stelle eine Neue Frage im Unter-Bereich Makroprogrammierung und häng dort eine Beispiel.odt an.
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 8GB (64bit)
Re: snchronisation Spaltenbreiten über mehrere Tabellen
Moin,
wie Karolus bereits vorgeschlagen hat, sollte dieses Thema eigentlich im Bereich Makroprogrammierung behandelt werden, auch ich denke, dass es mit Bordmitteln nicht zu lösen ist.
Nun hat es mich interesssiert und ich habe einen Code geschrieben der:
Hier der Basiccode:
Viel Erfolg,
Gruß R
wie Karolus bereits vorgeschlagen hat, sollte dieses Thema eigentlich im Bereich Makroprogrammierung behandelt werden, auch ich denke, dass es mit Bordmitteln nicht zu lösen ist.
Nun hat es mich interesssiert und ich habe einen Code geschrieben der:
- Die erste Tabelle als "Mastertabelle" analysiert
- Die Breite, die Ausrichtung, die Spaltenanzahl und die Spaltenbreite der folgenden Tabellen mit der ersten Tabelle synchronisiert, gelöscht werden keine Spalten
- Die erste Tabellenüberschrift analysiert
- Die Ausrichtung dieser Überschrift auf die folgenden überträgt
Hier der Basiccode:
Code: Alles auswählen
Sub S_adjust_columns
oTextfieldsenum = ThisComponent.Textfields.CreateEnumeration
while oTextfieldsenum.hasmoreelements
oTextfield = oTextfieldsenum.nextelement
if oTextfield.CurrentPresentation = 1 and oTextfield.variableName = "Table" then 'erstes Tabellenbeschriftungsfeld
nParaadjust = oTextfield.Anchor.Paraadjust 'Ausrichtung erstes Tabellenschriftungsfeld auslesen
endif
wend
oTextfieldsenum = ThisComponent.Textfields.CreateEnumeration
while oTextfieldsenum.hasmoreelements
oTextfield = oTextfieldsenum.nextelement
if oTextfield.variableName = "Table" then
oTextfield.Anchor.Paraadjust = nParaadjust 'Ausrichtung erstes Beschriftungsfeld übertragen
endif
wend
oTexttables = ThisComponent.Texttables
oMasterTable = oTexttables(0) 'erste Tabelle
nOrient = oMastertable.HoriOrient 'Ausrichtung erste Tabelle
nWidth = oMasterTable.Width 'Breite erste Tabelle
nMasterColumnsCount = oMasterTable.columns.count 'Spaltenanzahl
aTableColumnSeparators = oMasterTable.TableColumnSeparators 'Spaltenbreiten erste Tabelle
for i = 1 to oTexttables.count - 1
oTable = oTexttables(i)
nColumnsCount = oTable.Columns.Count
if nColumnsCount < nMasterColumnsCount then
otable.columns.insertbyindex(nColumnsCount,nMasterColumnsCount-nColumnsCount) 'Spalten zufügen falls weniger als erste Tabelle
endif
otable.Width = nWidth 'Breite erste Tabelle zuordnen
oTable.HoriOrient = nOrient 'Ausrichtung erste Tabelle zuordnen
oTable.TableColumnSeparators = aTableColumnSeparators 'Spaltenbreiten erste Tabelle zuordnen
next i
End SubGruß R
- Dateianhänge
-
- Texttable_Column_Width.odt
- (21.39 KiB) 9-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO
