Jede Vorlage umfasst ein Kontrollkästchen mit der Bezeichnung Auto-Where. Diese Funktion erleichtert die Verwendung von Vorlagen für das dynamische Hinzufügen mehrerer Filterklauseln über WHERE, AND oder OR. Zwar lässt sich mit Vorlagen jeder beliebige Teil einer SQL-Abfrage speichern, eine der naheliegensten Verwendungen von Vorlagen besteht jedoch darin zu ermöglichen, dass der ursprünglichen Abfrage eine unterschiedliche Anzahl dieser Filterklauseln hinzugefügt werden kann. Beispiel: Dies sind einige Beispiele für SQL-Anweisungen, die zum Filtern verwendet werden:
Wenn die primäre SQL-Quelle die erste Filterklausel (WHERE) nicht einschließt, muss der ersten der Quelle hinzuzufügenden Vorlage WHERE anstelle von AND oder OR vorangestellt werden. Das Problem besteht darin, dass beim Schreiben der Vorlagenquelle nicht immer bekannt ist, welche Vorlage die erste ist, weil die Bedingungen zum Ein- oder Ausschließen erst bei Ausführung des Berichts bestimmt werden. Insbesondere, wenn eine einzelne Vorlage wiederholt zum Bereitstellen von Filterklauseln verwendet wird, wie es etwa bei der URL-Parameterbedingung möglich ist, muss festgelegt werden können, dass dem ersten Exemplar der Vorlage ein WHERE vorangestellt ist.
Die Auto-Where-Funktion dient der Handhabung all dieser Szenarien und wird gemäß der folgenden Regeln gesteuert:
Jegliche Vorlagen, bei denen Auto-Where nicht ausgewählt ist, werden von der Auto-Where-Funktion auch dann ignoriert, wenn eines der reservierten Wörter WHERE, AND oder OR in die Vorlagenquelle eingeschlossen wurden.
Bei jeder Vorlage, bei der diese Funktion aktiviert ist, wird das erste Wort in der Quelle geprüft und wie folgt behandelt:
Wenn das erste Wort WHERE, AND oder OR lautet und es sich um die erste einzufügende Vorlage handelt, wird das Wort in der einzufügenden Vorlagenquelle ggf. zu WHERE umgewandelt.
Wenn keines der Wörter WHERE, AND oder OR gefunden wird und dies die erste einzuschließende Vorlage ist, wird das Wort WHERE vor dem Einfügen an den Anfang der Vorlagenquelle gestellt.
Wenn das erste Wort AND oder OR lautet und dies nicht die erste einzufügende Vorlage ist, wird das Wort zum Einfügen in seinem aktuellen Zustand in der Vorlagenquelle belassen.
Wenn das erste Wort WHERE lautet und dies nicht die erste einzufügende Vorlage ist, wird WHERE vor dem Einfügen der Vorlagenquelle durch AND ersetzt.
Wenn keines dieser Wörter gefunden wird und dies nicht die erste einzufügende Vorlage ist, wird das Wort AND vor dem Einfügen an den Anfang der Vorlagenquelle hinzugefügt.
Anwendungsbeispiele für Auto-Where finden Sie unter Eine Vorlage mit einer abweichenden Eingabe wiederverwenden und Eine Vorlage mit mehreren abweichenden Eingaben wiederverwenden.