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

Error in print program

Former Member
0 Likes
480

When i am trying to execute a print program, it is giving an error message close_form is invalid,open_form is missing.I have called these 2 function modules.

I am trying to print address using address endaddress command.

3 REPLIES 3
Read only

Former Member
0 Likes
438

Hi

It seems you have not called the OPEN_FORM fun module in the program first.

If you call Close_form without OPEN_FORM it gives that error.

First Call OPEN_FORM and pass Script Form name to it

then use START_FORM and WRITE_FORM, then

END_FORM and lastly CLOSE_FORM.

START_FORM and END_OFR

are not mandatory but Open,write and CLOSE are must.

check and correct the code.

reward points if useful

regards,

ANJI

Read only

Former Member
0 Likes
438

Check the sequence :

open_form, write_form and close_form

Read only

Vijay
Active Contributor
0 Likes
438

hi

follow the sequence for open_form, write_form,close_form as in the sample code below.

it should help u out....

TABLES :vbrk , kna1 , adrc ,vbrp.

SELECT-OPTIONS : s_vbeln FOR vbrk-vbeln.

TYPES: BEGIN OF st_itab,

vbeln TYPE vbrk-vbeln,

fkdat TYPE vbrk-fkdat,

kunrg TYPE vbrk-kunrg,

xblnr TYPE vbrk-xblnr,

netwr TYPE vbrk-netwr ,

waerk TYPE vbrk-waerk,

END OF st_itab.

DATA: itab TYPE STANDARD TABLE OF st_itab,

wa_itab TYPE st_itab.

DATA :adr_no TYPE kna1-adrnr,

v_kunrg TYPE vbrk-kunrg.

TYPES : BEGIN OF st_itab1,

name1 TYPE adrc-name1,

street TYPE adrc-street ,

city1 TYPE adrc-city1 ,

post_code1 TYPE adrc-post_code1 ,

country TYPE adrc-country ,

tel_number TYPE adrc-tel_number ,

END OF st_itab1.

DATA: itab1 TYPE STANDARD TABLE OF st_itab1,

wa_itab1 TYPE st_itab1.

TYPES:BEGIN OF st_itab3,

matnr TYPE vbrp-matnr,

arktx TYPE vbrp-arktx,

fkimg TYPE vbrp-fkimg,

vrkme TYPE vbrp-vrkme,

netwr TYPE vbrp-netwr,

END OF st_itab3.

DATA: itab3 TYPE STANDARD TABLE OF st_itab3,

wa_itab3 TYPE st_itab3,

v_total TYPE vbrp-netwr value 0.

data : s1(3) type p decimals 1, "Box Y position

s2(3) type p decimals 1 value '0.5'. "Box Height

***************

***OPEN FORM

*****************

CALL FUNCTION 'OPEN_FORM'

EXPORTING

  • APPLICATION = 'TX'

  • ARCHIVE_INDEX =

  • ARCHIVE_PARAMS =

  • DEVICE = 'PRINTER'

  • DIALOG = 'X'

form = 'Z_CHALLENGE'

language = sy-langu

  • OPTIONS =

  • MAIL_SENDER =

  • MAIL_RECIPIENT =

  • MAIL_APPL_OBJECT =

  • RAW_DATA_INTERFACE = '*'

  • IMPORTING

  • LANGUAGE =

  • NEW_ARCHIVE_PARAMS =

  • RESULT =

EXCEPTIONS

canceled = 1

device = 2

form = 3

OPTIONS = 4

unclosed = 5

mail_options = 6

archive_error = 7

invalid_fax_number = 8

more_params_needed_in_batch = 9

spool_error = 10

codepage = 11

OTHERS = 12

.

IF sy-subrc <> 0.

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

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

ENDIF.

******************

*PAGE NUMBER

******************

SELECT vbeln

fkdat

kunrg

xblnr

netwr

waerk

FROM vbrk

INTO TABLE itab

WHERE vbeln IN s_vbeln .

LOOP AT itab INTO wa_itab.

clear : s1.

s1 = '0.5'.

CLEAR V_TOTAL.

CALL FUNCTION 'START_FORM'

EXPORTING

  • ARCHIVE_INDEX =

form = 'Z_CHALLENGE'

language = sy-langu

  • STARTPAGE = ' '

  • PROGRAM = ' '

  • MAIL_APPL_OBJECT =

  • IMPORTING

  • LANGUAGE =

  • EXCEPTIONS

  • FORM = 1

  • FORMAT = 2

  • UNENDED = 3

  • UNOPENED = 4

  • UNUSED = 5

  • SPOOL_ERROR = 6

  • CODEPAGE = 7

  • OTHERS = 8

.

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 'WRITE_FORM'

EXPORTING

element = 'HEADER'

  • FUNCTION = 'SET'

  • TYPE = 'BODY'

window = 'HEADER'

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

SELECT SINGLE kunrg INTO v_kunrg FROM vbrk WHERE vbeln = wa_itab-vbeln.

SELECT SINGLE adrnr FROM kna1 INTO adr_no WHERE kunnr = v_kunrg.

SELECT SINGLE name1

street

city1

post_code1

country

tel_number

INTO wa_itab1

FROM adrc WHERE addrnumber = adr_no

AND date_from <= sy-datum AND date_to >= sy-datum.

*****************

INVOICE DIPLAY

****************

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'INVOICE'

function = 'APPEND'

type = 'BODY'

window = 'INVOICE'

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

*********************

*ADDRESS

*******************

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'ADDRESS'

function = 'APPEND'

type = 'BODY'

window = 'ADDRESS'

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

*****************

  • MAIN HEADER

*****************

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'HEADER_MAIN'

function = 'APPEND'

type = 'BODY'

window = 'MAIN'

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

***********************

*DISPLAYING DATA

***********************

SELECT matnr

arktx

fkimg

vrkme

netwr

INTO CORRESPONDING FIELDS OF TABLE itab3

FROM vbrp

WHERE vbeln = wa_itab-vbeln.

LOOP AT itab3 INTO wa_itab3 .

compute v_total = v_total + wa_itab3-netwr .

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'DATA'

function = 'APPEND'

type = 'BODY'

window = 'MAIN'

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

****************************

*FOOTER

****************************

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'FOOTER'

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

s1 = s1 + '0.4' .

ENDLOOP.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'TOTAL'

  • FUNCTION = 'SET'

  • TYPE = 'BODY'

WINDOW = 'MAIN'

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

  • IMPORTING

  • RESULT =

  • EXCEPTIONS

  • UNOPENED = 1

  • BAD_PAGEFORMAT_FOR_PRINT = 2

  • SPOOL_ERROR = 3

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

ENDLOOP.

CALL FUNCTION 'CLOSE_FORM'

  • IMPORTING

  • RESULT =

  • RDI_RESULT =

  • TABLES

  • OTFDATA =

EXCEPTIONS

unopened = 1

bad_pageformat_for_print = 2

send_error = 3

spool_error = 4

codepage = 5

OTHERS = 6

.

IF sy-subrc <> 0.

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

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

<b>plz reward pts if helpful.</b>

regards

vijay