**Eigenschaft:** ==== Bedingungsliste ==== \\ **Beschreibung:** Zur Entscheidung, ob ein untergeordnetes Formular gedruckt werden soll oder nicht kann eine Bedingung angegeben werden. Diese Bedingung setzt sich aus einer Liste von Einzelbedingungen zusammen, die durch logisches Und oder Oder miteinander verknüpft sind. Das (p2f)-System bietet einerseits die Möglichkeit, Texte innerhalb der Druckdaten zu prüfen, und andererseits die Möglichkeit, Attribute des Druckauftrags (via PJL-Header übertragen), wie Benutzer oder druckender Rechner, zu prüfen. Bei der Prüfung von Texten innerhalb der Druckdaten stellt sich das Problem der eindeutigen Kennzeichnung und Abgrenzung der Texte innerhalb der Druckdaten. Deshalb gibt es im (p2f)-System sogenannte Feldindizes, die in einer speziellen Betriebsart des Clients oder Gateways errechnet und angezeigt werden. Nähere Informationen zur Ermittlung der Feldindizes finden sich im Hilfetext der Eigenschaft **Feldindex**. \\ \\ Bei der Prüfung von Attributen des Druckauftrags kennt das (p2f)-System folgende Möglichkeiten: | Feld | Ein Text innerhalb der Druckdaten wird geprüft. | | Benutzer | Der Name des Benutzers, der den Druckauftrag erzeugt hat, wird geprüft. Der Benutzername wird dabei als einfache Zeichenkette bahandelt. Der Benutzer muss also nicht im (p2f)-System konfiguriert sein! | | Rechner | Der Name des Rechners, der den Druckauftrag erzeugt hat. Da die Rechnernamen von den (p2f)-Druckertreibern ermittelt werden, ist das Aussehen des Namens vom jeweiligen Rechner abhängig. Im einfachsten Fall kann nur die IP-Adresse als Name dienen, oder, falls der Rechner Zugriff auf den DNS-Dienst hat, sein voller Name im Netzwerk. | | Drucker | Der Name des Druckers auf dem druckenden Rechner wird geprüft. Zu Steuerungszwecken ist es ohne weiteres möglich, mehrere logische Drucker einzurichten, die dann aber alle auf den gleichen (p2f)-Client drucken. | | Auftrag | Der Name des Druckauftrags wird geprüft. Dieser Name wird in der Regel vom druckenden Programm eingesetzt, und ist daher nicht immer verfügbar. | | Datei | Der Name der Datei, in der der Druckauftrag vom Spool-System zwischengespeichert worden ist, wird geprüft. Dieser Name ist nicht auf allen Rechnersystemen verfügbar - zur Zeit nur im OS/400 und i5/OS. | | Benutzerdaten | Die Benutzerdaten der Spooldatei sollen geprüft werden. Diese Daten ist nicht auf allen Rechnersystemen verfügbar - zur Zeit nur im OS/400 und i5/OS, wenn über HostPrintTransform gedruckt wird. | | Benutzerdefinierte Daten | Die benutzerdefinierten Daten der Spooldatei sollen geprüft werden. Diese Daten ist nicht auf allen Rechnersystemen verfügbar - zur Zeit nur im OS/400 und i5/OS, wenn über HostPrintTransform gedruckt wird. | | Prozess | Der (p2f) Name des aufrufenden Prozesses wird geprüft. | | Etikett | Die Nummer des Etiketts auf dem Etikettenbogen wird geprüft. Das erste Etikett hat die Nummer '1'. Die Prüfung kann nur erfolgen, wenn das Formular über einen Etikettenprozess aufgerufen worden ist. | | Seite | Die Nummer der aktuellen Druckseite wird geprüft. Die erste Druckseite hat die Nummer '1'. Bei der Formulierung des Vergleichsmusters für die Prüfung ist zu berücksichtigen, dass die letze Seite eines Druckauftrags einen Punkt nach ihrer Nummer enthält. Damit kann über eine Abfrage auf die Existenz des Punktes auf die letzte Seite eines Druckauftrags geprüft werden. | Neben der Information was zu prüfen ist, werden noch weitere Eigenschaften benötigt. Hierzu zählen: |Name|Name zur Kennzeichnung der Bedingung. Dient zur Verbesserung der Lesbarkeit.| |Feldindex|Falls ein Feld geprüft werden soll, Index des Textfeldes, das ausgewertet werden soll| |Vergleich|Information, ob auf Gleichheit oder Ungleichheit geprüft werden soll| |Vergleichsmuster|Muster, gegen das der Feldinhalt oder das Druckattribut verglichen werden soll| |Verknüpfung|Logische Verknüpfung der Bedingungen in der Liste| Weitere Informationen dazu finden sich in den Hilfetexten der einzelnen Eigenschaften. \\ Als Beispiel seien im folgenden noch zwei einfache Bedingungen aufgeführt. Die linke Bedingung testet, ob in dem Feld mit dem Index 0002D00000 nach einer beliebigen Anzahl anderer Zeichen die Zeichenfolge '346-' gefolgt von einer beliebigen Anzahl anderer Zeichen, auftaucht. Die rechte Bedingung testet, ob der Druckauftrag von einem bestimmten Rechner kommt und ob der Inhalt des Feldes 0001E00000 an der letzten Position keine 7 hat. {{print2forms:objekte:formular:condit.png}} Eine besonders häufig verwendete Bedingung ist die, ob ein bestimmtes Feld in einem Dokument vorhanden ist oder nicht. Die linke Bedingung in der nachfolgenden Abbildung ist erfüllt, wenn das Feld existiert und irgendeinen Inhalt hat (ausgedrückt durch den Ausdruck '.*'). Die rechte Bedingung ist erfüllt, wenn das Feld im Dokument nicht enthalten ist. {{print2forms:objekte:formular:condit2.png}} \\ **Hinweise:** * Alle Listen von Bedingungen können zusammen nicht mehr als 99 Bedingungen aufnehmen. Dabei ist nicht (!) zu berücksichtigen, dass auch ein übergeordnetes Formular oder eventuell ein vorgelagerter Dokumentprozess bereits Bedingungen enthält. * Mit steigender Anzahl von Bedingungen sinkt natürlich auch die Geschwindigkeit des Formatprozesses, der alle Bedingungen zum Einbinden untergeordneter Formulare ständig auswerten muss. * Bei der Auswertung einer Bedingungsliste werden die Einzelbedingungen in aufsteigender Reihenfolge (quasi von links nach rechts) ausgewertet, also ohne Berücksichtigung der Tatsache, dass ein logisches Und höher bindet als ein logisches Oder. * Ist der Wert für die Verknüpfung einer Bedingung leer, wird die Auswertung an dieser Stelle abgebrochen. Die danach formulierten Bedingungen gehen nicht mehr in die Entscheidung über das Einbinden des untergeordneten Formulars mit ein. Wohl aber stehen die von diesen 'Bedingungen' in regulären Ausdrücken aufgesammelten Pufferinhalte den untergeordneten Formular zur Verfügung. \\