**Eigenschaft:** ==== SQL-Schablone ==== \\ **Beschreibung:** Mit diesem Wert wird ein SQL-Kommando definiert, das die gewünschten Daten vom Datenbank-Server holt. Als Kommando ist alles erlaubt, was der zugrundeliegende ODBC-Konnektor unterstützt und / oder erlaubt. Bei entsprechenden Zugriffsrechten sind auch schreibende Zugriffe denkbar. Die Zeichenkette kann mehrzeilig sein und darf bis zu 2000 Zeichen lang sein. {{print2forms:objekte:formular:sqlval.png}} \\ {{print2forms:objekte:formular:sqlval1.png}} Die als Resultat des SQL-Kommandos gelieferten Daten werden in Zwischenpuffer kopiert, von wo aus sie für die Zusammenstellung von Schablonen innerhalb von Text-, Barcode- oder Ressourcenfelder verwendet werden können (siehe unten). 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. | | ''\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. Um Probleme mit dem SQL-Server zu vermeiden, sollten solche Zeichen innerhalb des Kommandos verwendet werden, die auch mit dem eingestellten Zeichensatz nutzbar sind. Die Kodierung spezieller Zeichen ist natürlich von der Konfiguration des ODBC-Konnektors und der Zeichensatzeinstellung innerhalb der Datenbank abhängig. * Ein Anwendungsbeispiel für ein ODBC-Abfragefeld ist im Tip [[print2forms:tips:tip20|Protokollierung in einer Datenbank]] zu finden. \\ \\