Base tabcontrol Tabelle Mehrere markierte Zeilen auswerten

Ist es in Base möglich, in einem tabcontrol nach der Markierung mehrerer Zeilen diese Zeilen insgesamt auszuwerten?

Aktuell sehe ich nur die Möglichkeit, das eine Zeile markiert ist (im Datensatzmarkierer per Pfeil visualisiert) und diese Zeile per “… Bookmark…” per Makro auswertet werden kann. Eventuell andere markierte Zeilen (blau markierte Zeilen) sind dabei nicht auswertbar.
Für die Listbox gibt es die Möglichkeit, mehrere markierte Zeilen auszuwerten.

Wenn ich mehrere Zeilen in einem tabcontrol markiere (blau markierte Zeilen), möchte ich diese per Makro auswerten bzw. verwenden, z.B. für das Löschen oder übertragen in eine weitere Ansicht/Tabelle und damit dem Anwender die Möglichkeit anbieten, mehrere Zeilen per einem Makro zu bearbeiten.

Rückfragen gerne.

In Verwendung: LibreOffice Base 7.0… Windows 10

Beim Tabellenkontrollfeld gibt es das Array Selection.

SUB Tablecontrol(oEvent AS OBJECT)
oTablecontrol = oEvent.Source
arSelect() = oTablecontrol.Selection
…
END SUB

In diesem Array stehen die markierten Datensätze in der angezeigten Reihenfolge vermerkt, also
arSelect(0) = 1
arSelect(1) = 3
wenn ich den 1. und den 3. Datensatz ausgewählt habe.

XRAY hilft bei so einer Ermittlung.

Von der entsprechenden Zeile geht es dann weiter zu

oTablecontrol.Model.Parent.absolute(1)
oTablecontrol.Model.Parent.absolute(3)

… und darüber dann zu den Werten des jeweiligen Datensatzes.
Die Markierung wird dabei leider entfernt.

1 Like

Hi Robert,
vielen Dank für Deine Infos.
Ich werde es ausprobieren und berichten.
Danke!
Gruß Tom

Hi Robert,

nochmal vielen Dank für Deinen für mich wichtigen Tipp!

Deinen Lösungsvorschlag nutzend konnte ich unter Einsatz einer globalen Array-Variante und dem leider notwendigen Wait-Parameter meine Anforderung umsetzen.

Das Problem war u.a., dass die Zeilenmarkierungen im TabControl bei Focusverlust im globalen Array nicht zeitnah erfasst wurde bei Auslösen des Verarbeitungsbuttons ausserhalb des TabControls. Die Verarbeitung nach Auslösen des Verarbeitungsbuttons musste also künstlich verlangsamt werden.

Da die Erfassung der markierten Zeilen und Arbeitsschritte davon getrennt ausserhalb des Tabcontrols passieren, bleibt ein Risiko bzgl. der Initialisierung der globalen Array-Variante. Dies muss in der Anwendung weiter beobachtet werden.

Robert, vielen Dank.
Gruß Tom