Im folgenden soll ein typisches Druckprogramm schematisch dargestellt werden. Dieses einfache Druckprogramm erstellt eine Rechnung mit firmenspezifischen Angaben, Datum, Seitennumerierung, Kundenadresse sowie allen Buchungen eines Kunden.
In der Entwicklungsklasse SAPBC460 befindet sich das ausführliche Beispielprogramm RSTXEXP1 (zugehöriges Formular S_EXAMPLE_1).
Schematisches Druckprogramm:
* (1) Get customer data TABLES: scustom, sbook, spfli. DATA: bookings like sbook... select * from... * (2) Open form CALL FUNCTION 'OPEN_FORM' EXPORTING DEVICE = 'PRINTER' FORM = 'S_EXAMPLE_1' DIALOG = 'X' EXCEPTIONS others = 1 * (3) Print table heading CALL FUNCTION 'WRITE_FORM' EXPORTING ELEMENT = 'HEADING' TYPE = 'TOP' WINDOW = 'MAIN' FUNCTION = 'SET' ... * (4) Print customer bookings LOOP AT bookings WHERE CALL FUNCTION 'WRITE_FORM' EXPORTING ELEMENT = 'BOOKING' TYPE = 'BODY' WINDOW = 'MAIN' ... ENDLOOP * (5) Close form CALL FUNCTION 'CLOSE_FORM' ...
In diesem Beispiel werden innerhalb des ersten Abschnitts die benötigten Daten von der Datenbank gelesen und in internen Tabellen (z.B. BOOKINGS) bereitgestellt. Im Abschnitt (2) wird der Funktionsbaustein OPEN_FORM aufgerufen, um die Druckausgabe des Formulars S_EXAMPLE_1 zu initialisieren. Danach gibt WRITE_FORM über das Textelement HEADING allgemeinen Text und die Spaltenüberschrift der Rechnung im Hauptfenster MAIN aus (Abschnitt (3)). Die Buchungen des Kunden aus Tabelle BOOKINGS werden in Abschnitt (4) in einer Schleife sukzessive ausgelesen und zwar über das Textelement BOOKING im MAIN-Fenster. Die Adresse des Kunden sowie firmenspezifische Angaben werden als Default-Textelemente in anderen Formularfenstern direkt ausgegeben. CLOSE_FORM beendet den Formulardruck schließlich.
Bei jedem Formulardruck müssen die Funktionsbausteine OPEN_FORM und CLOSE_FORM paarweise verwendet werden. Ein Druckprogramm kann auch mehrere Formulare drucken, die jeweils als getrennter Spoolauftrag verwaltet oder aber zu einem einzigen Druckauftrag zusammengefaßt werden. Im letzteren Fall müssen Sie die Funktionsbausteine START_FORM und END_FORM verwenden.
Weitere Informationen finden Sie unter OPEN_FORM und CLOSE_FORM sowie unter START_FORM und END_FORM.