SAPScript
explained in detail .
SAPScript Graphics
Transaction Codes Used
SE71 : Form Painter
SE72 : Style Maintenance
SE73 : Font Maintenance
SE78 : Sapscript Graphics Management
RSTXLDMC : Import graphics as text .
SYMBOLS
Symbols are place holder for values in the forms and are filled during
print formatting e.g. &DATE& ,&KNA1-NAME& . They are case insensitive
and are surrounded by &.
There are 3 types of symbols
1) System Symbols
System symbols are system maintained and their value is provided
by the system. These are as follow:
DATE
TIME
HOURS
MINUTES
SECONDS
PAGE
NEXTPAGE
DAY
MONTH
YEAR
NAME_OF_DAY
SPACE
DEVICE
2)Standard Symbols
Standard sumbols are user maintained by using transaction SM30 .These symbols are
stored in table TTDG e.g &MFG& which
stands for ' Your's Faithfully ' .
3)Program Symbols
Program symbols are placeholder for database fields and global program symbols in the
print program e.g &KNA1-NAME1& here the table
KNA1 has alreadty been declared in the print program using TABLES statement.
CONTROL COMMANDS
Control Commands are used to change text output , these are used with
the format key /: in the format column
e.g. INCLUDE MYTEXT OBJECT TEXT ID ST
These are:
INCLUDE
DEFINE
ADDRESS ... ENDADDRESS
PROTECT ... ENDPROTECT
NEW-PAGE
IF ... ENDIF
CASE .... ENDCASE
PERFORM ... USING
INCLUDE name OBJECT name ID name PARAGRAPH name LANGUAGE name
Include command is used to include standard text in a form.the text
should be already defined by using transaction SO10.
Here name is the name of text
ID is used to classify text e.g. SDVD (SD related text) , ST (Standard text)
OBJECT is used to specify type of object it an be TEXT , DOKU
LANGUAGE is used to specify language like EN ,if ommited than logon
language is used
PARAGRAPH is used to specify the paragraph like C
e.g. /:INCLUDE mytext OBJECT TEXT ID ST LANGUAGE EN
Here the standard text created in SO10 with name mytext is
included in the form in language EN (English)
DEFINE
Define is used to define a symbol in the form i.e defining a variable and
giving it a value . e.g. /:DEFINE &NAME& = 'Niraj Visnoi'
/:DEFINE &SPECIAL& = ' 14 TH APRIL'
ADDRESS ... ENDADDRESS
ADDRESS and ENDADDRESS is used to specify the address which will
be formatted according to the target country i.e the recipient country.
e.g. /:ADDRESS sales PARAGRAPH C
/:NAME &KNA1-NAME1&
/:STREET &KNA1-STRAS&
/:POSTCODE &KNA1-PSTLZ&
/:CITY &KNA1-ORT01&
/:COUNTRY &KNA1-LAND1&
/:FROMCOUNTRY 'DE'
/:ENDADDRESS
PROTECT .... ENDPROTECT
The text which we want to be printed without any break i.e printed completely in a
page is
inserted between PROTECT and ENDPROTECT . If sapscript finds that the text
cannot be printed on that page completely a implicit page break occurs and the text is
printed on the next page
NEW-PAGE
NEW-PAGE is used to insert a page break ,it can be conditional if used between
IF..ENDIF
e.g. /:IF &KNA1-NAME1& = 'NIRAJ'
/:NEW-PAGE
/:ENDIF
IF ... ENDIF
IF ... ENDIF is used in the same way as in ABAP , a condition is tested and if it is
true
all the statements between IF and ELSE are executed otherwise statements between
ELSE
and ENDIF are executed, ELSE is optioonal.
/:IF condition
..
..
/:ENDIF
or
/:IF condition
..
ELSE
..
/:ENDIF
CASE ... ENDCASE
It si similar to multiple IF.. ENDIF's but is much cleaner.
/:CASE condition
/:WHEN value1
...
/:WHEN value2
...
...
/:ENDCASE
TIME/DATE/COUNTRY Formats
These commands are used for specifying the format of date and
time and setting the default country.
/:SET DATE MASK = 'MM.DD.YYYY'
/:SET TIME MASK = 'HH:MM'
/:SET COUNTRY 'DN'
PERFORM ... IN PROGRAM .... USING.. CHANGING ..
ENDPERFORM
To call ABAP subroutines from within a form we use the
PERFORM... IN PROGRAM ... statement , the advantage of
using it is that the print program is not required to cahnge and we
can get the new data from the subroutine which is placed in a Z
report . To pass and get the values from th subroutine the
parameters are passed which are of type structure ITCSY.
e.g. /:PERFORM get_date IN PROGRAM zreport
/:USING &SALESORDER&
/:CHANGING &S_DATE&
/:ENDPERFORM
The date &S_DATE& ....
The ABAP Code would be
REPORT zreport.
TABLES ztab.
FORM get_date TABLES in_tab STRUCTURE ITCSY out_tab
STRUCTURE ITCSY .
READ TABLE in_tab INDEX 1.
SELECT some_date FROM ztab WHERE salesorder = in_tab-value.
IF sy-subrc EQ 0.
READ TABLE out-tab INDEX 1.
MOVE ztab-somedate TO out_tab-value
MODIFY out_tab INDEX 1.
ENDIF.
ENDFORM.
In the above code USING is used to pass the value to the
subroutine while changing is used to recieve the value from th
subroutine ,for further paramters we can use either USING or
CHANGING .
In the subroutine the type of paramter is always an internal table of
type ITCSY irrespective of the value passed.The VALUE field
of the internal table is used to fill and recieve the values .