Für komplexere Abfragen stellt Business OPEN einen eigenen Befehl zur Verfügung:
Syntax:
äif(Bedingung;Ja-Zweig;Nein-Zweig)
Parameter
|
Typ
|
Beschreibung
|
Bedingung
|
boolean
|
Ja/Nein-Wert
|
Ja-Zweig
|
Alphanumerisch
|
Anweisung, evtl. Verzweigung in weiteren äif-Befehl
|
Nein-Zweig
|
Alphanumerisch
|
Anweisung, evtl. Verzweigung in weiteren äif-Befehl
|
Hinweis:
Bei den Anweisungen des Ja-Zweigs und des Nein-Zweigs muss es sich um
Texte
(Strings) handeln!
Beispiel
einfache Abfrage
|
Angenommen, der Lagermengen-Report berücksichtigte sämtliche Lagerorte. In diesem Fall sollen Artikel, die sich auf dem Reparaturlager befinden ausdrücklich mit der Kennung "Reparatur!" versehen werden.
Platzieren Sie im Datenteil neben dem Lagerwert eine Variable
vvRep Weisen Sie ihr im Skript folgende äif-Abfrage zu:
Bedingung
der äif-Abfrage ist der eingetragene
Lagerort "Rep" im
Ja-Fall
soll auf dem Bericht
"Reparatur!"
ausgedruckt werden, im
Nein-Fall
nichts (
leerer String.
|
|
Ab der Version
SRP 3.x
kann eine
If-Abfrage
an die Stelle des äif-Befehls treten:
If ([LagerMengen]Lagerort="Rep")
vvRep:="Reparatur!"
Else
vvRep:=""
End if
Die Druckausgabe ist jeweils identisch:
|
Beispiel
verschachtelte Abfrage
|
Befindet sich ein Artikel auf dem
Reparaturlager soll zusätzlich das
Einlagerdatum
geprüft werden. Reparaturen vor einem bestimmten Stichtag sollen die Kennung "überfällig" bekommen.
Die Variable "vvRep" erhält in diesem Fall das folgende Script:
|
-
Grundbedingung
der äif-Abfrage ist wiederum
Lagerort = "Rep"
(araturlager).
- Im
Ja-Fall
wird in eine
weitere Abfrage
verzweigt, die prüft, ob das
Einlagerdatum
vor einem bestimmten
Stichtag
liegt.
- Im
Ja-Zweig der Unterbedingung
soll "Reparatur überfällig!" gedruckt werden, im
Nein-Zweig
lediglich "Reparatur".
- Im
Nein-Zweig der Grundbedingung
(also Lagerort # "Rep" soll nichts auf dem Formular erscheinen (leerer String):
|
In der Version
SRP 3.x
kann die verschachtelte Abfrage auf übersichtlichere Weise im Rahmen einer
If-Abfrage
realisiert werden:
If ([LagerMengen]Lagerort="Rep")
If ([LagerMengen]EinlagerDatum<!01.01.2018!)
vvRep:="Reparatur überfällig!"
Else
vvRep:="Reparatur!"
End if
Else
vvRep:=""
End if
|
Hinweis:
Trotz der Option auf die gesamte 4D Befehlssprache in SuperReport Pro 3.x kann der BO-interne äif-Befehl weiterverwendet und interpretiert werden, wenn dieser z.B. aus bestehenden Formularen übernommen wird oder wenn Sie aus alter Gewohnheit daran festhalten möchten.