SAPscript und weiter?

Hallo!

Nun ist es mir gelungen doch noch ein Layout im SE71 mit dem FormPainter zu basteln, aber wie fülle ich die Felder mit Variablen Daten? Oder wie starte ich dieses Script mit einem FB und befülle die Daten bevor ich es drucke???

Ist die SAP AG so schlecht, dass sie nicht in der Lage ist mal ein einfaches Tutorial in ihr Netz zu stellen? Oder sind die so habgierig auf ihre Schulungsprovisionen?

Gruß
catmad

Hallo,

hier ein Auszug aus der SAP-Bibliothek:

*****************************************************************

Schema eines Druckprogramms

In der Praxis liefern R/3-Anwendungen (FI, CO, MM etc.) standardisierte Formulare und Druckprogramme aus, die gegebenenfalls vom Kunden auf die eigenen Bedürfnisse angepaßt werden. Erst das enge Zusammenspiel zwischen Druckprogramm und vorgegebenem Formular erlaubt den Ausdruck von Formularen wie z.B. Bestellungen oder Rechnungen.

Charakteristisch und entscheidend für die Anwendung von SAPscript ist, daß Formulare neben den Layoutinformationen auch Texte mit zu ersetzenden Variablen beinhalten. Diese werden erst nach der Formatierung ersetzt und erscheinen dann auf dem Ausdruck. Zuständig für die Datenbeschaffung aus dem R/3-System und die Steuerlogik der Ausgabe ist das Druckprogramm.

Damit ist es in SAPscript-Formularen möglich, die Logik der Datenbeschaffung von der Gestaltung der Ausgabe (Layout) zu trennen. Das Druckprogramm ist dafür verantwortlich, die benötigten Daten zu besorgen bzw. zu berechnen sowie deren Ausgabereihenfolge festzulegen. Die Aufbereitung und die Positionierung dieser Daten auf einer Druckseite übernimmt das SAPscript-Formular. Damit können Sie Änderungen an der Aufbereitung im Formular vornehmen, ohne das Druckprogramm explizit ändern zu müssen.

Zur Laufzeit des Druckprogramms kann SAPscript automatisch auf Daten zugreifen, die im steuernden Programm definiert sind. Genauer gesagt: SAPscript holt sich die Werte direkt aus den Datenfeldern dieses Programms.

Beispiel eines Druckprogramms

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.

*****************************************************************

Falls Du noch mehr Infos brauchst, such in der SAP-Bibliothek unter „SAPscript AND Druckprogramm“.

Gruß, Christoph

SUPER!!!

Vielen vielen Dank!