WIEDERHOLE Schleife |
Top Previous Next |
Die WIEDERHOLE-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 WIEDERHOLE-Schleife die Namen aller Mandanten aufgelistet, die in einem Akt erfasst sind:
|WIEDERHOLE *X Akt.AnzahlMandanten| |Akt.Mandant[*X].Name| |ENDE WIEDERHOLE|
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 letzte Teil (<Anzahl der Wiederholungen>) bezieht sich meist auf Personen bzw. Objekte im Akt. Daher gibt es eine einfache Möglichkeit auf diese Anzahl zuzugreifen.
In folgendem Beispiel soll die Vorlage eine Personen/Objekteliste der gewünschten Rolle erstellen:
|MAKEPERLIST <Name der Liste> R2[<Name der Rolle]|
R2 steht in diesem Fall für Rolle2 (Rolle1 gibt es nicht), statt R2 kann auch R2TL verwendet werden, dies steht für Rolle2TopLevel, hier werden nur Personen/Objekte mit der gewünschten Rolle aus der obersten ebene der Vertragsdaten genommen. Eine Personenliste kann auch zu untergeordneten Rollen erstellt werden:
|MAKEPERLIST <Name der Liste> R2[<Name der Rolle 1. Ebene][<Index der Person im Akt][Name der Rolle 2. Ebene]|
Bsp: |MAKEPERLIST Funktionsträger R2[Gesellschaft][1][Prokurist]|, würde eine Liste aller Prokuristen erstellen, die unter der ersten Gesellschaft des Aktes zugeordnet sind.
Danach kann auf diese Liste für WIEDERHOLE-Schleifen zugegriffen werden:
Die Anzahl der im Akt vorkommenden Personen, mit der Rolle <Name der Rolle>, kann mit !GET <Name der Liste>.Count abgerufen werden.
Bsp: |MAKEPERLIST Eigentuemer R2[Eigentuemer]| |WIEDERHOLE *M !GET Eigentuemer.Count| |Akt.Rolle2[Eigentuemer][*M].Name| |ENDE WIEDERHOLE|
In unserem Beispiel würden nun die Namen aller Eigentümer, mit einer Leerzeile zwischen diesen, aufgelistet werden.
Eine andere Möglichkeit die Anzahl einer gewissen Rolle zu bestimmen ist Akt.AnzahlRolle2[<Name der Rolle>].
Auch hier können untergeordnete Rollen dazugenommen werden: Akt.AnzahlRolle2[<Name der Rolle Ebene 1>][<Index der Person mit Rolle Ebene 1 aus dem Akt>][<Name der Rolle Ebene2>].
Der <Index der Person mit Rolle Ebene1 aus dem Akt> kann ebenfalls durch eine WIEDERHOLE-Schleife gesetzt werden. So sind geschachtelte Abfragen möglich:
BSP: |WIEDERHOLE *X Akt.AnzahlRolle2[Gesellschaft]| |WIEDERHOLE *Y Akt.AnzahlRolle2[Gesellschaft][*X][Geschaeftsfuehrer]| |Akt.Rolle2[Gesellschaft][*X][Geschaeftsfuehrer][*Y].Name| |ENDE WIEDERHOLE| |ENDE WIEDERHOLE|
Das Beispiel gibt die Namen aller Geschäftsführer, aller Gesellschaften im Akt aus.
|