Systeme filtern

Über ein Listenfeld mit Kontrollkästchen können mehrere Werte ausgewählt werden.

Docusnap-Berichte-Dialog-Listenfeld-ausgeführt

Um diesen Dialog zu erstellen wird als erstes eine neue Datenquelle angelegt. Diese Datenquelle wird verwendet um die Werte für die Auswahlliste bereit zu stellen. Bei der Datenquelle wird auch angegeben, wie die Liste sortiert werden soll, da die Komponenten die Werte ausgeben wie sie in der Tabelle stehen und nicht auf alphabetische Sortierung achten.

Docusnap-Berichte-Dialog-Datenquelle

Anschließend wird über einen Rechtsklick auf den Bereich neben den Seiten und Klick auf die Schaltfläche Neues Formular ein neues Formular hinzugefügt.

Docusnap-Berichte-Dialog-anlegen

Über die Werkzeugleiste wird als erstes eine Bezeichnung hinzugefügt, bei der in der Eigenschaft Text System: eingegeben wird.

Es wird ein Listenfeld mit Kontrollkästchen hinzugefügt um mehrere Systeme auswählen zu können. Beim Listenfeld wird als Datenquelle für die (Datenbindung) - Elemente der FormHosts.HostName verwendet. Die Eigenschaft (Name) wird beim Listenfeld zu cbxSystems umbenannt. Zusätzlich werden noch zwei Schaltflächen hinzugefügt. Bei einer der Schaltflächen wird als Dialog Ergebnis Abbrechen und bei der anderen wird als Dialog Ergebnis OK ausgewählt. Die Eigenschaft Text wird in OK bzw. Abbrechen geändert. Damit ist die Erstellung des Dialogs abgeschlossen.

Docusnap-Berichte-Dialog-Listenfeld

Als nächstes wird auf die ReportPage gewechselt um die Komponenten für die Ausgabe der Daten hinzuzufügen. Dabei wird ein Datenband angelegt, bei dem als Datenquelle die Tabelle tHosts ausgewählt wird. Bei der Tabelle muss Beim Start verbinden auf Wahr gesetzt werden. Außerdem wird dem Datenband ein Textfeld hinzugefügt in dem der tHosts.HostName ausgegeben wird.

Docusnap-Berichte-Dialog-ReportPage

Durch Doppelklick auf das Datenband wird der Dialog Daten einstellen geöffnet. Anschließend wird im Tab Filter ein Filter hinzugefügt und der Ausdruck cbxSystems.Control.checkedItems.contains(tHosts.HostName) eingegeben. Dadurch werden nur Systeme ausgegeben, deren Name mit den einem der ausgewählten Systeme übereinstimmt. Durch dieses Statement wird jedes der ausgewählten Systeme mit dem tHosts.HostName verglichen und wenn er enthalten ist, wird dieses System angezeigt.

Der Ausdruck setzt sich zusammen aus cbxSystems, der Name des Listenfeldes, Control, um auf das Control zuzugreifen, CheckedItems, die Liste der ausgewählten Systeme, Contains, Funktion für den Vergleich und (tHosts.HostName), referenziert den Namen der Systeme in der Tabelle tHosts.

Docusnap-Berichte-Dialog-Datenband-Filter-Multi

Anschließend werden nur die ausgewählten Werte im Bericht angezeigt.

Docusnap-Berichte-Dialog-Bericht-Systeme-ausgeführt