1 Etikettendruck 1.1 Übersicht



Ähnliche Dokumente
Professionelle Seminare im Bereich MS-Office

Internationales Altkatholisches Laienforum

Zwischenablage (Bilder, Texte,...)

Primzahlen und RSA-Verschlüsselung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Mit dem sogenannten Seriendruck können Etiketten und Briefe mit einer Adressdatei (z. B. Excel) verknüpft werden.

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen

Professionelle Seminare im Bereich MS-Office

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Versand Etiketten / Endlosdruck

Viele Bilder auf der FA-Homepage

Aufklappelemente anlegen

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Access [basics] Gruppierungen in Abfragen. Beispieldatenbank. Abfragen gruppieren. Artikel pro Kategorie zählen

Produktschulung WinDachJournal

4. BEZIEHUNGEN ZWISCHEN TABELLEN

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Stammdatenanlage über den Einrichtungsassistenten

Charakteristikum des Gutachtenstils: Es wird mit einer Frage begonnen, sodann werden die Voraussetzungen Schritt für Schritt aufgezeigt und erörtert.

2. Im Admin Bereich drücken Sie bitte auf den roten Button Webseite bearbeiten, sodass Sie in den Bearbeitungsbereich Ihrer Homepage gelangen.

50,2 Hz Portal - Kurzanleitung für die Rolle Sachbearbeiter

teamsync Kurzanleitung

Arbeiten mit UMLed und Delphi

Hier ist die eigentliche Textkolumne! Also auf der 0-ten Seite das Titelblatt Ihrer Arbeit. Seitenvorlage: Erste Seite! Daher keine Kopf-/Fußzeilen!

Fallbeispiel: Eintragen einer Behandlung

Erstellen von x-y-diagrammen in OpenOffice.calc

Guideline. Facebook Posting. mit advertzoom Version 2.3

Lieferschein Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

Anleitung zur Erstellung einer Gefährdungsbeurteilung

Erstellen einer GoTalk-Auflage

Dokumentation IBIS Monitor

Handbuch ECDL 2003 Professional Modul 1: Textverarbeitung Absätze formatieren

Sonderrundschreiben. Arbeitshilfe zu den Pflichtangaben in Immobilienanzeigen bei alten Energieausweisen

Lehrer: Einschreibemethoden

EINFACHES HAUSHALT- KASSABUCH

ASA Schnittstelle zu Endian Firewall Hotspot aktivieren. Konfiguration ASA jhotel

Gruppenrichtlinien und Softwareverteilung

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.

1. Einführung. 2. Die Abschlagsdefinition

Enigmail Konfiguration

3. Die tägliche -Flut effizient verwalten

Tipps & Tricks - Neuerungen Nr. 6/ 2015

Ordnung auf/im (Win-)PC bzw. der Festplatte

Arge Betriebsinformatik GmbH & Co.KG, CAP News 40, Februar CAP-News 40

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

Erstellen einer digitalen Signatur für Adobe-Formulare

Speichern. Speichern unter

Anlage eines neuen Geschäftsjahres in der Office Line

Animationen erstellen

5. Übung: PHP-Grundlagen

SimpliMed Formulardesigner Anleitung für die SEPA-Umstellung

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

ecaros2 - Accountmanager

Der neue persönliche Bereich/die CommSy-Leiste

So gehts Schritt-für-Schritt-Anleitung

Kulturelle Evolution 12

Schnelleinstieg in die (cs) AuftragPro

Programme im Griff Was bringt Ihnen dieses Kapitel?

Einzel- s und unpersönliche Massen-Mails versenden

Etikettendruck mit Works 7.0

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Wo möchten Sie die MIZ-Dokumente (aufbereitete Medikamentenlisten) einsehen?

Das Modul ARTIKEL-BARCODE ermöglicht den Druck von Barcode-Etiketten der EAN-Codes 8 und 13.

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

Erstellen der Barcode-Etiketten:

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Customer and Project Services. Teilnehmerunterlagen Aktivitäten

Kontakte Dorfstrasse 143 CH Kilchberg Telefon 01 / Telefax 01 / info@hp-engineering.com

PowerPoint: Text. Text

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

HyBizz! Online-Shop Bedienungsanleitung

1 Die Bado Schleswig-Holstein

Word. Serienbrief erstellen

Wie melde ich meinen Verein bei BOOKANDPLAY an?

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

Access [basics] Rechnen in Berichten. Beispieldatenbank. Datensatzweise berechnen. Berechnung im Textfeld. Reporting in Berichten Rechnen in Berichten

4.1 Wie bediene ich das Webportal?

Wir arbeiten mit Zufallszahlen

Grundlagen der Theoretischen Informatik, SoSe 2008

SMS/ MMS Multimedia Center

STRATO Mail Einrichtung Mozilla Thunderbird

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Die elektronische Rechnung als Fortsetzung der elektronischen Beauftragung so einfach geht es:

ARCHIV- & DOKUMENTEN- MANAGEMENT-SERVER PAPIER ARCHIVIEREN

Bereich METIS (Texte im Internet) Zählmarkenrecherche

DALI-16B Features ab Firmware V2.31

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

Informatik Kurs Simulation. Hilfe für den Consideo Modeler

Biogena IMK. Individuelle Mikronährstoff Komponenten. Benutzerhandbuch. Natürlich so individuell wie Ihr Patient

Anleitung über den Umgang mit Schildern

Kapitel 7 - Wägungen

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Transkript:

1 Etikettendruck 1.1 Übersicht Unter Smart Forms gibt es keine speziellen Funktionen, die sich auf den Etikettendruck beziehen. Diese Aufgabe muss also mit den bisher bekannten Mitteln gelöst werden. Wir stellen hier eine Realisierungsmöglichkeit am Beispiel von Adressaufklebern vor. Dabei werden Adressen zu den Kunden ausgegeben, die Sie bereits von der Flugrechnung und dem Flugdatenmodell im Buch SAP Smart Forms her kennen. Der Aufbau von Etikettenträgern legt es nahe, die Ausgabe mit Hilfe eines Tabelle-Knotens zu versuchen. Dieser Weg hat jedoch einen bedeutenden Nachteil: Die Höhe einer Zelle lässt sich nicht fest vorgeben, sondern hängt dynamisch vom Inhalt der Ausgabe ab. Damit lassen sich die festen Vorgaben zu den Rändern und Abständen der Etiketten aber kaum einhalten. Wir stellen deshalb im Folgenden eine Lösung vor, bei der die Ausgabe über einen Schablone-Knoten erfolgt: Die Schablone wird nur einen Zeilentyp enthalten, der immer genau eine Etikettenzeile beschreibt. Je nach Anzahl der Datensätze wird der Zeilentyp dieser Schablone mehrfach aufgerufen. Die Datensatzsteuerung hierfür erfolgt über einen Schleife-Knoten. Da im Normalfall die Anzahl der Datensätze (hier: Adressen), die auf Etiketten ausgegeben werden sollen, nicht begrenzt ist, müssen sowohl die Schablone als auch die Schleife im Hauptfenster angelegt sein. Dies hört sich zunächst recht einfach an. Es gibt allerdings einen Haken: Bei der Ausgabe müssen alle Adressen, die zu einer Etikettenzeile gehören, gleichzeitig verfügbar sein und dann gemeinsam über die Schablone ausgegeben werden. Wir gehen in unserem Beispiel von Etikettenpapier mit drei Spalten aus. Folglich kann die Ausgabe beim Durchlauf über alle Adressen immer nur im Abstand von drei Datensätzen erfolgen. Die Adressen der vorherigen Kunden müssen in Variablen zwischengespeichert sein. Für diesen Ablauf muss im Formular eine entsprechende Logik hinterlegt werden. 1

Ein weiterer wichtiger Punkt: Alle Text-Knoten, die über eine Schablone ausgegeben werden sollen, müssen über ihre Ausgabeoptionen einer einzelnen Schablonenzelle fest zugeordnet sein. Daraus folgt, dass für jedes Etikett auch ein eigener Text-Knoten mit gleichzeitig nahezu identischem Inhalt angelegt sein muss. Welcher Text-Knoten dann konkret zur Ausgabe kommt, wird mithilfe einer zusätzlichen Logik im Formular hinterlegt. Da beim Etikettendruck auf jeder Ausgabeseite der gleiche Vordruck verwendet wird, unterscheiden wir beim Formulardesign nicht nach Erstseite und Folgeseiten. Wir erläutern die Lösung im Folgenden anhand eines Übungsbeispiels, das Sie selbst am System nachvollziehen können. Zusammenspiel Formular und Rahmenprogramm Sie können den Etikettendruck als Ergänzung in das bisherige Rahmenprogramm Z_SF_EXAMPLE_01 einbinden, das wir im Buch SAP Smart Forms vorgestellt haben. Das Übungsbeispiel hat folgendes Ziel: Mit allen Rechnungen, die unser Programm ausgibt, sollen gleichzeitig auch entsprechende Etiketten als Adressaufkleber bedruckt werden. Es wird Sie vielleicht zunächst überraschen, dass wir die Ausgabe gleichzeitig mit den Rechnungen vornehmen wollen, denn ein Etikettenträger hat nun einmal ein völlig anderes Design als eine Flugrechnung. Es muss also hierfür ein völlig neues Formular mit z.b. neuer Seiteneinteilung entworfen werden. Dieses neue Formular werden wir dann zusätzlich in das Rahmenprogramm zur Flugrechnung einbauen. Die Kombination ist deshalb ideal, weil im Rahmenprogramm schon alle selektierten Adressen zu Verfügung. stehen. An diesem Beispiel wird deutlich, dass es möglich ist und auch durchaus sinnvoll sein kann, über ein einziges Rahmenprogramm mehrere Formulare anzusteuern. Hinweis: Wir gehen davon aus, dass für den Etikettendruck ein Drucker zur Verfügung steht, der einen eigenen Druckerschacht für den Einzug der Etikettenträger besitzt. Sie können dann über einen Kommando-Knoten mit passendem Print-Control den Etikettenträger unabhängig vom Rechnungspapier aufrufen. Aber natürlich können Sie bei dieser Übung auch nur auf Blankopapier ausgeben oder die Druckvorschau nutzen! 2

1.2 Basisformular anlegen und einbinden Wir wollen im ersten Schritt ein neues Formular anlegen, das noch keine speziellen Funktionen für den Etikettendruck besitzt, und dieses dann in das bisherige Rahmenprogramm einbinden. Damit haben Sie sofort eine funktionierende Testumgebung. 1.2.1 Schritte zum Anlegen des Formulars Erzeugen Sie ein völlig neues Formular, z.b. Z_SF_ETI_01: 1. Weisen Sie im Knoten Formularattribute den bisherigen Stil der Flugrechnung zu (Z_SF_STYLE_01). Dadurch stehen Ihnen mehr Formatierungsmöglichkeiten als im Standardstil zur Verfügung. 2. Definieren Sie als Schnittstellenparameter wie schon bei der Flugrechnung die interne Tabelle CUSTOMERS. 3. Legen Sie die Maße des Hauptfensters so fest, dass alle Etiketten des Trägers eingeschlossen sind sogar eher etwas höher, das schadet nicht. Die Koordinaten des Hauptfensters in der linken oberen Ecke sollten allerdings mit der Position des ersten Etiketts übereinstimmen. 4. Legen Sie auf Seite FIRST zunächst ein neues Nebenfenster an, in dem allgemeine Steuerungsfunktionen untergebracht werden können. Verschieben Sie das Fenster an den rechten Rand, wobei die Lage des Fensters an sich keine Bedeutung hat. Legen Sie dort beispielhaft einen Kommando-Knoten an. Dieser kann später das Print-Control "TRY..." aufnehmen, über das der Etikettenträger im Drucker angefordert wird. Natürlich können Sie auf diesen Knoten auch verzichten und auf Normalpapier ausgeben, was für die Übung sicher ausreicht. 5. Überprüfen, testen und aktivieren Sie das neue Formular. Auch wenn die Ausgabe noch fehlt, kann das Formular schon jetzt in das Rahmenprogramm eingebunden werden. 1.2.2 Einbindung in das Rahmenprogramm Die Datenschnittstelle zum Formular ist recht einfach: Sie besteht nur aus der internen Tabelle CUSTOMERS, die im Rahmenprogramm ohnehin vorhanden ist. Im Grunde muss also nur der Funktionsbaustein zu dem neuen Formular des Etikettendrucks eingebunden werden. Hier die wenigen Schritte: 3

1. Öffnen Sie das bisherige Rahmenprogramm Z_SF_EXAMPLE_01 über den ABAP-Editor (SE38). 2. Die Etiketten sollen erst nach den Flugrechnungen ausgegeben werden; man könnte sie dann sogar an einen Erfolg des Ausgabeteils koppeln. Gehen Sie also mit dem Cusor an das Ende des Programmcodes. 3. Binden Sie dort den Funktionsbaustein ein. Verwenden Sie dazu wieder die Musterfunktion des ABAP-Editors und holen Sie den Namen des Funktionsbausteins aus der Testfunktion zum Formular. Der Aufruf erfolgt dort über die Funktionstaste F8. 4. Weisen Sie im Rahmenprogramm bei Aufruf des Funktionsbausteins den Schnittstellenparameter CUSTOMERS mit den Kundendaten zu. Damit sind wichtige Grundlagen geschaffen. Sie können den Programmcode jetzt prüfen und aktivieren. Hinweis: Nach diesem Vorgehen ist das Formular über den Namen des generierten Funktionsbausteins noch fest mit dem Programm verbunden. Das können Sie in einem abschließenden Schritt noch optimieren; für den Anfang soll es erst einmal ausreichen. Wenn Sie das Rahmenprogramm jetzt ausführen, werden wie bisher zunächst die Flugrechnungen ausgegeben. Nach Verlassen der Druckansicht folgt dann die Etikettenausgabe mit einem eigenen Druck- Dialog. Die Ausgabe selbst besteht allerdings im aktuellen Zustand nur aus einer leeren Seite. 1.3 Einrichten Etikettendruck im Formular In den ersten Schritten haben Sie das Formular angelegt und in das Rahmenprogramm eingebunden. Jetzt können Sie im Formular die Funktionen für den Etikettendruck einrichten. 1.3.1 Definition der benötigten globalen Variablen Legen Sie zunächst alle globalen Variablen an, wie sie in Abbildung 1.1 dargestellt sind. 4

Abbildung 1.1 Datendeklaration für Etikettendruck Es fällt Ihnen sicher auf, dass wir neben dem bekannten WA_CUSTOMER gleich drei weitere Arbeitsbereiche zur Kundentabelle angelegt haben. Darin werden wir später die Datensätze zu den einzelnen Etikettenspalten einer Zeile zwischenspeichern. In unserem Beispiel gehen wir von drei Spalten aus. Diese Zahl haben wir zusätzlich auch der Variablen NUMBER_COL fest zugewiesen. Das erleichtert die spätere Änderung auf andere Spaltenzahlen. Hier kurze Hinweise zu den weiteren Variablen: COUNT_COL wird während der Formularausgabe festhalten, welche Spalte gerade aktuell ist. NUMBER_CUST wird die Anzahl der Kundendatensätze enthalten, die über den Schnittstellenparameter CUSTOMERS vom Rahmenprogramm zur Verfügung gestellt werden. Diese Angabe ist erforderlich, damit am Ende der Formularausgaben nicht einzelne Adressen "verlorengehen". COUNT_CUST wird während der Formularausgabe mitzählen, der wievielte Kundendatensatz gerade ausgegeben wird. Durch Vergleich mit der vorherigen Variablen ist hierdurch insbesondere erkennbar, ob es sich bereits um den letzten handelt. 1.3.2 Knoten unterhalb der Seite Nach der Neuanlage enthält das Formular eine einzelne Entwurfseite und das Hauptfenster MAIN. 5

Anzahl Datensätze feststellen Wie bereits erwähnt, benötigt man für die korrekte Ausgabe aller Adressen die Anzahl der Kundendatensätze, die im Schnittstellenparameter CUSTOMERS übergeben werden. Erzeugen Sie für diese Ermittlung im Hauptfenster MAIN zunächst einen passenden Programm-Knoten COUNT_CUST (siehe Abbildung 1.2). Abbildung 1.2 Programm-Knoten für Anzahl der Datensätze Die Ermittlung erfolgt über eine ABAP-Anweisung mit dem Schlüsselwort DESCRIBE. Darunter sehen Sie in Kommentarzeilen, dass das Zählen auch über eine Schleife möglich gewesen wäre. Die dort verwendete LOOP-Anweisung dürfen wir mit Bezug auf die ABAP- Kurzeinführung im Buch SAP Smart Forms als bekannt vorausetzen. Die letzte Variante wäre allerdings etwas langsamer. Schleife über alle Kunden einrichten Erzeugen Sie jetzt einen neuen Schleife-Knoten, der dem bisherigen Programm-Knoten folgen soll (z.b. mit dem Kürzel LOOP_CUST). Über diesen Knoten sollen alle Kundendatensätze durchlaufen werden. Tragen Sie entsprechend auf der Registerkarte Daten die interne Tabelle CUSTOMERS und den Arbeitsbereich WA_CUSTOMER ein. Erzeugen Sie darunter einen weiteren Programm-Knoten SET_VAR, der die Variablen zu Ausgabe der Adressen vorbelegen soll (siehe Abbildung 1.3). 6

Abbildung 1.3 Programm-Knoten zum Füllen der Arbeitsbereiche Der Programmcode hat zwei Aufgaben: Mit jedem neuen Datensatz werden im ersten Schritt die jeweiligen Zähler für Datensätze und Spalten um Eins erhöht. Auf der Basis des Spaltenzählers COUNT_COL lassen sich dann die zusätzlich angelegten Arbeitsbereiche für die Kundendaten füllen. Wenn die übergeordnete Schleife über drei Kundendatensätze gelaufen ist, sind diese Arbeitsbereiche folglich "reif" für die Ausgabe in einer Zeile. Diese Funktion werden wir im nächsten Schritt einrichten. Ausgabeformatierung über Schablone Jetzt muss eine Schablone folgen, die Sie z.b. mit dem Knotenkürzel DEF_LINE anlegen sollten. Da in unserem Beispiel drei Spalten vorgesehen sind, ist ein Zeilentyp wie in Abbildung 1.4 erforderlich. 7

Abbildung 1.4 Zeilentyp für die Etikettenausgabe Beachten Sie, dass diese Schablone abhängig von der Anzahl der vorgesehenen Adressen mehrfach hintereinander ausgegeben wird. Deshalb muss als vertikale Ausrichtung der Default-Wert aktuell stehen bleiben. Tipp: Da am Ausgabegerät (Drucker) häufig Randverschiebungen möglich sind, ist es vor allem beim Etikettendruck sinnvoll, die Position der Schablone bei der wirklichen Ausgabe auf dem Papier zu kontrollieren. Nutzen Sie hierfür die hinterlegten Muster zur Schablone (mit Ausgabe der Ränder aller Zellen). Wie schon im Buch SAP Smart Forms erwähnt, können Sie solche Randverschiebungen individuell über die Attribute des Ausgabegerätes korrigieren (Transaktion SPAD, Spoolverwaltung). Bevor Sie der Schablone jetzt die erforderlichen Textelemente zuordnen, beachten sie noch Folgendes: So wie die Schablone jetzt angelegt ist, wird sie bei jedem Schleifendurchlauf angesprochen. Wir haben jedoch einleitend schon festgestellt, dass dies nur bei jedem dritten Datensatz der Fall sein darf, wobei dann alle Zellen gleichzeitig gedruckt werden müssen. Die zugehörigen Variablen mit den Zählern haben wir schon im letzten Schritt gesetzt. Folglich muss jetzt für die Schablone noch eine passende Bedingung hinterlegt werden (siehe Abbildung 1.5). Wie Sie sehen, wird die Schablone nur dann ausgegeben, wenn der aktuelle Spaltenzähler die Gesamtzahl an Spalten erreicht hat. In unserem Fall wurde die Gesamtzahl "3" in der Konstanten NUMBER_COL hinterlegt (zugewiesen bei den globalen Definitionen). 8

Abbildung 1.5 Bedingungen zur Ausgabe der Schablone Zudem erfolgt die Ausgabe genau dann, wenn der letzten Kundendatensatz in der Schleifenabwicklung erreicht ist. Diese Bedingung berücksichtigt den Umstand, dass zu diesem Zeitpunkt möglicherweise die letzte Etikettenzeile noch nicht vollständig gefüllt ist. Ohne diese zusätzliche Bedingung würden in unserem Beispiel mit drei Etikettenspalten je nach Fall eine Adresse oder gar zwei Adressen am Ende nicht berücksichtigt. 1.3.3 Zuordnung der Textelemente Legen Sie unterhalb des Schablone-Knotens einen ersten Text-Knoten ADR_1 an: 1. Geben Sie dort die Adressdaten über den Arbeitsbereich WA_CUSTOMER1 in der Form aus, die Sie schon von der Flugrechnung her kennen (Knoten mit der Anschrift des Kunden). 2. Weisen Sie für diesen Text-Knoten bei den Ausgabeoptionen die erste Zelle der Schablone zu. Wiederholen Sie die Schritte für zwei weitere Text-Knoten ADR_2 und ADR_3. Nutzen die dort die weiteren Arbeitsbereiche WA_CUSTOMER2 und WA_CUSTOMER3 und weisen Sie die Spalten 2 bzw. 3 der Schablone zu (das Kopieren des ersten Knotens geht vermutlich am schnellsten). Nun sollte Ihr Formularaufbau das in Abbildung 1.6 dargestellte Aussehen haben. Zusätzlich finden Sie in der Abbildung noch einen abschließenden Programm-Knoten RESET_VAR. Er sorgt dafür, dass nach Ausgabe einer Zeile die zugehörigen Variablen wieder die passenden Startwerte für die nächste Etikettenzeile erhalten. 9

Abbildung 1.6 Formulardarstellung (komplett) Legen Sie diesen Programm-Knoten neu an. Den Inhalt zeigt Abbildung 1.7. Dass nach der Ausgabe einer kompletten Zeile der Spaltenzähler COUNT_COL wieder auf Null zurückgesetzt werden muss, ist sicher sofort einzusehen. Abbildung 1.7 Programm-Knoten zum Rücksetzen der Variablen Warum jedoch sollten zusätzlich auch die Arbeitsbereiche gelöscht werden, die bei jeder Zuweisung ohnehin immer überschrieben werden? Fast immer sollte man sagen, denn im Fall einer unvollständigen Etikettenzeile am Ende der Ausgabe ist gerade das nicht 10

der Fall. Folglich würde sich ggf. dort bei einer ungenutzten Zelle die vorher aktuelle Adresse wiederholen. 1.4 Ergebnis der Formularausgabe Überprüfen und aktivieren Sie das Formular. Testen Sie die Ausgabe mit Hilfe des Rahmenprogramms. Sorgen Sie dafür, dass mindestens zwei Etikettenzeilen bedruckt werden. Nach der bisherigen Vorarbeit sollte die Ausgabe zu einem ähnlichen Ergebnis führen, wie in Abbildung 1.8 dargestellt ist. Überprüfen Sie Ihre Ausgabe u.a. auch mit einer Anzahl von Adressen, welche die letzte Zeile nicht vollständig füllen, wie z.b. in der hier gezeigten Abbildung mit fünf Adressen. Abbildung 1.8 Ergebnis der Etikettenausgabe Wie Sie sehen, werden die Adressen bei dem aktuellen Entwicklungsstand immer in der linken oberen Ecke einer Zelle ausgegeben. Für den realen Betrieb werden Sie noch Anpassungen an die echten Etiketten vornehmen müssen. Das kann auf unterschiedlichen Wegen erfolgen: 11

Ändern Sie die Koordinaten des Hauptfensters. Dies bewirkt ein Verschieben der gesamten Schablone. Richten Sie die Text-Knoten ADR_1 bis ADR_3 über das Absatzformat oder über zusätzliche Leerzeilen auf die Erfordernisse aus. Natürlich bestehen noch weitere Optimierungsmöglichkeiten: Momentan ist im Rahmenprogramm der Name des Funktionsbausteins noch fest verbunden. Verwenden Sie auch hier wieder die Namensfindung über den Baustein SSF_FUNCTION_MODULE_NAME. Eventuell wollen Sie mit Start des Programms auch zusätzlich den Namen des Etikettenformulars vorgeben. Dann definieren Sie eine entsprechende zusätzliche Variable für den Namen und erweitern Sie die Abfrage des Anwenders über die PARAMETERS- Anweisungen. Es funktioniert ebenso wie beim Namen des Formulars zur Flugrechnung. 1.5 Vorschlag für den Ausbau des Formulars Es ist vorstellbar, dass über ein einziges Formular auch unterschiedliche Typen von Etikettenträgern versorgt werden. Hier die wichtigsten Schritte: Sie benötigen zunächst einen zusätzlichen Steuerungsparameter, der z.b. ETI_TYPE heißen könnte und vorgibt, welcher Zeilentyp verwendet werden soll. Inhalt könnte eine Zeichenfolge "4x9" oder "3x7" sein, wobei das erste Zeichen die Anzahl der Spalten wiedergeben soll, das letzte die Anzahl der Zeilen. Die Angabe der Zeilen ist eigentlich nicht erforderlich, denn sie ergibt sich eindeutig aus dem Papierformat und der Zeilenhöhe innerhalb der Schablone. Den Parameter ETI_TYPE sollte der Anwender natürlich vorgeben können (als Auswahl zum Etikettenträger). Sie müssen ihn also in die Bildschirmabfrage des Rahmenprogramms und in die Formularschnittstelle einbinden. Erzeugen Sie im Formular hinter dem bisherigen Schablone-Knoten DEF_LINE weitere Schablonen, die jeweils einem Typ des Etikettenträgers entsprechen sollen. Am einfachsten geschieht dies als Kopie der bisherigen Schablone mit anschließender Überarbeitung. Dabei werden auch immer wieder neue Text-Knoten für die Ausgabe der Adressen angelegt, was auf den ersten Blick 12

recht redundant aussieht. Da aber bei unterschiedlichen Etiketten üblicherweise auch verschiedene Textformatierungen erforderlich sind, ist eine getrennte Anlage der Text-Knoten doch wieder sinnvoll. Versehen Sie jede Schablone mit einer zusätzlichen Bedingung, die den Parameter ETI_TYPE der Schnittstelle berücksichtigt. Vom Typ der Etiketten hängt natürlich auch die Zahl der Spalten ab, die jeweils zu bedrucken sind. Wir sind bisher von einer festen Spaltenzahl "3" ausgegangen. Ersetzen Sie die feste Zuweisung zu NUMBER_COL bei den globalen Definitionen durch eine Abfrage zum Inhalt des Etikettentyps, z.b. über ETI_TYPE(1). Wenn Sie mehr als drei Spalten verwenden, müssen Sie aber auch entsprechend mehr Arbeitsbereiche für die Adressen anlegen und im Programm-Knoten SET_VAR über weitere WHEN-Abfragen zuweisen. 13