<< Klicke um Inhaltsverzeichnis anzuzeigen >> Navigation: Vorlagenerstellung > Bedingungen und Wiederholungen |
IF-Abfragen starten immer mit einem |%DATENTYP%IF <Bedingung>| und müssen mit einem |ENDIF| geschlossen werden. Es besteht auch immer die Möglichkeit die Abfrage zu negieren durch ein NOT vor der Bedingung: |%DATENTYP%IF NOT <Bedingung>|.
Abfragen können über alle Datentypen erstellt werden, die Art des Datentyps bestimmt das %DATENTYP% Kürzel in der Bedingung.
|%INT%IF CALC[]...Integerwert (= ganze Zahl)
|%TXT%IF CALC[]...Textwert
|%DAT%IF CALC[]...Datumswert
|%FLT%IF CALC[]...Floatwert (= Reele Zahl)
|%CUR%IF CALC[]...Währung
Beispiel einer IF-Abfrage:
|%TXT%IF CALC[Akt.User[FELDNAME]]=|
Dieser Text erscheint wenn das Benutzerdefinierte Feld FELDNAME leer ist.
|ENDIF|
|%INT%IF NOT CALC[Akt.User[FELDNAME]]>1|
Dieser Text erscheint, wenn das BDF FELDNAME nicht größer als 1 ist.
|ENDIF|
Als Vergleichsparameter stehen Ihnen sowohl
Größer als >
Kleiner als <
Kleiner gleich <= // =<
Größer gleich >= // =>
Gleich =
zur Verfügung.
Zugriff auf Benutzerdefinierte (BD) Dropdown- oder Checkbox-Felder
BD Dropdown-Menus bzw. BD Checkboxes müssen sinnvollerweise auch mit IF-Abfragen gekoppelt werden, da ein |Akt.User[FELDNAME-DROPDOWN]| nur den ausgewählten Wert des Dropdowns(0,1,2..) oder bei einer Checkbox 0 – wenn abgehakt – bzw. 1 – wenn angehakt – ausgibt.
IF-Abfrage für Checkbox BDF:
|%INT% IF CALC[Akt.User[FELDNAME]]=1|
Text wenn CB angehakt ist.
|ENDIF|
|%INT% IF CALC[Akt.User[FELDNAME]]=0| oder
|%INT% IF NOT CALC[Akt.User[FELDNAME]]=1|
Text wenn CB nicht angehakt(=abgehakt) ist.
|ENDIF|
IF-Abfrage für Dropdown-Menus:
Als Beispiel hierfür ein BDF für ein Dropdown-Menu:
Am Beispiel des Wirtschaftsjahres lässt sich diese IF-Abfrage leicht veranschaulichen:
|%INT% IF CALC[Akt.User[WIRTSCHAFTSJAHR]]=1|
Jänner
|ENDIF|
|%INT% IF CALC[Akt.User[WIRTSCHAFTSJAHR]]=2|
Februar
|ENDIF|
|%INT% IF CALC[Akt.User[WIRTSCHAFTSJAHR]]=3|
März
|ENDIF|
|%INT% IF CALC[Akt.User[WIRTSCHAFTSJAHR]]=4|
April
|ENDIF|
Und so weiter....
Es lassen sich hier aber noch weitere Abfragen erstellen, wie z.B.
|%INT% IF CALC[Akt.User[WIRTSCHAFTSJAHR]]<7|
Wirtschaftsjahr endet im ersten Halbjahr
|ENDIF|
|%INT% IF CALC[Akt.User[WIRTSCHAFTSJAHR]]>6|
Wirtschaftsjahr endet im zweiten Halbjahr
|ENDIF|
Geschachtelte Abfragen sind ebenfalls möglich:
|%INT% IF CALC[Akt.User[WIRTSCHAFTSJAHR]]<7|
1. Jahreshälfte
|%INT% IF CALC[Akt.User[WIRTSCHAFTSJAHR]]<4|
1. Quartal
|ENDIF|
|%INT% IF CALC[Akt.User[WIRTSCHAFTSJAHR]]>3|
2.Quartal
|ENDIF|
|ENDIF|
Die REPEAT-Schleife ermöglicht die Aufzählung aller Daten der selben Kategorie, die bei einer Abfrage zur Verfügung stehen.
In folgendem Beispiel werden mit der REPEAT-Schleife die Namen aller Mandanten aufgelistet, die in einem Akt erfasst sind:
|REPEAT Akt.AnzahlMandanten FOR *X|
|Akt.Mandant[*X].Name|
|ENDREPEAT|
Wenn es fünf Mandanten im Akt gibt, würde |Akt.Mandant[*X].Name| fünfmal dort stehen, und das *X durch 1,2,3,4,5 ersetzt werden.
Der mittlere Teil (<Anzahl der Wiederholungen>) bezieht sich meist auf Personen bzw. Objekte im Akt. Daher gibt es eine einfache Möglichkeit auf diese Anzahl zuzugreifen.
Eine andere Möglichkeit die Anzahl einer gewissen Rolle zu bestimmen ist Akt.AnzahlRolle2[<Name der Rolle>].
|REPEAT Akt.AnzahlRolle2[Gesellschaft] FOR *X|
|Akt.Rolle2[Gesellschafter][*X].Name|
|ENDREPEAT|
Für die korrekte Bezeichnung bzw. Einzahl/Mehrzahl und Fall kann das Kürzel ROLLETEXT und ROLLETEXTMITARTIKEL verwendet werden.
z.B. wenn Rolleninhaber männlich:
Akt.Rolle2[Käufer][1].RolleText[2] => Käufers
Akt.Rolle2[Käufer][1].RolleText[4][2] => Käufern
Akt.Rolle2[Käufer][1].RolleTextMitArtikel[2] => des Käufers
Akt.Rolle2[Käufer][1].RolleTextMitArtikel[4][2] => den Käufern
Beide Parameter sind optional, wenn Anzahl angegeben wird, muss aber auch Fall angegeben werden.
Wenn keine Parameter angeben werden, dann funktioniert das Kürzel wie bisher. Wenn der Parameter Anzahl größer als 1 ist, dann wird die Mehrzahl ausgeben, sonst die Einzahl.
Bei definierten Parteien sieht das so aus:
|REPEAT !GET Partei1.Count FOR *X|
|Akt.PersonID[[!GET Partei1[*X]]].Name|
|ENDREPEAT|
Um für einen Serienbrief eine Wiederholung aller Empfänger zu erreichen, kann folgende Schleife verwendet werden:
|REPEAT Dok.PersZuLst.AnzahlAktPersonen[] FOR *X|
|Dok.PersZuLst.AktPerson[*][*X].*|
|ENDREPEAT|