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

smartfomes with se38 sample programs

Former Member
0 Likes
931

send me for sample code for se38 with smartforms

3 REPLIES 3
Read only

Former Member
0 Likes
701

Hi,

1. Create a new smartforms

Transaction code SMARTFORMS

Create new smartforms call ZSMART

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

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.

Regards,

Narasimha

Edited by: narasimha marella on Jun 13, 2008 6:42 AM

Read only

Former Member
0 Likes
701

Hi Bhuvneswaran

&----


*& Report Z_SMARTFORM_REP

*&

&----


*&

*&

&----


REPORT z_smartform_rep.

TABLES: vbrk, vbrp, adrc, kna1.

DATA: addrnr TYPE kna1-adrnr,

total TYPE vbrk-netwr VALUE 0.

DATA : tot TYPE p.

*----


  • Internal Tables

*----


DATA: BEGIN OF tb_vbrk OCCURS 0,

vbeln LIKE vbrk-vbeln, " document number

kunrg LIKE vbrk-kunrg, " payer

fkdat LIKE vbrk-fkdat, " billing date

xblnr LIKE vbrk-xblnr, " reference document number

END OF tb_vbrk.

DATA: BEGIN OF tb_material OCCURS 0,

vbeln TYPE vbrp-vbeln, " document number

matnr TYPE vbrp-matnr, " material number

arktx TYPE vbrp-arktx, " material description

fkimg TYPE vbrp-fkimg, " quantity

vrkme TYPE vbrp-vrkme, " unit

netwr TYPE vbrp-netwr, " price

waerk TYPE vbrk-waerk, " currency

END OF tb_material.

DATA: BEGIN OF tb_address OCCURS 0,

name1 TYPE adrc-name1, " name

street TYPE adrc-street, " street

city1 TYPE adrc-city1, " city

post_code1 TYPE adrc-post_code1, " post-code

country TYPE adrc-country, " country

tel_num TYPE adrc-tel_number, " tel number

END OF tb_address.

DATA : BEGIN OF itab OCCURS 0,

vbeln TYPE vbrp-vbeln,

waerk TYPE vbrk-waerk,

END OF itab.

*----


  • SELECTION SCREEN

*----


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.

SELECT-OPTIONS s_vbeln FOR vbrk-vbeln.

SELECTION-SCREEN END OF BLOCK b1.

*----


  • START OF PROCESSING

*----


START-OF-SELECTION.

  • Select details of billing document

SELECT vbeln kunrg fkdat xblnr

INTO TABLE tb_vbrk

FROM vbrk

WHERE vbeln IN s_vbeln.

IF sy-subrc EQ 0.

SELECT vbeln matnr arktx fkimg vrkme netwr

INTO TABLE tb_material

FROM vbrp

WHERE vbeln IN s_vbeln.

IF sy-subrc NE 0.

MESSAGE 'data does not exist' TYPE 'E'.

ENDIF.

IF tb_material[] IS NOT INITIAL.

SELECT vbeln waerk FROM vbrk

INTO TABLE itab

FOR ALL ENTRIES IN tb_material

WHERE vbeln EQ tb_material-vbeln.

ENDIF.

LOOP AT tb_material.

READ TABLE itab WITH KEY vbeln = tb_material-vbeln.

tb_material-waerk = itab-waerk.

MODIFY tb_material.

ENDLOOP.

ENDIF.

LOOP AT tb_vbrk.

  • selecting the address

SELECT adrnr INTO addrnr FROM kna1 WHERE kunnr EQ tb_vbrk-kunrg.

ENDSELECT.

IF sy-subrc EQ 0.

SELECT SINGLE name1 street city1 post_code1 country tel_number

FROM adrc

INTO tb_address

WHERE addrnumber EQ addrnr.

ENDIF.

ENDLOOP.

LOOP AT tb_material.

total = total + tb_material-netwr.

ENDLOOP.

tot = total.

FM intergrates Driver Program with SF

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = 'Z_SMARTFORM'

    • VARIANT = ' '*

    • DIRECT_CALL = ' '*

    • IMPORTING*

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

Function Module Generated after avtivation the Smartform

CALL FUNCTION '/1BCDWB/SF00000347'

EXPORTING

    • ARCHIVE_INDEX =*

    • ARCHIVE_INDEX_TAB =*

    • ARCHIVE_PARAMETERS =*

    • CONTROL_PARAMETERS =*

    • MAIL_APPL_OBJ =*

    • MAIL_RECIPIENT =*

    • MAIL_SENDER =*

    • OUTPUT_OPTIONS =*

    • USER_SETTINGS = 'X'*

tot = tot

    • IMPORTING*

    • DOCUMENT_OUTPUT_INFO =*

    • JOB_OUTPUT_INFO =*

    • JOB_OUTPUT_OPTIONS =*

TABLES

tb_vbrk = tb_vbrk

tb_material = tb_material

tb_address = tb_address

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

Rewards with Points if info is helpful

Karan

Read only

Former Member
0 Likes
701

hi,

refer the below link, it has step by step procedure, with screen shots and sample code.

[http://saptechnical.com/Tutorials/Smartforms/SimpleDriverProgram/Demo.htm]

hope it solves ur problem.

reward if helpful.