Bedingungen und Wiederholungen

<< Klicke um Inhaltsverzeichnis anzuzeigen >>

Navigation:  Vorlagenerstellung >

Bedingungen und Wiederholungen

Bedingungen

 

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:

 

BDFWirtschaftsjahr

 

 

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|

 

Wiederholungen

 

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|