Show/Hide Toolbars

Navigation: Berichtswesen > Dialog > Beispiele

Systeme über SQL Statement filtern

Scroll Zurück Hoch Weiter Mehr

Alternativ zur Filterung der Daten über das Datenband, kann die Menge der Daten im SQL Statement der Datenquelle gefiltert werden. Dies bietet den Vorteil, dass weniger Daten aus der Datenbank geladen werden müssen, und daher der verbrauchte Arbeitsspeicher geringer ist.

Dieses Beispiel passiert auf dem Bericht aus dem Beispiel System filtern. Um den ausgewählten Wert aus dem Dialog zu speichern wird über Rechtsklick im Wörterbuch und neue Variable eine neue Variable angelegt. Diese Variable erhält den Namen DfvSelectedSystem.

Docusnap-Konvention-Info

Das Präfix Dfv steht für Docusnap Form Variable, um Variablen zu identifizieren, die für die Auswertung von Dialogen verwendet werden. Variablen können beliebig benannt werden, wenn die erstellten Berichte über den Docusnap Server geplant werden sollen, wird allerdings empfohlen das Präfix Dfv zu verwenden, damit die zugewiesenen Werte der Variablen gespeichert werden.

Docusnap-Berichte-Dialog-Variable

Der ausgewählte Wert wird in die bereits angelegte Variable DfvSelectedSystem gespeichert. Dafür wird im Formular durch Doppelklick auf die Schaltfläche OK der Editor für das Klick Ereignis geöffnet. In diesen Editor wird folgender Text eingegeben:

DfvSelectedSystem = cbxSystems.SelectedKey

Dadurch wird der angelegten Variable DfvSelectedKey der ausgewählte Wert der Nachschlageliste cbxSystems zugewiesen.

Docusnap-Berichte-Dialog-Ereignis-Editor

Anstatt dem Datenband einen Filter hinzuzufügen wie im Beispiel System filtern, wird in diesem Fall das SQL Statement der Tabelle tHosts auf den ausgewählten Wert gefiltert.

Um das SQL Statement anzupassen, wird über Rechtsklick auf die Tabelle tHosts im Wörterbuch auf die Schaltfläche Bearbeiten geklickt. In der Where-Klausel des SQL Statements wird die HostID auf den Wert in der Variable DfvSelectedSystem gefiltert.

Select * from tHosts where tHosts.HostID = {DfvSelectedSystem}

Um eine Variable im SQL Statement zu referenzieren, werden { } um den Namen der Variable gesetzt.

Docusnap-Berichte-Dialog-SQL-Filter

Anschließend wird im Bericht nur das ausgewählte System ausgegeben.

Docusnap-Berichte-Dialog-Bericht-ausgeführt