Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

s.forms

Former Member
0 Likes
802

hi everybody,

can anybody explain me how to retreive dat from database and put it into form(smartform).

i mean,

where exactly is place to provide output tables,select statement logic,input,output parameters etc.,

thankyou.

yateendra.

1 ACCEPTED SOLUTION
Read only

former_member195383
Active Contributor
0 Likes
762

retrive the data from the database in the print program...keep that in an internal table...send the same to smartform..There u can display the same....

5 REPLIES 5
Read only

former_member195383
Active Contributor
0 Likes
763

retrive the data from the database in the print program...keep that in an internal table...send the same to smartform..There u can display the same....

Read only

Former Member
0 Likes
762

You can make a print program and there you can write your select statements and can call out various functions in which you can pass the name of smartform and varoius other input and output parameters.. And in the smart form you have to declare varables in form interface to receive the respective values.

Edited by: nitin sikka on Jul 7, 2008 11:46 AM

Read only

Sidh_M
Participant
0 Likes
762

hi Yateendra,

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.

SAP Smartforms can be used for creating and maintaining forms for mass printing in SAP Systems. The output medium for Smartforms support printer, fax, e-mail, or the Internet (by using the generated XML output).

According to SAP, you need neither have any programming knowledge nor use a Script language to adapt standard forms. However, basic ABAP programming skills are required only in special cases (for example, to call a function module you created or for complex and extensive conditions).

1. Create a new smartforms

Transaction code SMARTFORMS

Create new smartforms call ZSMART

2. Define looping process for internal table

Pages and windows

u2022 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)

u2022 Main windows -> TABLE -> DATA

u2022 In the Loop section, tick Internal table and fill in

u2022 ITAB1 (table in ABAP SMARTFORM calling function) INTO ITAB2

3. Define 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.

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

Additional Fonts for your SMARTFORMS

You can create additional fonts and style with transaction SMARTSTYLES

This can then be define in the paragraph and character formats, which you can then be assign to texts and fields in the Smart Form.

The character formats includes effects such as superscript, subscript, barcode and font attributes.

Reward points if helpfull,

Regards,

SUDHIR MANJAREKAR

Read only

Former Member
0 Likes
762

Hi

Go through the link given below:

http://saptechnical.com/Tutorials/Smartforms/PassingData/SF.htm

Thanks

Nikunj shah

Read only

Former Member
0 Likes
762

hi,

you can take help from this program.

&----


*& Report ZSMARTFORM_ASSIGN2 *

*& *

&----


*& *

*& *

&----


report zsmartform_assign2 .

tables: adrc,vbrk,vbrp.

selection-screen: begin of block b1 with frame title text-001.

selection-screen skip 1.

select-options: vbeln for vbrk-vbeln.

selection-screen: end of block b1.

data: begin of itab occurs 0,

vbeln like vbrk-vbeln,

kunrg like vbrk-kunrg,

fkdat like vbrk-fkdat,

xblnr like vbrk-xblnr,

name1 like adrc-name1,

street like adrc-street,

city1 like adrc-city1,

post_code1 like adrc-post_code1,

country like adrc-country,

tel_number like adrc-tel_number,

end of itab.

data:begin of itab2 occurs 0,

vbeln like vbrp-vbeln,

matnr like vbrp-matnr,

arktx like vbrp-arktx,

fkimg like vbrp-fkimg ,

vrkme like vbrp-vrkme,

netwr like vbrp-netwr ,

waerk like vbrk-waerk,

end of itab2.

select * into corresponding fields of itab from adrc where

adrcaddrnumber in ( select adrnr from kna1 join vbrk on kna1kunnr =

vbrkkunrg where vbrkvbeln in vbeln ).

append itab.

endselect.

*SELECT * INTO CORRESPONDING FIELDS OF ITAB FROM vbrk

*join vbrp on vbrkvbeln = vbrpvbeln

  • where vbrk~vbeln in vbeln .

*append itab.

*endselect.

select * into corresponding fields of itab from vbrk

where vbrk~vbeln in vbeln .

append itab.

endselect.

select * into corresponding fields of itab2 from vbrp

where vbrp~vbeln in vbeln .

append itab2.

endselect.

*

*loop at itab.

*loop at itab2 where vbeln = itab-vbeln.

*write: / itab2-vbeln,itab2-VRKME.

*endloop.

*endloop.

call function 'OPEN_FORM'

exporting

device = 'PRINTER'

dialog = 'X'

form = 'ZRAK_LAYOUT3'

.

loop at itab.

*concatenate itAB-name1 itAB-name1 into name separated by space.

call function 'START_FORM'.

call function 'WRITE_FORM'

exporting

  • ELEMENT = 'ADDRESS'

function = 'SET'

type = 'BODY'

window = 'WINDOW1'.

call function 'WRITE_FORM'

exporting

  • ELEMENT = 'ADDRESS'

function = 'SET'

type = 'BODY'

window = 'WINDOW2'.

call function 'WRITE_FORM'

exporting

  • ELEMENT = 'ADDRESS'

function = 'SET'

type = 'BODY'

window = 'WINDOW3'.

loop at itab2 where vbeln = itab-vbeln.

*

*CALL FUNCTION 'START_FORM'.

call function 'WRITE_FORM'

exporting

  • ELEMENT = 'DATA'

function = 'SET'

type = 'BODY'

window = 'MAIN'.

*CALL FUNCTION 'END_FORM'.

endloop.

call function 'WRITE_FORM'

exporting

  • ELEMENT = ' '

  • FUNCTION = 'SET'

  • TYPE = 'BODY'

window = 'FOOTER'

  • IMPORTING

  • PENDING_LINES =

  • EXCEPTIONS

  • ELEMENT = 1

  • FUNCTION = 2

  • TYPE = 3

  • UNOPENED = 4

  • UNSTARTED = 5

  • WINDOW = 6

  • BAD_PAGEFORMAT_FOR_PRINT = 7

  • SPOOL_ERROR = 8

  • CODEPAGE = 9

  • OTHERS = 10

.

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 'END_FORM'.

endloop.

call function 'CLOSE_FORM'.

reward if it is useful.

thanks