Tabelle in Dialogen?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

Tabelle in Dialogen?

Beitrag von Steffan »

Hallo zusammen,

gibt es eine Möglichkeit eine mehrspaltige Listbox in einem Dialog zu erstellen? Oder gibt es ein anderes Dialog-Kontrollfeld, dass diese Funktionalität realisiert? Das Tabellengrid-Element aus den Formularen steht ja bei Dialogen nicht zur Verfügung.

Danke im Vorraus für Eure Tips,
Steffan.
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Stefan,
gibt es eine Möglichkeit eine mehrspaltige Listbox in einem Dialog zu erstellen?
Wozu? Du kannst die Inhalte doch vorher zusammenfügen (als String) und hast dann nur noch eine einspaltige Listbox (mehrspaltige gibt es nicht). Reine Programmiertechnig ;-)

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

Beitrag von Steffan »

Hallo Thomas,
Wozu? Du kannst die Inhalte doch vorher zusammenfügen (als String) und hast dann nur noch eine einspaltige Listbox
Klar kann ich das. Allerdings habe ich dann aber das Problem, dass die spaltenweise Ausrichtung nicht mehr funktioniert, was ziemlich unschön ist. Ich habe versucht das Problem mit nebeneinanderliegenden einzelnen Listboxen ohne Rahmen zu lösen, die mittels Makro verknüpft wurden (Auswahländerung der einen Listbox in die andere übernehmen), allerdings habe ich dann Scrollbalken, die ich nicht ausschalten kann. Irgendwie auch ein unbefriedigendes Ergebnis.

Steffan
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Steffan,
Allerdings habe ich dann aber das Problem, dass die spaltenweise Ausrichtung nicht mehr funktioniert, was ziemlich unschön ist.
Doch. Das musst du nur programmieren ;-) So schwer ist das nicht, als erstes verwendest du eine nicht-proportionale Schrift im Dislogfeld (Listenfeld), also eine Schrift, die alle Buchstaben gleich lbreit darstellt.
Jetzt zählst du die Zeile aus (z.B. 60 Zeichen, wobei du nach je 20 Zeichen eine neue Spalte beginnst:
Dein Eintrag baust du jetzt wie folgt auf ("s" bezeichnet dabei eine Stringzeile):

Code: Alles auswählen

...
s = space(60) 'deine Zeile hat jetzt 60 zeichen
REM erster Eintrag steht in s1, zuerst Längenprüfung
if len(s1)> 17 then s1 = left(s1, 17) & ".."
REM Eintrag setzen, ab Pos. 1
mid(s, 1, len(s1), s1)
REM zweiter Eintrag, in s2, gleiche Vorgehensweise:
if len(s2)> 17 then s2 = left(s2, 17) & ".."
mid(s, 20, len(s2), s2)
REM und so weiter
...
Dadurch erhälst du eine wunderbar strukturierte Liste, Spaltengenau und unabhängig von der Länge der Texte. Funktioniert einandfrei. Brauchst du praktische Beispiele?

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

Beitrag von Steffan »

Hallo Thomas,

erst einmal vielen Dank für Deine Mühe.
So werde ich es wahrscheinlich machen. Auf die Idee mit nichtproportinaler Schrift war ich noch gar nicht gekommen!
Allerdings bleibt das Problem der Lesbarkeit überlanger Einträge. Meine Idee hierzu wäre die Verwendung eines Tolltips der die ganze Info enthält, allerdings habe ich die noch nicht dauerhaft mehrzeilig hingekriegt (s.a.: viewtopic.php?t=8977).

Steffan
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

Hallo
Steffan hat geschrieben:Allerdings bleibt das Problem der Lesbarkeit überlanger Einträge. Meine Idee hierzu wäre die Verwendung eines Tolltips der die ganze Info enthält, allerdings habe ich die noch nicht dauerhaft mehrzeilig hingekriegt
Ich kenne nun die spezielle Aufgabe nicht, aber wäre es nicht evtl möglich, einen langen Eintrag einfach zu kürzen, und bei Auswahl in anderen Feldern anzuzeigen?

Wenn natürlich die Auswahl direkt irgendwas auslösen soll geht das nicht, aber generell wäre das mein erster Gedanke. Dann kann es dir nämlich sogar egal sein ob das 30, 50, 100 oder 10.000 Zeichen sind :D

Grüße
Thomas
Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

Beitrag von Steffan »

Hallo,
Ich kenne nun die spezielle Aufgabe nicht, aber wäre es nicht evtl möglich, einen langen Eintrag einfach zu kürzen, und bei Auswahl in anderen Feldern anzuzeigen
Das ganze ist für mich eher ein Problem der Übersichtlichkeit:
Ich habe eine große Tabelle (Listbox) in der Infos zu Dokumenten angezeigt werden sollen (Datum, Empfänger, Projektbezug, Thema, Art), das ganze gekoppelt mit einer Suchfunktion.
Die Listbox ist nahezu bildschirmbreit und -hoch. Bei Doppelklick soll sich das jeweilige Dokument öffnen. Die Höhe möchte ich nicht einschränken, da möglichst viele Einträge angezeigt werden und man nicht ewig scrollen muss, um zum gewünschten zu kommen. Bei Deinem Vorschlag hätte ich im ungünstisten Fall die Variante, dass das Dokument oben in der Liste (also am oberen Bildschirmrand) steht, die ergänzende Info am unteren Bildschirmrand. Deshalb meine Idee
  • die Infos (Spalten) möglichst vollzählig anzuzeigen und
  • die ergänzende Info über den Tooltip (also nahe am gewählten Eintrag) zu realisieren
Ansonsten ist dein Vorschlag natürlich ein wählbarer Ansatz, den ich auch schon versucht habe, gefiel mir halt aus oben genannten Gründen nicht so gut. Trotzdem vielen Dank für Deine ANtwort,

Steffan.
Mihilist
****
Beiträge: 120
Registriert: Di, 25.04.2006 15:27
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Mihilist »

Morgen,
Steffan hat geschrieben:Das ganze ist für mich eher ein Problem der Übersichtlichkeit:
Ich habe eine große Tabelle (Listbox) in der Infos zu Dokumenten angezeigt werden sollen (Datum, Empfänger, Projektbezug, Thema, Art), das ganze gekoppelt mit einer Suchfunktion.
Ja, dachte ich mir schon, dass es da Probleme gibt. Der Vorschlag war ja nun nicht sooo originell, als dass da außer mir keiner drauf käme ;)

Aber was ich mir eben so spontan noch gedacht hätte: Du könntest für jedes Feld eine ComboBox anlegen, und mit ein wenig Arbeit ein entsprechendes Filter-Makro schreiben. Dann kann der Benutzer auswählen, wie er seine Infos halt hat... "Projekt war das und das... mal sehen... dann kommen die und die Empfänger in Frage... das war der..." und so.

Mit ein bissl Fleißarbeit beim Programmieren dürfte das schon recht übersichtlich bleiben - vorrausgesetzt die Benutzer wissen vorher wenigstens ungefähr wonach sie suchen.

Grüße
Thomas
Steffan
****
Beiträge: 125
Registriert: Mi, 21.06.2006 10:07
Wohnort: Dresden

Beitrag von Steffan »

Hallo,
Mihilist hat geschrieben: Aber was ich mir eben so spontan noch gedacht hätte: Du könntest für jedes Feld eine ComboBox anlegen, und mit ein wenig Arbeit ein entsprechendes Filter-Makro schreiben. Dann kann der Benutzer auswählen, wie er seine Infos halt hat... "Projekt war das und das... mal sehen... dann kommen die und die Empfänger in Frage... das war der..." und so.
vielen Dank für die Anregung, aber ich habe über die Ergebnisse gern einen größeren Überblick. In Praxis funktioniert das als Kombination von Suchen und "Gucken". Also ich gebe die ersten 3 Buchstaben des Empfängers oder des Projektes ein und erhalten als Ergebnis eine überschaubare Liste aus der ich das zugehörige Dokument dann per Doppelklick auswähle und öffne. Das habe ich mittlerweile auch mit der selbstgebastelten, mehrzeiligen Listbox aus Thomas' Tip realisiert. Das läuft auch ganz gut, allerdings eben mit den oben erwähnten Einschränkungen in Darstellung und Handling der Listbox. Da es sich aber um Punkte handelt, die die Funktionalität nicht gravierend beeinträchtigen, verlasse ich diese Baustelle erst einmal.

Beste Grüße und nochmal vielen Dank für die Tips,
Steffan.
Antworten