Sie sind auf Seite 1von 11

SAPscript

Einführung
Autor: Jürgen Menges

jmen@jmen-web.de

Datum: 24.08.2005

Inhalt:

SAPscript ................................................................................................................................................. 1
Einführung................................................................................................................................................ 2
Übersicht Transaktionscodes................................................................................................................... 2
Elemente eine SAPscript Dokumentes.................................................................................................... 2
Anlegen und Ändern ................................................................................................................................ 3
Anlegen eines SAPscript Dokumentes................................................................................................ 3
Anlegen einer Seite : ........................................................................................................................... 3
Ändern der Seite.................................................................................................................................. 3
Formatspalte........................................................................................................................................ 4
Textzeile .............................................................................................................................................. 5
Kommandos ............................................................................................................................................. 6
Fenster, Linien, Formen........................................................................................................................... 7
Zeichenformatierungen ............................................................................................................................ 7
Verwendung von Grafiken in SAPscript................................................................................................... 7
Import/Export SAPscript -- PC Datei........................................................................................................ 8
Übersetzungen von SAPscript ................................................................................................................. 8
Beispiel..................................................................................................................................................... 8
Layout Set............................................................................................................................................ 8
ABAP Report ..................................................................................................................................... 10

1
Einführung
SAPscript wird verwendet, um Daten aus einem ABAP-Programm in Dokumente in einem
vordefinierten Format zu übergeben. Im Standard von R/3 sind sehr viele Dokumente wie z.B.
Rechnungen, Mahnungen, Bestellungen, etc. vordefiniert, denen das Druckprogramm bereits zu
Grunde liegt.

Übersicht Transaktionscodes
SE63 - SAPscript Übersetzung
SE71 - Form Painter
SE72 - Stilpflege
SE78 - Sapscript Grafikverwaltung
SO10 - Standardtext

Elemente eine SAPscript Dokumentes


• Formularname
Frei wählbarerer Name gemäss des Namesraumes, d.h. in den meisten Fällen beginnt der
Name mit Z oder Y.

• Sprache
SAPScript Formulare sind sprachabhängig, d.h. sie müssen in jeder zu verwendenden
Sprache separat gepflegt werden.

• Kopf
Hier werden generelle Daten erfasst und dargestellt, wie Bedeutung des Formulars
(Mahnformular Buchungskreis 1010)

• Seiten
eine Übersicht der unterschiedlichen Seiten. In der Regel werden zwei verschiedene Seiten
benutzt, eine „1. Seite“ [FIRST] und eine Folgeseite [NEXT], wobei die Seite FIRST dem
Modus START, NEXT dem Modus INC zugewiesen wird.

• Fenster
Hier werden die einzelnen Fenster der Seiten definiert. Mit Einstellungen Formpainter
Grafischer Formpainter lassen sich die Fenster grafisch leicht anordnen. Ebenfalls lassen sich
hier die Attribute der Seiten anlegen

• Seitenfenster
Die unter „Fenster“ definierten Fenster werden hier mit Inhalt gefüllt. Dieser kann aus Text,
Includes, Variablen bestehen.

• Absatzformate
Die im Texteditor verfügbaren werden hier eingestellt, und besitzen Attribute wie z.B. Schriftart
und –grösse, Ausrichtung, Tabulatoren.

• Zeichenformate
Zeichenformate bezeichnen die Schriftattibute wie kursiv, fett, unterstrichen, etc.

• Dokumentation
optionale Dokumentation, von der man bei selbsterstellten Dokumenten jedoch Gebrauch
machen sollte.

2
Anlegen und Ändern
Anlegen eines SAPscript Dokumentes
- Transktion SE71
- Formular ZTEST [anlegen]
- Bedeutung TESTDokument [sichern]
- Entwicklungsklasse $TMP [sichern] [F3]

Anlegen einer Seite :


Teilobjekte: Seiten – ändern
Standardattribute – Seite MAIN Bedeutung Hauptfenster [sichern] [F3]

Ändern der Seite


Teilobjekte: Fenster – ändern
Auswahl des Fensters MAIN per Doppelklick – Klick auf Textelemente

Nun erscheint der Texteditor:

Auf der linken Seite befindet sich die Formatspalte, auf der rechten die Textzeile. Die folgende
Auflistung stammt aus der Dokumentation der beiden Felder (F1-Hilfe)

3
Formatspalte

Die verfügbaren Formate der Formatspalte lassen sich über die F4 Hilfe darstellen, es kann hier in
unterschieden werden zwischen Formatanweisungen und Steueranweisungen. Einige finden sich
hier:

* Defaultabsatz
Für die Ausgabeformatierung des nachfolgenden Absatzes werden die Aufbereitungsvorschriften
angewendet, die dem Absatz entsprechen, der im zugordneten Stil bzw. Formular als Defaultabsatz
festgelegt wurde.

/ Neue Zeile
Der nachfolgende Text wird bei der Ausgabeaufbereitung in eine neue Zeile geschrieben. Die
Formatierungseigenschaften des letzten Absatzformates bleiben dabei erhalten.

Blank/Leer
Weiterführender Text

/E
Textelement

/: Steuerkommando
Die in der eigentlichen Textzeile stehenden Zeichen werden nicht als Text ausgegeben sondern als
Steuerkommando aufgefaßt. Sie werden erst bei der Ausgabeaufbereitung des Textes interpretiert und
ausgeführt. Steuerkommandos müssen immer komplett in eine Zeile passen. Folgezeilen sind nicht
erlaubt.

/* Kommentarzeile
Diese Zeile wird bei der Ausgabeaufbereitung des Textes nicht berücksichtigt.

= Langzeile
Diese Zeile wird nicht der Zeilenformatierung im Zeileneditor unterworfen. Weiterhin wird der in dieser
Zeile stehende Text direkt an das zuletzt ausgegebene Zeichen der vorhergehenden Textzeile
angehängt. Falls dies nicht gewünscht ist, muß am Anfang der Langzeile mindestens ein Leerzeichen
stehen.

/= wie Langzeile
Jedoch wird bei der Ausgabeaufbereitung der nachfolgende Text in eine neue Zeile gestellt.

( Roh-Zeile
Die nachfolgende Editorzeile wird bei der Ausgabeaufbereitung nicht vom Formularprozessor
(Composer) interpretiert. Dies bedeutet, daß eventuell in dieser Zeile enthaltene Zeichenformate,
Symbole, Tabulatorzeichen, Maskierungszeichen oder Hypertextverweise nicht ausgewertet werden und
damit unverändert zum Ausgabegerät weitergereicht werden. Weiterhin wird der in dieser Zeile stehende
Text direkt an das zuletzt ausgegebene Zeichen der vorhergehenden Textzeile angehängt. Falls dies
nicht gewünscht ist, muß am Anfang der Langzeile mindestens ein Leerzeichen stehen.

/( wie Rohzeile
Jedoch wird bei der Ausgabeaufbereitung der nachfolgende Text in eine neue Zeile gestellt.

>x Fixzeile
Die Zeile ist im Zeileneditor nicht eingabebereit. Außerdem kann sie nicht gelöscht oder getrennt
werden. Fixzeilen können Sie nur per Programm erzeugen. Damit können Sie einem Text z.B. eine feste
Struktur mitgeben, die der Anwender nicht verändern kann.
Für das 'x' können Sie eine beliebige Ziffer bzw. einen beliebigen Buchstaben verwenden. Damit können
Sie z.B. unterschiedliche Zwischenüberschriften auseinanderhalten. Kommen mehrere Fixzeilen mit dem
gleichen Kennzeichen direkt hintereinander vor, so werden sie vom Zeileneditor als Einheit betrachtet.
Zwischen diese Zeilen kann im Editor nichts eingefügt werden.
Die Druckaufbereitung interpretiert bei Fixzeilen die ersten beiden Zeichen des Zeileninhalts als
Absatzformat für die Formatierung, d.h. hier müssen Sie das gewünschte Absatzformat oder
Leerzeichen eintragen.

4
Textzeile

Der Textzeilenbereich im SAPscript-Texteditor beginnt mit dem Zeilenlineal. In allen nachfolgenden


eingabebereiten Zeilen können Sie Ihren Text erfassen.
Sie strukturieren Ihren Text mit den Funktionstasten Absatz, Zeile und Seite. Der zugehörige Formatschlüssel
erscheint dabei neben der Textzeile in der zweistelligen Formatspalte.
Fließtextzeilen (Zeilen mit leerer Formatspalte) werden nach der Funktion "Formatieren" bzw. jedem anderen
Kommando auf die Editor-Bildschirmbreite umgebrochen und Wörter, die vorher evtl. am Zeilenende getrennt
waren, zusammengefügt.
Am Textende werden automatisch Fließtextzeilen bereitgestellt. Innerhalb des Textes erhalten Sie über die
Funktion "Einfügen" einen Zeilenbereich auf dem die oben beschriebene Fließtexteingabe ermöglicht wird. Nach
dem Betätigen der Funktion "Einfügen beenden" wird dann automatisch die Zeilenausrichtung durchgeführt und in
den Normalmodus zurückverzweigt.
Voraussetzung für die Fließtexteingabe, d.h. das Weiterspringen Ihres Eingabecursors am Zeilenende in die
nächste Zeile, ist die Einstellung "Auto TAB" in Ihren SAPGUI-Einstellungsparametern und eine sichtbare
Eingabebreite von mindestens 72 Spalten (d.h. evtl. kleineren Font für Ihr SAPGUI wählen).
Im Textbereich haben die folgenden Sonderzeichen eine Steuerungsfunktion, d.h. sie werden nicht ausgegeben,
sondern zur Ausgabeaufbereitung interpretiert:

Zeichenformate
<NN>...</>
Zeichenfolgen, die durch einen Zeichenformatschlüssel <NN> eingeleitet werden, werden bei der
Ausgabeaufbereitung so ausgegeben wie im Zeichenfomat definiert.
Die möglichen Formatschlüssel und ihre jeweilige Bedeutung werden in Stilen oder in Formularen
festgelegt. Wird einem Textbaustein ein Stil bzw. Formular zugeordnet, so können Sie die dort
aufgeführten Zeichenformate für die Gestaltung ihres Textes verwenden. Vom Anwender definierbare
Formatschlüssel können aus einem oder 2 Zeichen bestehen. Zugelassen sind nur die Buchstaben A bis
Z und die Ziffern 0 bis 9. Das Zeichenformat muß auf jeden Fall mit einem Buchstaben beginnen.
Das Ende des Zeichenformates wird durch </> festgelegt.

Tabulatorzeichen
,,
Zwei normale Kommas direkt hintereinander bewirken bei der Ausgabeaufbereitung einen
Tabulatorsprung. Die Tabulatorposition ergibt sich dabei aus dem aktuellen Absatzschlüssel der
Formatspalte. Falls im Absatz keine Tabulatorposition definiert ist, gilt der Tabulatorstopp-Abstand aus
der Formularkopfinformation.

Symbole
&N...N&
Symbolnamen werden durch & geklammert. Sie dürfen keine Leerzeichen enthalten. Bei der
Ausgabeaufbereitung werden Symbole durch Ihren aktuell gültigen Wert ersetzt.
SAPscript kennt 4 Arten von Symbolen: Systemsymbole, Standardsymbole, Programmsymbole und
Textsymbole. Sie unterscheiden sich im wesentlichen durch die Quelle ihrer Werte. Die Werte von
Systemsymbolen sellt SAPscript bereit. Standardsymbole werden mit ihren Werten in der Tabelle
TTDTG definiert. Bei Programmsymbolen handelt es sich um Daten, die das aktuell laufende
Ausgabeprogramm zur Verfügung stellt. Textsymbole schließlich erhalten Ihren Wert über
Steuerkommandos im Text selbst oder dynamisch über die Einbinden-Funktion im Texteditor.

Maskieren von Sonderzeichen


<(>...<)>
Zeichenfolgen, die durch <(> eingeleitet werden, heben die Wirkung von Sonderzeichen auf, so daß
diese, wie alle anderen Zeichen auch normal ausgegeben werden können.
Das Ende der maskierten Zeichenfolge wird durch <)> festgelegt.

Hypertextverweise
<NN:....>...</>
Hypertextverweise werden wie Zeichenfolgen durch einen Zeichenformatschlüssel NN eingeleitet. Nach
dem drauffolgenden Doppelpunkt wird der Hypertextschlüssel eines Hypertextbausteins angegeben.
Anhand dieses Schlüssels kann dann bei einer Hypertextanzeige auf einem Bildschirmausgabegerät das
nächste Hypertextkapitel bei Auswahl durch einen Endbenutzer angezeigt werden.

5
Kommandos

Command Use

New-page <page Prints the text following this command on a new page (when a
name> page name is specified then that page is taken as the next
page)

Protect ….. This acts like a conditional page break. Putting the text within
Endprotect this command prevents the breaking of the text across multiple
pages. If there is not enough space for the entire paragraph to
be printed in the space remaining on the page, then the entire
paragraph is printed on the next page

Box <xpos> The BOX command draws a box as per the specifications. The
<ypos> <width> x y co-ordinates are for the upper left corner relative to the
<height> <frame> values in the position command.
<intensity>
POSITION command is used to set the x y co-ordinates with
Position <xorigin> respect to the start position of the window.
<yorigin>
<window> <page> SIZE command is used to specify the size of the box that we
need to draw.
Size <width>
<height> Varying these parameters also helps to draw a line instead of a
<window> <page> box.

IF ….. END IF This allows the conditional printing of the text on the output
document. The various conditional operators that can be used
are as follows

= EQ Equal to

< LT Less than

> GT Greater than

<= LE Less than or equal to

>= GE greater than or equal to

<> NE not equal to

The logical operators that can be used are as follows

NOT, AND, OR

6
Fenster, Linien, Formen
Mit den Befehlen BOX, POSITION und SIZE kann ein Rechteck gezeichnet werden, die Formatierung
kann in drei Schritten erfolgen:

/: POSITION XORIGIN '11.21' YORIGIN '5.31' MM


/: SIZE HEIGHT '2' MM WIDTH '76' MM
/: BOX FRAME 10 TW INTENSITY 10

oder in einem:

/: BOX XPOS '11.21' MM YPOS '5.31' MM HEIGHT '10' MM WIDTH '20' MM


INTENSITY 10 FRAME 0 TW

Eine relative Positionierung einer Box kann mittels POSITION WINDOW erzeugt werden:

/: POSITION WINDOW
/: POSITION XORIGIN '+5' MM YORIGIN '+10' MM

Eine nachträgliche Verschiebung der Box erhält man mit:

     
    
  

Eine Linie erhält man demzufolge durch das Zeichnen einer Box mit einer Höhe von ‚0’:

/: SIZE HEIGHT '0' MM WIDTH '200' MM


/: BOX FRAME 10 TW XPOS '11.21' MM YPOS '14.81' MM INTENSITY 100

Zeichenformatierungen
Innerhalb einer Textzeile können durchaus mehrere Zeichenformate verwendet werden:

/ <U>Unterstrichen</> <B>Fett</>

Verwendung von Grafiken in SAPscript


Aufruf im Quelltext:

/: INCLUCE Z_MEIN_BILD OBJECT TEXT ID ST LANGUAGE DE

Hierzu muss das Bild jedoch im R/3 vorhanden sein

1. das Bild muss als *tif vorliegen


2. Ausführen des Reportes RSTXLDMC über die SA38
3. Dateiname und Farbe wählen
4. TextID von ZHEX-MACRO-* in ZHEX-MACRO-Z_MEIN_BILD ändern
5. Ausführen des Reportes mit F8

Alternative Vorgehensweise:

/: BITMAP 'LOGO_WEBDE' OBJECT GRAPHICS ID BMAP TYPE BMON

Hierfür wird die Grafikdatei über die Transaktion SE78 Ablage auf Dokumentserver GRAPHICS
BMAP importiert

7
Import/Export SAPscript -- PC Datei
Zur lokalen Sicherung von SAPscript Layouts können die Dokumente mittels dem Report RSTXSCRP
von / auf die lokale Workstation übertragen werden

Übersetzungen von SAPscript


1. Transaktion SE63 Übersetzung Langtexte SAPscript Formulare
2. Teilobjekte Bedeutungen
3. Teilobjekte Fenstertexte und Dokumentation

Beispiel
Layout Set
Layout set Z_TESTSCRIPT
Description Test SAP script

Standard attributes
First page FIRST
Default paragraph P1
Tab-stop 1.00 CH
Page format DINA4
Orientation Landscape
Lines/inch 6.00
Characters/inch 10.00

Font attributes
Font family COURIER
Font size 12.0 Point
Bold No
Italic No
Underlined No

Characters Attributes
B Character String Bold
Standard attributes
Marker No
Font attributes
Bold Yes

Paragraphs Attributes
P1 Default Paragraph
Standard attributes
Line spacing 1.00 LN
Left margin 1.00 CM
Alignment Left-aligned
Font attributes
Font family TIMES
Font size 12.0 Point

P2 Header Paragraph
Standard attributes
Line spacing 1.00 LN
Left margin 4.50 CM
Alignment Left-aligned
Font attributes
Font family TIMES
Font size 18.0 Point

8
Bold Yes

P3 Undelined paragraph
Standard attributes
Line spacing 1.00 LN
Alignment Left-aligned
Font attributes
Font family TIMES
Font size 12.0 Point
Underlined Yes

Windows Attributes
MAIN Main window
Window type MAIN
HEADER Main window
Window type CONSTANT
FOOTER Main window
Window type CONSTANT

Pages Attributes
FIRST First Page
Standard attributes
Next page FIRST
Page counter
Mode START
Numbering type Arabic numerals
Page window
HEADER Left margin 00.00 CM
Upper margin 00.00 CM
Window width 20.00 CM
Window height 04.00 CM
MAIN Left margin 00.00 CM
Upper margin 05.00 CM
Window width 20.00 CM
Window height 20.00 CM
FOOTER Left margin 00.00 CM
Upper margin 25.00 CM
Window width 20.00 CM
Window height 04.00 CM

Text elements for following windows:


HEADER

Element HEADER
/: POSITION XORIGIN 2 CM YORIGIN '-0.5 CM'
/: BOX XPOS 1 CM YPOS 1 CM WIDTH 18 CM HEIGHT 1 CM FRAME 10 TW INTENSITY 10
/
/
/
P2 ,,<B>TEST PURCHASE ORDER</>
/
/

MAIN

Element MAIN
P1 <B>Customer/Supplier:</>,,&KNA1-NAME1&
/
P1 <B>PO No:</>,,&EKPO-EBELN&
/
P1 <B>Part No:</>,,&MAKT-MATNR&
/
P1 <B>Description:</>,,&MAKT-MAKTX&
/
P1 <B>Quantity:,,</>&EKPO-MENGE&
/
P1 <B>Sign:</>&uline(81)&
/
P1 <B>Date:</>&EKKO-AEDAT&

9
FOOTER

Element FOOTER
/: POSITION XORIGIN 2 CM YORIGIN '-0.5 CM'
/: BOX XPOS 1 CM YPOS 1 CM WIDTH 18 CM HEIGHT 1 CM FRAME 10 TW INTENSITY 10
/
/
/
P2 ,,<B>PLEASE SIGN THE PO BEFORE DISPATCH</>
/
/

ABAP Report
REPORT ZPSAPSCRIPT.
TABLES : EKKO,
EKPO,
KNA1,
USR01,
MARA,
MAKT.

DATA : BEGIN OF ZOPTION.


INCLUDE STRUCTURE ITCPO.
DATA : END OF ZOPTION.

PARAMETERS: P_EBELN LIKE EKKO-EBELN,


P_EBELP LIKE EKPO-EBELP.

CLEAR EKPO.
SELECT SINGLE * FROM EKPO
WHERE EBELN = P_EBELN AND
EBELP = P_EBELP.

CLEAR KNA1.
SELECT SINGLE NAME1 FROM KNA1
INTO KNA1-NAME1
WHERE KUNNR = EKPO-KUNNR.

CLEAR MAKT.
SELECT SINGLE MAKTX FROM MAKT
INTO MAKT-MAKTX
WHERE MATNR = EKPO-MATNR AND
SPRAS = SY-LANGU.

CLEAR USR01.
SELECT SINGLE * FROM USR01 WHERE BNAME = SY-UNAME.

ZOPTION-TDDEST = USR01-SPLD. "Output device (printer)


ZOPTION-TDIMMED = 'X'. "Print immediately
ZOPTION-TDDELETE = 'X'. "Delete after printing
ZOPTION-TDPROGRAM = 'ZPQRPRNT'. "Program Name

CALL FUNCTION 'OPEN_FORM'


EXPORTING
APPLICATION = 'TX'
* ARCHIVE_INDEX = ' '
* ARCHIVE_PARAMS = ' '
DEVICE = 'PRINTER'
DIALOG = ' '
FORM = 'Z_TESTSCRIPT'
LANGUAGE = SY-LANGU
OPTIONS = ZOPTION
IMPORTING
LANGUAGE = SY-LANGU
EXCEPTIONS
OTHERS = 1.

10
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'HEADER'
* FUNCTION = 'SET'
* TYPE = 'BODY'
WINDOW = 'HEADER'
EXCEPTIONS
ELEMENT = 1.

CALL FUNCTION 'WRITE_FORM'


EXPORTING
ELEMENT = 'MAIN'
* FUNCTION = 'SET'
* TYPE = 'BODY'
WINDOW = 'MAIN'
EXCEPTIONS
ELEMENT = 1.

CALL FUNCTION 'WRITE_FORM'


EXPORTING
ELEMENT = 'FOOTER'
* FUNCTION = 'SET'
* TYPE = 'BODY'
WINDOW = 'FOOTER'
EXCEPTIONS
ELEMENT = 1.

CALL FUNCTION 'CLOSE_FORM'


EXCEPTIONS
UNOPENED = 1
OTHERS = 2.

11