Seite 1 von 1

[gelöst] Standardeinstellung für Spaltenbreite in Tabellendatenansicht dauerhaft ändern

Verfasst: So 24. Mär 2024, 17:15
von Anodos
Hallo Leute,

Beim Erstellen von neuen Tabellen innerhalb einer Datenbank stört mich die Standardeinstellung für die Spaltenbreite in der Tabellendatenansicht, die nur 2,27 cm beträgt. Es ist sehr lästig, bei sämtlichen Spalten (bzw. bei jeder einzelnen Spalte) zunächst das Häkchen „Automatisch“ entfernen und dann den gewünschten Wert einzugeben zu müssen, um die Spaltenbreite auf ein mir angenehmes Maß zu verbreitern. Habe ich nämlich eine Tabelle mit mehreren Hundert Datensätzen paßt sich die Spaltenbreite via Doppelklick am rechten Spaltenrand nur auf die auf dieser Seite sichtbaren Datenfelder an, nicht aber auf alle Datenfelder, die zu dieser Spalte gehören. Da ich die Datensätze (bzw. Tabellen) nur für Serienbriefe und nicht zum Ausdrucken benötige, spielte eine (leicht) übergroße Standardbreite der Spalten keine Rolle, ich hätte aber auf Anhieb eine gute Übersicht, ohne jedesmal händisch sämtliche Spaltenbreiten ändern zu müssen.

Es wundert mich, daß in den Optionen lediglich die Verbindungen sowie registrierten Datenbanken auftauchen, nirgends aber Standardeinstellungen wie z. B. für die Spaltenbreite etc. editiert werden können. Habe ich da etwas übersehen? Eine (längere) Googe-Suche half mir bei meinem Problem nicht weiter, sondern erbrachte nur „Treffer“, die mit meinem Problem kaum bis gar nichts zu tun haben.

Grüße
Ransom

Re: Standardeinstellung für Spaltenbreite in Tabellendatenansicht dauerhaft ändern

Verfasst: So 24. Mär 2024, 19:47
von RobertG
Die Breite der Spalten in Tabellen bleibt doch gespeichert, oder ist das bei Dir nicht der Fall. Da ziehe ich dann einfach nur die Spalten auf die jeweils gewünschte Breite. Sobald ich das mache ist die automatische Breite nicht mehr aktiv.

Das die automatische Spaltenbreite 2,27 cm beträgt stimmt bei mir überhaupt nicht. Die scheint mir eher davon abhängig zu sein, wie viel Platz die Spaltenüberschrift beansprucht. Stelle ich das Feld "ID" auf automatisch, so ist die Breite hier unter 1 cm. Daneben habe ich ein Feld "Rechnung_ID" stelle ich das auf automatisch, so springt das Feld auf über 3 cm. Der Leerraum links und rechts von der Bezeichnung bei beiden Feldern ist gleich groß. Der Automatikwert ist also kein Standardwert, der irgendwo eingestellt werden könnte.

In Abfragen funktioniert das nicht. Die übernehmen, wenn sie die Tabellenstruktur ihrer Datengrundlage durchschauen, die Formatierung der Tabellen.

Re: Standardeinstellung für Spaltenbreite in Tabellendatenansicht dauerhaft ändern

Verfasst: So 24. Mär 2024, 23:26
von Anodos
RobertG hat geschrieben:
So 24. Mär 2024, 19:47
Die Breite der Spalten in Tabellen bleibt doch gespeichert, oder ist das bei Dir nicht der Fall. Da ziehe ich dann einfach nur die Spalten auf die jeweils gewünschte Breite. Sobald ich das mache ist die automatische Breite nicht mehr aktiv.
Doch, die Breite meiner Spalten bleibt gespeichert, nur ist ja mein Problem, die gewünschte Breite aufwendig bei jeder einzelnen Spalte erst einmal herzustellen.
RobertG hat geschrieben:
So 24. Mär 2024, 19:47
Das die automatische Spaltenbreite 2,27 cm beträgt stimmt bei mir überhaupt nicht. Die scheint mir eher davon abhängig zu sein, wie viel Platz die Spaltenüberschrift beansprucht.
Ich habe einmal die Spaltenüberschrift einer Spalte extra übertrieben verlängert. Formatiere ich dann die Spaltenbreite, ist zunächst kein Wert zu sehen, nur das Häkchen für „Automatisch“, entferne ich dieses Häkchen, taucht der Wert 2,27 cm auf.

Re: Standardeinstellung für Spaltenbreite in Tabellendatenansicht dauerhaft ändern

Verfasst: Mo 25. Mär 2024, 19:13
von RobertG
Wenn Du "Automatisch" bei der Spaltenbreite hast, dann passt sich die Breite dem Feldtitel an. Klickst Du "Automatisch" weg, dann sucht sich eben Base einen Standardwert. Und der liegt dann bei 2,27 cm, was bei vorher breiteren Feldern dazu führt, dass sie jetzt manuell schmaler eingestellt werden. Der Wert ist übrigens nahezu identisch mit dem von Calc (2,26 cm). Und auch den kannst Du nicht in den normalen Einstellungen ändern. Auch in den Experteneinstellungen geht das nicht.

Also: Spalten händisch auf die gewünschte Breite ziehen und gut ist.

Re: Standardeinstellung für Spaltenbreite in Tabellendatenansicht dauerhaft ändern

Verfasst: Mo 25. Mär 2024, 19:44
von Anodos
RobertG hat geschrieben:
Mo 25. Mär 2024, 19:13
… Und auch den kannst Du nicht in den normalen Einstellungen ändern. Auch in den Experteneinstellungen geht das nicht.
Das ist schade, aber damit ist zumindest meine Ausgangsfrage gelöst.

Was mich ebenfalls (mittlerweile) wundert, ist, daß manuell eingestellte Spaltenbreiten bei einem Neustart von Windows wieder verschwunden sind – allerdings passiert das nur mit der 64-bit-Version von LO Base. Bearbeite ich die Tabelle(n) mit der 32-bit-Version von LO Base (oder auch OO Base), dann bleiben die eingestellten Spaltenbreiten auch nach einem Neustart von Windows erhalten. Wenn ich solch eine odb-Datei jemandem weitergebe, der nur die 64-bit-Version von LO Base (incl. JRE-64) auf seinem System installiert hat, dann findet dieser auch wieder nur die Tabelle mit den zuerst vorhandenen (und viel zu schmalen) Spaltenbreiten vor (gerade eben in einer VM ausprobiert). Das ist nicht nur schade, sondern richtig ärgerlich.

Re: [gelöst] Standardeinstellung für Spaltenbreite in Tabellendatenansicht dauerhaft ändern

Verfasst: Di 26. Mär 2024, 11:29
von RobertG
Das für saubere Eingaben gedachte Modul ist nun einmal ein Formular, nicht die Tabelle. Ich habe auch schon hin und wieder den Verlust von Formatierungen bei Tabellen aus unerfindlichen Gründen gehabt. Fällt mir besonders bei Feldern auf, die so etwas wie Währungen oder Prozentsätze anzeigen sollen. Da muss irgendetwas beim Packen der Datei zum Abschluss schief gehen, denn diese Einstellungen sind direkt in der content.xml enthalten. Bei Formularen ist das anders. Das sind vom Prinzip her komplette Writer-Dateien, die in der Base-Datei stecken. Da ist es mir noch nie passiert, dass eine Feldformatierung einfach so verloren ging.

Re: [gelöst] Standardeinstellung für Spaltenbreite in Tabellendatenansicht dauerhaft ändern

Verfasst: Di 26. Mär 2024, 17:25
von F3K Total
Moin,
gerade unter LO/Windows10 getestet. Mit dem folgenden Makro werden alle Spalten in allen Tabellen einer .odb-Datei mit eingebetteter HSQL Datenbank auf eine Breite von 3,00 cm eingestellt.

Code: Alles auswählen

Sub Define_Columns_Width
    if not Thisdatabasedocument.currentController.isconnected then Thisdatabasedocument.currentController.connect
    oConnection = Thisdatabasedocument.currentController.activeConnection
    oTables = oConnection.Tables
    For i = 0 to oTables.count -1
        oTable = oTables(i)
        oColumns = oTable.Columns
        for k = 0 to oColumns.count - 1
            oColumn = oColumns(k)
            oColumn.width = 300 'Spaltenbreite 3,00 cm
        next k
    next i
    ThisDatabasedocument.store
End Sub
Diese Breite steht auch nach erneutem Öffnen zur Verfügung.
Natürlich kann man jede einzelne Spalte auch nach ihrem Namen, Datentyp oder z.B. bei VARCHAR nach deren max. Länge ansprechen und die Spaltenbreite individuell einstellen.

Gruß R

Re: [gelöst] Standardeinstellung für Spaltenbreite in Tabellendatenansicht dauerhaft ändern

Verfasst: Do 28. Mär 2024, 14:05
von Anodos
RobertG hat geschrieben:
Di 26. Mär 2024, 11:29
Ich habe auch schon hin und wieder den Verlust von Formatierungen bei Tabellen aus unerfindlichen Gründen gehabt.
Genau das ist der Punkt. Es ist nicht nachvollziehbar, nach welchen Kriterien LO Base Formatierungen bei Tabellen erhält. Ich habe aber mittlerweile doch wieder einen Weg gefunden: Man darf nur und ausschließlich mit LO Base (x32) die Tabellenbreiten bearbeiten, um diese dauerhaft zu erhalten, und sämtliche Tabellen einer Datenbank müssen in einem Rutsch formatiert werden. Dann bleiben die Tabellenbreiten sogar erhalten, wenn die Datenbank mit LO Base (x64) oder OO Base geöffnet wird.
F3K Total hat geschrieben:
Di 26. Mär 2024, 17:25
Natürlich kann man jede einzelne Spalte auch nach ihrem Namen, Datentyp oder z.B. bei VARCHAR nach deren max. Länge ansprechen und die Spaltenbreite individuell einstellen.
Meinen herzlichen Dank. Dein Makro hat wunderbar funktioniert, auch nachdem ich den Wert auf „600“ bzw. „6,00 cm“ geändert hatte. Wenn es Dir nicht zuviel Umstände bereitet: Wie sähe denn solch ein Makro mit vordefinierten Spaltennamen und individuellen Spaltenbreiten aus, z. B. Name (5 cm), Vorname (4 cm) PLZ (1,5 cm)? Aus der Struktur, denke ich, könnte ich mir dann ein auf meine Bedürfnisse zugeschnittenens Makro (mit weiteren Spaltennamen und Spaltenbreiten) erstellen, das die immer wieder gleichen Adreßdatenbanken generierte.

Grüße
Anodos

Re: [gelöst] Standardeinstellung für Spaltenbreite in Tabellendatenansicht dauerhaft ändern

Verfasst: Do 28. Mär 2024, 17:10
von F3K Total
Anodos hat geschrieben:
Do 28. Mär 2024, 14:05
Wie sähe denn solch ein Makro mit vordefinierten Spaltennamen und individuellen Spaltenbreiten aus ...
Bitteschön:

Code: Alles auswählen

Sub Define_Columns_Width_individual
aColumns = Array(Array("Name_Spalte1",400),Array("Name_Spalte2",300),Array("Name_Spalte3",500),Array("Name_Spalte4",600),Array("Name_Spalte5",700))
'aColumns = Array(Array("ID",100),Array("Nachname",500),Array("Vorname",500),Array("Anrede",150),Array("Strasse",700),Array("PLZ",200),Array("Ort",200))
if not Thisdatabasedocument.currentController.isconnected then Thisdatabasedocument.currentController.connect
oConnection = Thisdatabasedocument.currentController.activeConnection
oTables = oConnection.Tables
For i = 0 to oTables.count -1
   oTable = oTables(i)
   oColumns = oTable.Columns
   for k = 0 to oColumns.count - 1
      oColumn = oColumns(k)
      for J = 0 to ubound(aColumns)
      if aColumns(j)(0) = oColumn.Name then
          oColumn.width = aColumns(j)(1) 'Spaltenbreite
      endif
      next j
   next k
   next i
ThisDatabasedocument.store
print "erledigt"
End Sub
Gruß R

Re: [gelöst] Standardeinstellung für Spaltenbreite in Tabellendatenansicht dauerhaft ändern

Verfasst: Sa 30. Mär 2024, 00:11
von Anodos
F3K Total hat geschrieben:
Do 28. Mär 2024, 17:10
Bitteschön:
Dankeschön!

Es hat zwar ein paar Versuche gebraucht, bis ich gemerkt habe, daß die erste Zeile „aColumns“ lediglich die allgemeine Nomenklatur für eine Tabelle mit vordefinierten Spaltennamen und individuellen Spaltenbreiten darstellt (und ich diese weglassen muß) und vielmehr die zweite Zeile „'aColumns“ (aber ohne „'“) verwenden und an meine Bedürfnisse anpassen muß. Dann aber hat’s prima geklappt und erspart mir nun künftig eine Menge „Handarbeit“. Nochmals: vielen herzlichen Dank!

Grüße
Anodos