===== Angebot mit Bildern und Unterschrift ===== In diesem Beispiel soll ein bebildertes Angebot gedruckt werden. Zu jedem angebotenen Artikel soll aus einer Bildersammlung ein Bild ausgewählt und gedruckt werden. Abschliessend wird der Name des Vertriebsmitarbeiters ausgelesen und in der Schrift des Formulars unterhalb der Grußformel angedruckt. Der Name dient dann noch als Referenz auf eine Sammlung von Unterschriften, aus der die richtige ausgewählt und angedruckt wird. Tragen Sie in der Beispielapplikation unter **Beispiel** jetzt **Angebot mit Bildern und Unterschrift** aus. Wenn Sie auf die Schaltfläche **Drucken** klicken, wird der Ausdruck gestartet. Eine kurze Meldung bestätigt dies und auf Ihrem Drucker sollte eine Seite ähnlich der folgenden erscheinen: \\ \\ {{print2forms:tutorial:bilder.gif|Ausdruck Angebot mit Bildern}} \\ \\ Um sich einen Eindruck von der Leistung des (p2f)-Systems in diesem Beispiel machen zu können, sind nachfolgend die reinen Druckdaten abgebildet, die dem Beispiel zugrunde liegen. Die Abstände zwischen den Artikelzeilen wurden groß genug gewählt, um die Bilder eindrucken zu können und um das Beispiel nicht noch durch das Verschieben der Artikelzeilen aufzublähen. Die Verwendung verschieden großer Schriften innerhalb der Tabelle ist bereits so von den Druckdaten vorgegeben. \\ \\ {{print2forms:tutorial:bilddata.gif|Eingangsdaten Angebot mit Bildern}} \\ \\ Der (p2f)-Prozess, der dem Beispiel zugrunde liegt, hat den Namen **Angebot einzelne Seite mit Bildern**. Öffnen Sie diesen Prozess bitte im Administrationsprogramm. \\ \\ {{print2forms:tutorial:sample23.png|Prozess Angebot mit Bildern}} \\ \\ Genau wie im letzten Beispiel ist auch dieser Prozess sehr einfach gehalten - alle Seiten eines Lieferscheins werden einfach gleich behandelt, und mit dem Formular **Angebot einzelne Seite mit Bildern** versehen. Die ganze Formatierung wird vom Formular erledigt. Öffnen Sie nun dieses Formular. \\ \\ {{print2forms:tutorial:sample24.png|Formular Angebot mit Bildern}} \\ \\ Entscheidend für das Aussehen des Formulars sind die fünf **Felder**. Neben dem bekannten **Ressourcenfeld** taucht jetzt noch ein **Textfeld** und ein **Suchfeld** auf. Das **Ressourcefeld** mit dem Namen **Artikel** ist für das Einbinden der Bilder zu den einzelnen Artikeln verantwortlich. Über den **Feldindex** **00????0000** und das **Vergleichsmuster** ' **[# ]# %%([%%@#]{1,8}[^ ]) .***' wird nach den Artikelzeilen gesucht. Diese fangen mit einer ein- oder zweistelligen Positionsnummer an, gefolgt von der aus Buchstaben und Ziffern maximal achtstelligen Artikelbezeichnung. Die Artikelbezeichnung wird wegen der Klammern in den ersten Puffer übernommen. Der Zugriff auf die eigentliche Ressourcedatei erfolgt diesmal abhängig von der Artikelbezeichnung. Die Verwendung von **\Artikel:1** als **Ressourcenschablone** verlangt, daß Ressourcendateien existieren, deren Namen den Artikelbezeichnungen entsprechen. Unter **Zugriffspfad** wird angegeben, in welchem Subcontainer diese Ressourcedateien zu finden sind. Der Container für die Ressourcen ist entsprechend organisiert. \\ \\ {{print2forms:tutorial:sample25.png|Administratrion Angebot mit Bildern}} \\ \\ Das **Textfeld** mit dem Namen **Angebot** soll dafür sorgen, daß die Angebotsnummer in einer größeren, gut lesbaren Schrift ausgegeben werden soll. Dies wird dadruch erreicht, daß die Angebotsnummer aus dem Textfeld am **Feldindex** **0002C10000** durch das **Vergleichsmuster** '**.%%*(%%#####/#)**' ausgelesen wird. Im Gegensatz zu den bisherigen Beispielen hat **Feld entfernen** jetzt aber den Wert **Ja**, sodaß die Angebotsnummer aus den Druckdaten gelöscht wird. Anschliessend wird durch die Angaben unter der Gruppe **Text** dafür gesorgt, daß die Angebotsnummer in einer 14 Punkte großen Schrift Arial am alten Platz erscheint. Die horizontale Position ist 15 cm, weil die Feldposition ja am linken Rand ist. Die vielen Leerzeichen vor der Angebotsnummer hätten wir zwar in den Puffer mit aufnehmen können, doch das hätte nichts genutzt, weil die Leerstelle in Arial eine viel geringere Breite hat als in der Schrift Courier. Das **Textfeld** mit dem Namen **Sachbearbeiter** ermittelt den Namen des Sachbearbeiters und setzt diesen unterhalb der Grußformel des Angebotsformulars ein. Die Formulierung des **Vergleichsmuster**s als '**.{59}[HF]r\. (.*)**' garantiert, daß sowohl 'Hr.' als auch 'Fr.' erkannt werden. Lediglich der Name wird ausgelesen, die Anrede wird ignoriert. Da die Grußformel Bestandteil des Formulars ist, wird der Sachbearbeitername **Relativ zum Formular** positioniert. Wird also das Formular später einmal verschoben, wandert der Name des Sachbearbeiters mit. Das **Ressourcefeld** mit dem Namen **Unterschrift** druckt die elektronische Unterschrift des Sachbearbeiters. Da der Name des Sachbearbeiters bereits bekannt ist, ist unter **Feldindex** und **Vergleichsmuster** nichts angegeben. Ein solches Feld wird immer ausgeführt. Wie beim letzten **Ressourcefeld** wird der Name der Ressourcedatei aus den Druckdaten entnommen (der Name des Sachbearbeiters). Ungewöhlich ist hier aber, daß ein Teil des Zugriffspfades, nämlich der Subcontainer **Demo** in die **Ressourceschablone** mit aufgenommen wurde. Der Grund dafür ist daß man ja normalerweise nicht jedem Sachbearbeiter Zugriff auf alle Unterschriften geben möchte. (p2f) bietet einen Zugriffsschutz über den Namen des Benutzers, der den Druckauftrag ausgelöst hat. Nehmen wir an, der Benutzername des Druckauftrags (kann der Indexdatei entnommen werden) ist **Meier**. Benennen Sie nun den Subcontainer **Demo** im Subcontainer **Unterschrift** in **Meier** um. Ersetzen Sie jetzt noch in der **Ressourceschablone** die Zeichenkette **Demo** gegen die Zeichenkette '**\u**'. Dies sorgt dafür, daß beim Zugriff auf die Ressourcendatei noch der Name des druckenden Benutzers in den Pfad mit aufgenommen wird. Auf diese Weise wird eine effektive Zugriffskontrolle auf die Unterschriften realisiert. Nur die für den jeweiligen Benutzer in 'seinem' Subcontainer hinterlegten Unterschriften sind nutzbar. Der eigentliche Name der Ressourcedatei wird aus dem Puffer von **Textfeld** mit dem Namen **Sachbearbeiter** geholt. Damit sich auch die Unterschrift beim Verschieben des Formulars mitbewegt, wurde sie **Relativ zum Formular** positioniert. Durch das **Suchfeld** mit dem Namen **Angaben Etikett** werden die zusätzlichen Druckdaten oberhalb der Adresse entfernt. Diese Daten sind lediglich für das nachfolgende Drucken eines Paketaufklebers nötig und müssen hier verschwinden. \\ \\ === Hinweise === * Bei der Verwendung von ausgelesenen Druckdaten in der Schablone eines **Textfeld**es ist es von großer Bedeutung in welchem Zeichensatz die Druckdaten vorliegen. Dieser Zeichensatz muß unter **Zeichensatz** angegeben werden, da ansonsten Umlaute oder sonstige länderspezifischen Zeichen nicht richtig gedruckt werden. Das heist aber auch, daß konstante Bestandteile einer Schablone falls es länderspezifische Zeichen sind, umkodiert werden müssen. * Die eigentliche Aufgabe von Suchfeldern ist die, Texte aus den Druckdaten in die internen Puffer zu übernehmen, damit diese dann beim Drucken von Barcodes oder zusätzlichen Texten mitverwendet werden können. Es eignet sich aber genauso, unnötige Druckdaten zu unterdrücken. \\ \\