Tabellenfeld bei Dialogen

Hallo *,

zu Beginn von LO war es notwendig, Tabellenfelder in Dialogen händisch
zu erstellen. Inzwischen ist so ein Feld zu den Dialogen hinzugefügt
worden. Ich ziehe das Feld auf und kann dort ein paar Eigenschaften
voreinstellen. Dann versuche ich mit Makros die entsprechenden
Tabellenköpfe und Dateninhalte hinzu zu fügen. Gelingt laut xray auch,
soweit eben das Element korrekt ausgelesen wird. Nur zeigt das
Tabellenfeld nichts an.

Anleitungen, die ich im Netz finde, bauen alle nicht auf diesem
Tabellenelement auf, sondern erstellen das Element erst, nachdem die
Daten dort zugewiesen werden. Ich denke, dass das auch anders gehen
muss. Sonst hätte dieses Element in der GUI ja keinen Sinn.

Gruß

Robert

Hallo Robert,

ich habe das zum Laufen gebracht, indem ich in Thomas Krumbeins Beispiel die Befehle zum Erzeugen des Tabellengitters stillgelegt und stattdessen das Spalten- und das Datenmodell den Objekten des bereits im Dialog-Entwurf hinzugefügten Tabellengitters zugewiesen habe.
Konkret:

1. habe ich ein Tabellengitter in Thomas Dialog eingefügt
2. dort habe ich noch den Zeilenkopf und beide Bildlaufleisten aktiviert
3. in "Dialog_Starten" mit goto die alten Statements übersprungen und
    nach dem Label "neu:" meine Zuweisungen eingefügt.

Das geänderte Beispiel findet sich in:
https://www.magentacloud.de/lnk/dKhJG5ej

Fazit: man erspart sich das Erzeugen des Tabellengitters mit seinen Eigenschaften, also nicht viel.
Übrigens: Bildlaufleisten sehe ich nicht , ich bin dem aber nicht nachgegangen.

Viele Grüße
Gerhard

Hallo Gerhard,

Fazit: man erspart sich das Erzeugen des Tabellengitters mit seinen
Eigenschaften, also nicht viel.

Das hatte ich mir auch schon gedacht. Nur konnte ich das ganze nicht zur
Ansicht bringen. Ich schaue mir das Beispiel einmal an.

Gruß

Robert

Hallo Gerhard,

ich weiß jetzt, was für mich das Merkwürdige dabei ist. Ich habe
versucht, den Inhalt des Dialoges zu verändert, nachdem er angezeigt
wird. Der sonstige Zugriff macht das eben vorher.

Ich hätte stattdessen so etwas wie einen Refresh auf das aktuelle
Element vermutet. Das kann ich zwar ändern, aber die Änderung dringt
nicht zur Anzeige durch.

Gruß

Robert

Hallo Robert,

das ist in Thomas' Beispiel auch drin, die Schaltfläche "Daten wechseln" ruft die sub ToggleDaten auf, da siehst du's. Du musst nur an zwei Stellen in der sub "tab_g1" durch "newGrid" ersetzen, weil ich beim Einfügen des Tabellengitters diesen namen verwendet habe.

Gruß
Gerhard

Hallo Gerhard, hallo Robert,

Hallo Robert,

das ist in Thomas' Beispiel auch drin, die Schaltfläche "Daten wechseln" ruft die sub ToggleDaten auf, da siehst du's.

Ja, aber die Funktionsweise ist leider nicht zuverlässig. Es fehlt tatsächlich ein "refresh" oder besser ein "Neuzeichnen". Es kann nämlich passieren, dass das Betriebsystem oder der Renderer nicht alles neu zeichnet. Dann bleiben alte Daten sichtbar - sehr unschön. Zwar existieren Sie nicht mehr, es wird/wurde aber offensichtlich nicht alles neu gezeichnet.

Wenn man das ToggleDaten mehrfach aufruft, (Schaltfläche betätigen) so bleibt zumindest unter Win10 nach dem 2. oder 3. Mal Restdaten übrig - die werden nicht übermalt:(

Hier hilft zwar, das Fenster kurz außerhalb des Bildschirms zu schieben und zurück - das bewirkt ein Neuzeichnen - aber sinnvoll ist das nicht.

Deswegen empfehle ich, Spaltenstruktur insgesamt nicht zu ändern, sondern nur Datensätze auszutauschen. Da ist mir dieses Phänomen noch nicht aufgefallen.

Viele Grüße

Thomas