**Eigenschaft:** ==== Schablone ==== \\ **Beschreibung:** Mit diesem Wert wird ein Kommando definiert, das auf dem Rechner, auf dem der Client oder das Gateway läuft, ausgeführt wird. Das Kommando kann konstant sein oder auch variabel, das heist es kann Teile der Nutzdaten enthalten. Mit dem Kommando können im Prinzip beliebige Programme oder Skripte aufgerufen werden. Das aufgerufene Programm oder Skript kann über einen speziellen Mechanismus Daten an den Client oder das Gateway zurückgegeben. Diese Daten werden in einen Zwischenspeicher kopiert, von wo sie für andere Felder (Text, Barcode, etc) bei der Zusammenstellung von Schablonen genutzt werden können. Die Kommando darf bis zu 255 Zeichen lang sein. {{print2forms:objekte:formular:sysval.png}} Mittels der drei Fluchsymbole '\', '^' und '~' können, neben einigen besondere Variablen, auch bei der Mustererkennung gefundene Texte mit in die zu druckende Zeichenkette aufgenommen werden. Die Fluchtsymbole werden innerhalb der Schablone wie folgt verwendet: ^ Symbol ^ Bedeutung ^ | ''\X:Y'' | Der umgedrehte Schrägstrich fordert einen durch eine **Feldauswahl** ermittelten Text an. Die durch den Doppelpunkt voneinander getrennten Zahlen wählen die Nummer des Feldes (X, im Bereich 1 bis 99) und die Nummer des ermittelten Textes (Y, im Bereich 1 bis 9). So bezieht sich '\3:2' auf das dritte Feld und dort auf den zweiten Text (zweites Klammerpaar). Hat das angesprochene Feld einen Namen, kann statt der Feldnummer (X) auch der Name angegeben werden. | | ''%%^%%X:Y'' | Das Circumflex fordert einen durch einen übergeordneten **Dokumentprozess** ermittelten Text an. Die durch den Doppelpunkt voneinander getrennten Zahlen wählen die Nummer der Bedingung (X, im Bereich 1 bis 99) und die Nummer des ermittelten Textes (Y, im Bereich 1 bis 9). So bezieht sich '%%^%%1:2' auf die erste Bedingung (die zum Aufruf des Formatprozesses geführt hat, der jetzt dieses Formular aufruft) und dort auf den zweiten Text (zweites Klammerpaar). Hat die angesprochene Bedingung einen Namen, kann statt der Bedingungsnummer (X) auch der Name angegeben werden. | | ''~X:Y'' | Die Tilde fordert einen durch ein **HTTP-, ODBC-** oder **System-Anfragefeld** ermittelten Text an. Die durch den Doppelpunkt voneinander getrennten Zahlen wählen die Nummer des Anfragefeldes (X, im Bereich 1 bis 99) und die Nummer des ermittelten Textes (Y, im Bereich 1 bis 9). So bezieht sich '~3:2' auf das dritte Feld und dort auf den zweiten Text. Hat das angesprochene Feld einen Namen, kann statt der Feldnummer (X) auch der Name angegeben werden. | | ''\\'' | Erzeugt den umgedrehten Schrägstrich. | | ''\^'' | Erzeugt das Circumflex. | | ''\~'' | Erzeugt die Tilde. | | ''\b'' | Erzeugt die Prüfziffer des zuletzt ausgegebenen Barcodes. | | ''\c'' | Erzeugt die IP-Adresse oder den Namen des Computers, der den Druckauftrag generiert hat. | | ''\e'' | Erzeugt die Nummer des Etiketts auf dem aktuellen Etikettenbogen. | | ''\f'' | Erzeugt die Dateibezeichnung des Druckauftrags (Nur wenn im %%PJL%%-Header enthalten). | | ''\i'' | Erzeugt die interne Kennung des Clients oder Gateways als Hexadezimalzahl. | | ''\j'' | Erzeugt den Namen des Druckauftrags (Nur wenn im %%PJL%%-Header enthalten). | | ''\k'' | Erzeugt eine verschüsselte Zeichenkette, die in der Regel an aufgerufene Programme in Systemfeldern übergeben wird, um diese Programme an diesen Client oder dieses Gateway binden zu können. | | ''\m'' | Erzeugt den Namen des Druckers, auf dem der Druckauftrag ausgeführt wird. | | ''\n'' | Erzeugt den Benutzernamen des Druckauftrags (Nur wenn im %%PJL%%-Header enthalten). | | ''\p'' | Erzeugt die aktuelle Seitennummer. | | ''\s'' | Erzeugt eine fortlaufende Zahl im Bereich 0 bis 99.999, die als eindeutige Kennzeichnung innerhalb des Aufrufs verwendet werden kann. ((Natürlich nur dann wirklich eindeutig, solange so vom Programm oder Skript gekennzeichnete Objekte nicht permanent erhalten bleiben. Die Zahl wird nach jeder Nutzung um eins hochgezählt. \\ \\ )) | | ''\t'' | Erzeugt die Anzahl der Seiten im Dokument (Nur wenn vorher ein Dokumentprozess ausgeführt wurde). | | (sp)''\uHH''(sp)\\ (sp)''\uHHHH''(sp)\\ (sp)''\uHHHHHH''(sp) | Gestattet die Aufnahme eines beliebigen Unicode-Zeichens in die Schablone durch die Angabe seines 8-Bit, 16-Bit oder 24-Bit Hexadezimalwertes (also zwei, vier oder sechs Ziffern). Es können alle Zeichen von '\x00' bis '\xFF' erzeugt werden. Die Hexadezimalziffern A bis F können wahlweise als Gross- oder Kleinbuch(-)staben geschrieben werden. ((Die hier anzugebenden Werte sind wirklich die Unicode-Zeichenwerte gemäss **ISO 10646** und nicht etwa die UTF-8 Repräsentation dieser Zeichenwerte! (p2f) kodiert diese Werte im Laufe der weiteren Verarbeitung selbst in UTF-8.\\ \\ )) | | ''\xHH'' | Gestattet die Aufnahme eines beliebigen Zeichens in die Schablone durch die Angabe seines Hexadezimalwertes (immer zwei Ziffern). Es können alle Zeichen von '\x00' bis '\xFF' erzeugt werden. Die Hexadezimalziffern A bis F können wahlweise als Gross- oder Kleinbuchstaben geschrieben werden. | Alle anderen Zeichen stehen innerhalb der Schablone für sich selbst. Es sind beliebige Mischformen aus konstanten und variablen Inhalten darstellbar. \\ **Hinweise:** * Bei der Kodierung länderspezifischer Sonderzeichen ist zu berücksichtigen, dass alle Eingaben und Anzeigen innerhalb des (p2f)-Systems im Zeichensatz Unicode erfolgen. Im Zweifelsfall sollten die fraglichen Zeichen hexadezimal angegeben werden. Werden länderspezifische Zeichen aus den Nutzdaten übernommen und als Parameter in das Kommando eingefügt, ist der Zeichensatz der Nutzdaten bei der Kommandoausführung zu berücksichtigen. * An dieser Stelle (innerhalb eines Formulars) ist es nicht möglich, aus einem Programm oder Skript heraus auf die durch den (p2f)-Client oder das -Gateway erzeugten Druckdaten zuzugreifen. Ist dies gefordert, beispielsweise beim Mailen oder Faxen von Dokumenten, muss ein (p2f)-Gateway eingesetzt werden, das am Ende eines Druckauftrags ein Programm oder Skript starten kann. * Hinter den Kennungen '\', '^' und '~' zur Einbindung von variablen Texten aus den regulären Ausdrücken der verschiedenen Felder kann mit der Notation eines weiteren Doppelpunkts eine **Formatierung** (Optische Aufbereitung) des auszugebenden Text erfolgen. Siehe dazu den Tip [[print2forms:tips:tip61|Formatierung in Schablonen]]. * Sollte das aufgerufene Programm oder Skript temporäre Dateien anlegen müssen, kann durch Übergabe der Client- oder Gateway-ID ''\i'' beim Aufruf leicht ein eineindeutiger Name erzeugt werden. Das verhindert, dass sich Clients und Gateways, die eventuell gleichzeitig Systemfelder ausführen, gegenseitig blockieren, oder dass Daten irrtümlich zwischen Clients und Gateways hin- und herwandern, was durchaus auch ein massives **Datenschutzproblem** verursachen kann. \\ \\