cancel
Showing results for 
Search instead for 
Did you mean: 

Sample custom Print programs for Smartforms

Former Member
0 Kudos

Hi All,

Can any one please send me some sample custom print programs for Smartforms

( not the standard ones ).Please send me this as I want to write print program for the Smartform. I do not know how to link the print program with a transaction in the Print Program. that is how to get the data from the transaction code when ever it is executed.

Thanx in advance

Raj.

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Vijay
Active Contributor
0 Kudos

hi

you can use standard print program and inhance it as per ur requirment using user exit.

for example:

                                                                                                    • [ VARIABLES]********

DATA : v_fm_name TYPE rs38l_fnam, " Function Module Name

v_sf_name TYPE ssfscreen-fname, " Smartform Name

v_time TYPE char5, " Time

v_date TYPE char10, " Date

p_date TYPE date, " Date

v_label TYPE char13. " Putaway Label

  • v_label TYPE rldrh-tratx. " Putaway Label

CONSTANTS :

c_putaway_label TYPE ssfscreen-fname VALUE 'ZMM1_STORAGE_PUTAWAY_LABEL',

c_put_label TYPE char13 VALUE 'PUTAWAY LABEL'.

************************************************[ INITIALIZATION ]****

REFRESH : it_rldrc,

it_vblkk,

it_vblkp,

it_rldrh,

it_rldri,

it_rldrp,

it_rldru,

it_t329p,

it_resb,

it_rlvek,

it_reftab,

it_lthu.

CLEAR v_sf_name .

  • Fetch the smart form name based on warehouse number

  • and movement type.

SELECT SINGLE formname FROM zmm1_print_forms

INTO v_sf_name WHERE lgnum = xrldrh-lgnum

AND bwart = xrldrh-bwart.

IF sy-subrc EQ 0.

  • Get the Date in desired format

p_date = xrldrh-bdatu.

CONCATENATE p_date0(2) p_date2(2) p_date+4(2)

INTO v_date SEPARATED BY '-'.

  • Get Time in desired format

CONCATENATE sy-uzeit0(2) ':' sy-uzeit2(2) INTO v_time.

  • Convert Putaway label to uppercase

v_label = xrldrh-tratx.

TRANSLATE v_label TO UPPER CASE. "#EC TRANSLANG

IF v_sf_name = c_putaway_label.

v_label = c_put_label.

ENDIF.

  • Function Module to generate the function module name

  • while executing the smartform.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = v_sf_name

IMPORTING

fm_name = v_fm_name

EXCEPTIONS

no_form = 1

no_function_module = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

CALL FUNCTION v_fm_name

EXPORTING

wa_rldri = xrldri

wa_rldrp = xrldrp

wa_rldru = xrldru

wa_t329p = xt329p

wa_resb = xresb

wa_rldrc = xrldrc

wa_vblkk = xvblkk

wa_vblkp = xvblkp

wa_rldrh = xrldrh

wa_rlvek = xrlvek

wa_reftab = xreftab

wa_lthu = xlthu

v_date = v_date

v_time = v_time

v_label = v_label

TABLES

it_rldri = it_rldri

it_rldrh = it_rldrh

it_rldrc = it_rldrc

it_vblkk = it_vblkk

it_vblkp = it_vblkp

it_rldrp = it_rldrp

it_rldru = it_rldru

it_t329p = it_t329p

it_resb = it_resb

it_rlvek = it_rlvek

it_reftab = it_reftab

it_lthu = it_lthu

EXCEPTIONS

formatting_error = 1

internal_error = 2

send_error = 3

user_canceled = 4

OTHERS = 5.

IF sy-subrc NE 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

this code is written inside the user exit for standard print program to call our smart form.

regards

vijay

<b>reward points if helpful</b>

Former Member
0 Kudos

Hi

REPORT ZSMARTFORM.

  • Calling SMARTFORMS from your ABAP program.

  • Collecting all the table data in your program, and pass once to SMARTFORMS

  • SMARTFORMS

  • Declare your table type in :-

  • Global Settings -> Form Interface

  • Global Definintions -> Global Data

  • Main Window -> Table -> DATA

  • Written by : SAP Hints and Tips on Configuration and ABAP/4 Programming

  • http://sapr3.tripod.com

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 = 'ZSMARTFORM'

  • 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.

Smartform

you can check this link here you can see the steps and you can do it the same by looking at it..

http://smoschid.tripod.com/How_to_do_things_in_SAP/How_To_Build_SMARTFORMS/How_To_Build_SMARTFORMS.h...

SMARTFORMS STEPS.

1. In Tcode se11 Create a structure(struct) same like the Internal table that you are going to use in your report.

2. Create Table type(t_struct) of stracture in se11.

3. In your program declare Internal table(Itab) type table of structure(struct).

4. Define work area(wa) like line of internal table.

5. Open Tcode Smartforms

6. In form Global setting , forminterface Import parameter define Internal table(Itab) like table type of stracture(t_struct).

7. In form Global setting , Global definitions , in Global data define Work area(wa) like type stracture(struct).

8. In form pages and window, create Page node by default Page1 is available.

9. In page node you can create numbers of secondary window. But in form there is only one Main window.

10. By right click on page you can create windows or Go to Edit, Node, Create.

11. After creating the window right click on window create table for displaying the data that you are passing through internal table.

12. In the table Data parameter, loop internal internal table (Itab) into work area(wa).

13. In table there are three areas Header, Main Area, Footer.

14. Right click on the Main area create table line by default line type1 is there select it.

15. Divide line into cells according to your need then for each cell create Text node.

16. In text node general attribute. Write down fields of your work area(wa) or write any thing you want to display.

17. Save form and activate it.

18. Then go to Environment, function module name, there you get the name of function module copy it.

19. In your program call the function module that you have copied from your form.

20. In your program in exporting parameter of function pass the internal table(itab).

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.

Also read SAP Note No. 168368 - Smart Forms: New form tool in Release 4.6C

What Transaction to start SAP Smart Forms?

Execute transaction SMARTFORMS to start SAP Smart Forms.

Key Benefits of SAP Smart Forms:

SAP Smart Forms allows you to reduce considerably the implementation costs of mySAP.com solutions since forms can be adjusted in minimum time.

You design a form using the graphical Form Painter and the graphical Table Painter. The form logic is represented by a hierarchy structure (tree structure) that consists of individual nodes, such as nodes for global settings, nodes for texts, nodes for output tables, or nodes for graphics.

To make changes, use Drag & Drop, Copy & Paste, and select different attributes.

These actions do not include writing of coding lines or using a Script language.

Using your form description maintained in the Form Builder, Smart Forms generates a function module that encapsulates layout, content and form logic. So you do not need a group of function modules to print a form, but only one.

For Web publishing, the system provides a generated XML output of the processed form.

Smart Forms provides a data stream called XML for Smart Forms (XSF) to allow the use of 3rd party printing tools. XSF passes form content from R/3 to an external product without passing any layout information about the Smart Form.

SmartForms System Fields

Within a form you can use the field string SFSY with its system fields. During form processing the system replaces these fields with the corresponding values. The field values come from the SAP System or are results of the processing.

System fields of Smart Forms

&SFSY-DATE&

Displays the date. You determine the display format in the user master record.

&SFSY-TIME&

Displays the time of day in the form HH:MM:SS.

&SFSY-PAGE&

Inserts the number of the current print page into the text. You determine the format of the page number (for example, Arabic, numeric) in the page node.

&SFSY-FORMPAGES&

Displays the total number of pages for the currently processed form. This allows you to include texts such as'Page x of y' into your output.

&SFSY-JOBPAGES&

Contains the total page number of all forms in the currently processed print request.

&SFSY-WINDOWNAME&

Contains the name of the current window (string in the Window field)

&SFSY-PAGENAME&

Contains the name of the current page (string in the Page field)

&SFSY-PAGEBREAK&

Is set to 'X' after a page break (either automatic [Page 7] or command-controlled [Page 46])

&SFSY-MAINEND&

Is set as soon as processing of the main window on the current page ends

&SFSY-EXCEPTION&

Contains the name of the raised exception. You must trigger your own exceptions, which you defined in the form interface, using the user_exception macro (syntax: user_exception <exception name >).

Example Forms Available in Standard SAP R/3

SF_EXAMPLE_01

Simple example; invoice with table output of flight booking for one customer

SF_EXAMPLE_02

Similar to SF_EXAMPLE_01 but with subtotals

SF_EXAMPLE_03

Similar to SF_EXAMPLE_02, whereby several customers are selected in the application program; the form is called for each customer and all form outputs are included in an output request

<b>Reward points for useful Answers</b>

Regards

Anji