Sie sind auf Seite 1von 3

SAP Smart Forms is introduced in SAP Basis Release 4.6C as the tool for creating and maintaining forms.

SAP Smart Forms allow you to execute simple modifications to the form and in the form logic by using
simple graphical tools; in 90% of all cases, this won't include any programming effort. Thus, a power user
without any programming knowledge can
configure forms with data from an SAP System for the relevant business processes.

To print a form, you need a program for data retrieval and a Smart Form that contains the entire from logic.
As data retrieval and form logic are separated, you must only adapt the Smart Form if changes to the form
logic are necessary. The application program passes the data via a function module interface to the Smart
Form. When activating the Smart Form, the system automatically generates a function module. At runtime,
the system processes this function module.

You can insert static and dynamic tables. This includes line feeds in individual table cells, triggering events
for table headings and subtotals, and sorting data before output.

You can check individual nodes as well as the entire form and find any existing errors in the tree structure.
The data flow analysis checks whether all fields (variables) have a defined value at the moment they are
displayed.

SAP Smart Forms allow you to include graphics, which you can display either as part of the form or as
background graphics. You use background graphics to copy the layout of an existing (scanned) form or to
lend forms a company-specific look. During printout, you can suppress the background graphic, if desired.

SAP Smart Forms also support postage optimizing.

Procedure:

1. Create a new smartform

Transaction code SMARTFORMS


Create new smartforms call ZTEST

2. Define looping process for internal table


Pages and windows

First Page -> Header Window (Cursor at First Page then click Edit -> Node -> Create)
Here, you can specify your title and page numbering
&SFSY-PAGE& (Page 1) of &SFSY-FORMPAGES(Z4.0)& (Total Page)

Main windows -> TABLE -> DATA

In the Loop section, tick Internal table and fill in

ITAB1 (table in ABAP SMARTFORM calling function) INTO ITAB2

3. To define the table in smartforms


Global settings :
Form interface
Variable name Type assignment Reference type
ITAB1 TYPE Table Structure

Global definitions
Variable name Type assignment Reference type
ITAB2 TYPE Table Structure
4. To display the data in the form
Make used of the Table Painter and declare the Line Type in Tabstrips Table
e.g. HD_GEN for printing header details,
IT_GEN for printing data details.
You have to specify the Line Type in your Text elements in the Tabstrips Output options.
Tick the New Line and specify the Line Type for outputting the data.
Declare your output fields in Text elements
Tabstrips - Output Options
For different fonts use this Style : IDWTCERTSTYLE
For Quantity or Amout you can used this variable &GS_ITAB-AMOUNT(12.2)&

5. Calling SMARTFORMS from your ABAP program

REPORT ZSMARTFORM.

Calling SMARTFORMS from your ABAP program.


Collect all the table data in your program, and pass once to SMARTFORMS
In SMARTFORMS
Declare your table type in :-
Global Settings -> Form Interface
Global Definintions -> Global Data
Main Window -> Table -> DATA

TABLES: MKPF.

DATA: FM_NAME TYPE RS38L_FNAM.

DATA: BEGIN OF INT_MKPF OCCURS 0.


INCLUDE STRUCTURE MKPF.
DATA: END OF INT_MKPF.

SELECT-OPTIONS S_MBLNR FOR MKPF-MBLNR MEMORY ID 001.

SELECT * FROM MKPF WHERE MBLNR IN S_MBLNR.


MOVE-CORRESPONDING MKPF TO INT_MKPF.
APPEND INT_MKPF.

ENDSELECT.

At the end of your program.


Passing data to SMARTFORMS

call function 'SSF_FUNCTION_MODULE_NAME'


exporting
formname = 'ZTEST'

VARIANT = ' '


DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
if sy-subrc 0.
WRITE: / 'ERROR 1'.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO


WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.

call function FM_NAME

EXPORTING
ARCHIVE_INDEX =
ARCHIVE_INDEX_TAB =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
GS_MKPF = INT_MKPF
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.

if sy-subrc 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.

Das könnte Ihnen auch gefallen