Sap Script
Sap Script
Sap Script
Einführung
Autor: Jürgen Menges
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
• 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]
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
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.
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
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:
oder in einem:
Eine relative Positionierung einer Box kann mittels POSITION WINDOW erzeugt werden:
/: POSITION WINDOW
/: POSITION XORIGIN '+5' MM YORIGIN '+10' MM
Eine Linie erhält man demzufolge durch das Zeichnen einer Box mit einer Höhe von ‚0’:
Zeichenformatierungen
Innerhalb einer Textzeile können durchaus mehrere Zeichenformate verwendet werden:
/ <U>Unterstrichen</> <B>Fett</>
Alternative Vorgehensweise:
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
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
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.
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.
10
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'HEADER'
* FUNCTION = 'SET'
* TYPE = 'BODY'
WINDOW = 'HEADER'
EXCEPTIONS
ELEMENT = 1.
11