Mit einem Bericht rufen Sie eine Liste von Daten aus der Datenbank ab. Im Beitrag Berichte: Datenkategorie festlegen haben Sie gesehen, dass Sie Daten über Personen, Objekte und manches andere abrufen können - aber sicherlich möchten Sie nicht jedes Mal alle Personen, Objekte oder was auch immer abrufen. In Ihrer Liste werden Sie in aller Regel nur bestimmte Datensätze haben wollen, sprich: Die Daten, die Sie abrufen, müssen bestimmte Bedingungen erfüllen. Diese Bedingungen (oder anders gesagt: Kriterien) legen Sie im Reiter "Abrufkriterien" fest:

Das ist tatsächlich der kniffligste Teil bei der Erstellung eines Berichts, deswegen ist dieser Beitrag ziemlich lang. Sie erfahren hier folgendes:

Allgemeines zu Bedingungen

Was ist eigentlich eine Bedingung? Nun, eine Bedingung lässt sich immer formulieren als "Ein bestimmtes Datenmerkmal verhält sich im Vergleich zu einem Vergleichswert auf bestimmte Art und Weise". Zu abstrakt? Dann probieren Sie es einmal an den nachstehenden Beispielen durch:

  • Bedingung: Wohnadresse in Deutschland. Das lässt sich in die obige, abstrakte Formulierung übertragen; das Datenmerkmal ist das Land der Wohnadresse, der Vergleichswert ist Deutschland, und das Verhalten des Datenmerkmals besteht darin, das es dem Vergleichswert gleich ist.
  • Bedingung: Der Nachname ist irgend etwas mit "Meier". Das funktioniert genauso - das Datenmerkmal ist der Nachname, der Vergleichswert ist "Meier" (ohne Anführungszeichen), und das Verhalten des Datenmerkmals besteht darin, dass es - ohne Berücksichtigung von Groß- und Kleinschreibung - den Vergleichswert enthält.
  • Bedingung: Postleitzahl der Wohnadresse ist größer als 50000. Wieder das gleiche Spiel - das Datenmerkmal ist die Postleitzahl, der Vergleichswert die Zahl 50000, und das Verhalten des Datenmerkmals besteht darin, dass es größer ist als der Vergleichswert.

Eine Form der Bedingung haben wir noch unterschlagen, und die hat mit der Natur der Datenbank zu tun: In der Datenbank, die ABS verwendet, ist es keineswegs gesagt, dass es zu jedem Datensatz alle Datenmerkmale gibt. Das ist ein ziemlich pfiffiger Umstand, denn er ermöglichst es ABS zum Beispiel, Objekte zu verwalten, die noch nicht bewertet sind - auf datenbankchinesisch existiert bei solchen Objekten nämlich einfach der Ausrufpreis nicht. Damit kann eine Bedingung auch lauten: "Ein bestimmtes Datenmerkmal existiert (oder existiert nicht)".

Neue Bedingungen hinzufügen

Nach all diesem theoretischen Vorgeplänkel können wir jetzt zur Anwendung kommen: Im oben abgebildeten Fenster sehen Sie links alle Datenmerkmale, für die Sie Bedingungen formulieren können. Rechts sehen Sie die Bedingungen, die es für Ihren Bericht schon gibt. Wie Sie sehen, sehen Sie nichts: In der obigen Abbildung gibt es noch keine Bedingungen, lediglich eine UND-Verknüpfung. Keine Bange - warum die hier steht, dazu kommen wir später.

Übrigens hängen die Datenmerkmale in der linken Tabelle natürlich von der Datenkategorie ab, auf die sich Ihr Bericht bezieht. Das leuchtet auch unmittelbar ein: Das Datenmerkmal "Nachname" macht zwar für eine Person oder einen Bieter Sinn, für ein Objekt oder ein Los hat es aber keine Bedeutung.

Lassen Sie uns nun alle drei Bedingungen, die wir oben formuliert haben, unserem Bericht hinzufügen: Wir wollen alle Meiers mit deutscher Wohnadresse, deren Postleitzahl größer als 50000 ist.

Fangen wir mit der deutschen Wohnadresse an. Dafür klicken Sie das Datenmerkmal "Wohnadresse: Land" an, halten die linke Maustaste gedrückt und ziehen das Datenmerkmal in die rechte Hälfte des Fensters. Jetzt sehen Sie das Folgende:

Bedingungen verändern

Sie haben also gerade die Bedingung eingefügt, dass das Datenmerkmal "Land, in dem die Wohnadresse liegt" existiert. Das ist noch keine besonders beeindruckende Bedingung (denn das Land existiert immer dann, wenn die Wohnadresse existiert, und das dürfte bei fast allen Ihrer Kunden der Fall sein), und auf jeden Fall ist es nicht die Bedingung, die wir wollten. Also müssen wir die Bedingung verändern. Das tun Sie, indem Sie auf die neue Bedingung doppelklicken; alternativ können Sie im Kontextmenü (erreichbar über die rechte Maustaste) auch die Option "Bearbeiten" anklicken. Jetzt sehen Sie das folgende Fenster:

Bei diesem Fenster müsste es jetzt bei Ihnen klingeln. Der Aufbau erinnert doch stark an unsere abstrakte Formulierung für Bedingungen, die wir weiter oben ins Spiel gebracht hatten. Sie erinnern sich: Bedingung = Ein Datenmerkmal verhält sich zu einem Vergleichswert auf bestimmte Art und Weise. Oder anders (und noch abstrakter) formuliert: Ein Datenmerkmal erfüllt einen bestimmten Vergleich mit einem bestimmten Vergleichswert.

Und das ist genau das, was Sie hier sehen. Links wählen Sie das Datenmerkmal aus, in der Mitte bestimmen Sie die Art des Vergleichs, und rechts wählen Sie den Vergleichswert aus.

Was bedeutet das also für unsere Beispielbedingung "Wohnadresse in Deutschland"? Nun, die Antwort haben wir oben schon gegeben: Datenmerkmal "Land, in dem die Wohnadresse sich befindet", Vergleich "Gleichheit", Vergleichswert ist der feste Wert "Deutschland". Genau das können Sie nun einstellen:

Nun klicken Sie auf "Speichern", und voilà: So sieht unsere Bedingung jetzt aus.

Das war es, was wir wollten. Die beiden anderen Bedingungen (Nachname mit "Meier", Postleitzahl größer als 50000) überlasse ich Ihnen, denn Sie fügen sie im Prinzip genauso hinzu wie oben beschrieben:

  • Sie ziehen das jeweilige Datenmerkmal ("Nachname" bzw. "Wohnadresse: PLZ") von links nach rechts.
  • Sie doppelklicken auf die jeweilige neue Bedingung.
  • Sie wählen den gewünschten Vergleich aus ("enthält" bzw. "größer als").
  • Sie geben den (jeweils festen) Vergleichswert an ("Meier" bzw. "50000", jeweils ohne Anführungszeichen).
  • Sie speichern die Bedingung.

Danach müssten Sie folgendes Ergebnis sehen:

Bedingungen - jetzt noch einmal im Detail

In unserem obigen Beispiel haben wir gesehen, wie Sie verschiedene Vergleichsarten benutzen können. Alle Vergleichswerte waren feste Werte. Damit haben wir noch ein paar Möglichkeiten unerwähnt gelassen, die Sie beim Gestalten einer Bedingung haben. Das holen wir jetzt nach:

Vergleiche

Betrachten wir noch einmal unsere "Nachname enthält 'Meier'"-Bedingung:

Diese Bedingung sorgt dafür, dass Ihr Bericht nur Personen auswirft, deren Nachname den Text "Meier" enthält - ohne Berücksichtigung der Groß- und Kleinschreibung. Sie würden also z.B. Personen mit Nachnamen "Meier", "Meierhofer" und "Obermeier" finden. Wenn Sie nun den Haken "Groß-/Kleinschreibung beachten" setzen, dann findet Ihr Bericht die Obermeiers nicht mehr, denn dann wird stur nach dem Text "Meier" mit großem M gesucht.

Mit dem Haken "nicht" können Sie Ihre Bedingung verneinen - das bedeutet, dass Datensätze gefunden werden, die die Bedingung nicht erfüllen. In unserem Fall wären das Personen, deren Nachname den Text "Meier" nicht enthält.

Vergleichswerte

Nehmen wir an, wir wollten noch eine zusätzliche Bedingung in unseren Beispielbericht aufnehmen - sagen wir, wir wollen nur die Personen sehen, die nicht vor beliebig langer Zeit erfasst wurden. Lehnen Sie sich einen Moment zurück und denken Sie nach, wie die zugehörige Bedingung formuliert werden müsste - richtig: Das Erfassungsdatum ist größer als der Vergleichswert.

Nehmen wir aber an, Sie wollten die Personen finden, die in der laufenden Woche erfasst wurden - dann müssten Sie den Vergleichswert jede Woche ändern, damit Ihr Bericht noch aktuell ist. Damit Sie das nicht tun müssen, können Sie statt eines festen Vergleichswertes einen berechneten verwenden:

Und schließlich könnte es ja sein, dass Sie mal die Personen sehen wollen, die in der laufenden Woche erfasst wurden, mal die aus dem laufenden Monat, und ein drittes Mal die seit einem willkürlich gesetzten Datum. Dann kann es eine gute Idee sein, wenn der Benutzer, der das Berichtsergebnis abruft, die zeitliche Schranke selbst angibt. Dafür können Sie beim Vergleichswert die Option "Eingabe durch den Benutzer" wählen - und damit der Benutzer auch weiß, was er da eingeben soll, geben Sie an, welchen Abfragetext der Benutzer sieht:

So, nun dürfen Sie sich den Schweiß von der Stirn wischen, denn jetzt wissen Sie alles darüber, wie Sie einzelne Bedingungen formulieren können. Speichern Sie die obige Bedingung, und nun sehen unsere Abrufkriterien aus wie folgt:

Bedingungen entfernen

Nehmen wir nun an, Sie wollten die Bedingung über das Erfassungsdatum nun doch nicht haben. Also entfernen wir sie, und das geht einfach: Sie klicken die Bedingung an, halten die linke Maustaste gedrückt und ziehen die Bedingung aus der rechten zurück in die linke Hälfte des Fensters - fertig. Alternativ können Sie auch im Kontextmenü die Option "Löschen" anklicken.

UND- bzw. ODER-Verknüpfungen

Ganz am Anfang dieses Beitrages hatte ich Sie auf die UND-Verknüpfung in der rechten Hälfte des Fensters hingewiesen und Ihnen versprochen, später noch einmal darauf zurückzukommen. Das tun wir jetzt:

Wahrscheinlich ist Ihnen schon aufgefallen, dass die rechte Fensterhälfte als Baumdiagramm gestaltet ist. Alle unsere Bedingungen sind Unterpunkte der UND-Verknüpfung. Das bedeutet: Unser Bericht findet alle Personen, für die alle angegebenen Bedingungen erfüllt sind. Wenn wir statt dessen alle Personen finden wollen, die mindestens eine (aber nicht unbedingt alle) der Bedingungen erfüllen - nun, dann machen wir aus der UND-Verknüpfung eine ODER-Verknüpfung. Dafür klicken Sie die UND-Verknüpfung an, wählen das Kontextmenü mit der rechten Maustaste an und wählen die Menüoption "ODER-Verknüpfung". Jetzt sehen die Bedingungen so aus:

Unser Bericht würde jetzt also alle Personen finden, die eine der genannten Bedingungen erfüllen - also alle Personen, die in Deutschland wohnen, Meier oder so ähnlich heißen oder eine Postleitzahl oberhalb von 50000 haben. Eine etwas exotische Bedingung - aber lassen Sie uns ein realistischeres Beispiel nehmen:

Gehen wir zurück zu unserer UND-Verknüpfung (Sie ahnen es schon - Sie klicken auf die ODER-Verknüpfung ganz oben, steuern das Kontextmenü mit der rechten Maustaste an und wählen die Option "UND-Verknüpfung"): Alle Meiers in Deutschland mit PLZ oberhalb von 50000. Und nun nehmen wir an, dass uns die Postleitzahl nicht mehr interessiert, wir aber nicht nur die deutschen Meiers, sondern auch die österreichischen wollen, also: Alle Meiers, die in Deutschland oder Österreich wohnen.

Hmmm... mit einer einzigen logischen Verknüpfung kommen wir hier nicht hin. Im Prinzip haben wir eine UND-Verknüpfung, und wir können (für das Land) keine Bedingung mit zwei Vergleichswerten formulieren. Die Lösung besteht darin, dass wir eine innere ODER-Verknüpfung hinzufügen, die zwei Bedingungen für das Land enthält. So funktioniert´s:

Erstens: Die Bedingung für die Postleitzahl wollten wir nicht mehr haben (für Österreich würde sie auch gar keinen Sinn machen, denn österreichische Postleitzahlen sind vierstellig). Wie Sie Bedingungen entfernen, haben wir oben beschrieben.

Zweitens: Sie fügen den Bedingungen eine innere ODER-Verknüpfung hinzu. Dafür klicken Sie auf die UND-Verknüpfung ganz oben und wählen im Kontextmenü die Option "ODER-Verknüpfung hinzufügen". Jetzt haben wir den folgenden Stand der Dinge:

Drittens: Sie ziehen die Bedingung über das Land (in der obigen Abbildung die oberste Bedingung) auf die neue ODER-Verknüpfung.

Viertens: Sie ziehen nochmals das Datenmerkmal "Wohnadresse: Land" von der linken in die rechte Hälfte - und zwar genau auf die neue ODER-Verknüpfung.

Fünftens: Sie ändern die neue Bedingung (in der obigen Abbildung ist das die unterste in der rechten Hälfte), so dass sie "Land der Wohnadresse ist gleich Österreich" lautet. Wie das geht, haben wir oben beschrieben.

Voriger Beitrag:
Berichte: Datenkategorie festlegen
Nächster Beitrag:
Berichte: Datenmerkmale auswählen