on 10-22-2007 8:17 AM
hello all,
can any one tell me the various methods of calling a smartform in the driver program...in detail
thank you.
Hi Sandeep,
<b>Integrating the Smart Form into the Application</b>
You trigger form printing by calling only two function modules. The first module uses the name of the form to determine the name of the generated function module. Then you call this module.
The name of the generated function module is unique only within one system.
Therefore, you must always call the function module first that uses the form name to determine the current name of the generated module.
Prerequisites
You defined the form interface in your form and activated the form.
Procedure
1. In the Form Builder call the function Environment -> Name of the function module and use
STRG-Y and STRG-C to copy its name.
2. In the data retrieval program define a variable of type rs281_fnam for the name of the generated function module:
data fm_name type rs38l_fnam.
You can call the Smart Form in other parts of the application program as well.
However, in this case you must make sure that the system can access the data to be passed from that place. We recommend to encapsulate the data retrieval in a
function module as well.
3. If desired, you can call the function module SSF_FIELD_LIST. It returns a list of the form parameters actually used in the form. You can use this information to limit data selection, if necessary.
4. Call function module SSF_FUNCTION_MODULE_NAME. It returns the name of the generated
function module:
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = '<form name>'
IMPORTING
FM_NAME = fm_name
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
<error handling>
ENDIF.
5. Call the generated function module. To do this, use the Insert statement function for CALL FUNCTION in the ABAP Editor and use the name you copied in step 1. (to avoid having to copy all interface parameters manually). Then replace the function module name with the
variable fm_name defined in step 2.
CALL FUNCTION fm_name
EXPORTING
ARCHIVE_INDEX =
ARCHIVE_PARAMETERS =
CONTROL_PARAMETERS =
MAIL_APPL_OBJ =
MAIL_RECIPIENT =
MAIL_SENDER =
OUTPUT_OPTIONS =
USER_SETTINGS = 'X'
G_CARRID = <variable>
G_CONNID = <variable>
G_FLDATE = <variable>
IMPORTING
DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO =
JOB_OUTPUT_OPTIONS =
TABLES
GT_SBOOK = <internal table>
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
<error handling>
ENDIF.
In this example, three variables and an internal table are passed. The parameters
G_CARRID, G_CONNID, G_FLDATA, and GT_SBOOK have been defined before in the form interface.
6. In the interface pass all data you want to transfer to the form.
Result
The generated function module processes the form logic defined in the Smart Form. Its output is sent to the printer spool for processing.
As long as you do not change the form interface, you can make any changes to the form. When you activate it again, the system generates the current version of the form as soon as you call the function module. Only if you change the form interface, you must adapt the interface in the data retrieval program.
i think it will useful for u.
Reward points if useful.
Thanks,
Usha
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi,
1)first after activating the smartform you can get a function module if you execute that smartforms copy that function module and go to the driver programs
2)Select the pattern and provide the function module and go with enter now you can pass all the input parameters and output parameters.
3)now you can activate your driver program and execute it displays the output
ii)
1)first after activating the smartform you can get a function module if you execute that smartforms copy that function module and go to the driver programs
2)Select the pattern and provide the function module and go with enter now you can pass all the input parameters and output parameters.
3)now remove the function module name after the call function and replace with a variable like this.
DATA: G_FMNAME TYPE RS38L_FNAM.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = P_SMNAME
IMPORTING
FM_NAME = G_FMNAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE E001.
ENDIF.
CALL FUNCTION G_FMNAME
TABLES
I_EBAN = ITAB
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'E' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Thanks,
Nethaji.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi sandeep,
We can call smartform in driver program using the FM <b>'SSF_FUNCTION_MODULE_NAME'</b>
In this pass the smartform name and after this just call the function module which gets generated by activating the smartform.
Reward points if helpful.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
94 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.