:

    Systeme über SQL Statement filtern

    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-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