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

sap-script

Former Member
0 Likes
948

I am trying to execute this progarm ,

but here it is showing error message like: WRITE_FORM is invalid START_FORM is missing.....

Please any one can check

&----


*& Report ZSANDYFORM

*&

&----


*&

*&

&----


REPORT ZSANDYFORM.

TABLES: EKPO.

Data: begin of it_sandy occurs 0,

ebeln like ekpo-ebeln,

  • ebelp like ekpo-ebelp,

  • matnr like ekpo-matnr,

end of it_sandy.

select ebeln

from ekpo into table it_sandy

up to 100 rows.

CALL FUNCTION 'OPEN_FORM'

EXPORTING

  • APPLICATION = 'TX'

  • ARCHIVE_INDEX =

  • ARCHIVE_PARAMS =

  • DEVICE = 'PRINTER'

  • DIALOG = 'X'

FORM = 'ZSANDYSCRIPT'

LANGUAGE = SY-LANGU

  • OPTIONS =

  • MAIL_SENDER =

  • MAIL_RECIPIENT =

  • MAIL_APPL_OBJECT =

  • RAW_DATA_INTERFACE = '*'

  • SPONUMIV =

  • IMPORTING

  • LANGUAGE = SY-LANGU

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

*

*SELECT *

  • UP TO 200 ROWS

  • FROM vbap

  • INTO TABLE it_sandy.

loop at it_sandy.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'SALES'

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

endloop.

CALL FUNCTION 'START_FORM'

EXPORTING

  • ARCHIVE_INDEX =

FORM = 'ZSANDYFORM'

LANGUAGE = SY-LANGU

  • STARTPAGE = ' '

  • PROGRAM = ' '

  • MAIL_APPL_OBJECT =

  • IMPORTING

  • LANGUAGE = SY-LANGU

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

ENDIF.

Thanks in advance

Sandy Bondy...

10 REPLIES 10
Read only

Former Member
Read only

Former Member
0 Likes
924

Hi sandy,

in function module write_form

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'SALES'

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.

use this hope u will get rid of the error.

regards,

Santosh Thorat

Read only

varma_narayana
Active Contributor
0 Likes
924

Hi Sandy..

This error generally comes when you did not assign the NEXT PAGE for Every page in the Layout set FORM .

So in your Layout set assign the NEXT PAGE for each page and Activate the layoutset.

Then run the print program.

It should work. Get back if u still have the issues.

<b>reward if Helpful.</b>

Read only

Former Member
0 Likes
924

YOU MUST CALL

END_FORM AFTER START_FORM BEFORE USING WRITE FORM.

TRY THIS.

REWARD IF USEFUL.

AMIT SINGLA

Read only

0 Likes
924

U MEAN

1.START FORM

2.WRITE FORM

3.END FORM

Read only

0 Likes
924

NO FOR A START_FORM THERE SHOULD BE END_FORM AS FOR EVERY

OPEN_FORM THERE IS CLOSE_FORM.

HERE YOU USE STSRT_FORM.

WHICH IS REQUIRED IF YOU NEED TO PRINT ( SAY A CUSTOMER DETAILS) PRINT ON DIFFERENT PAGES. SAY FOR CUSTOMER 1 ON FIRST PAGE.

THEN CUSTOMER 2 ON SECOND.

REWARD IF USEFUL.

AMIT SINGLA

Read only

0 Likes
924

Hi Sandy..

Have u checked my previous post? It will solve ur problem.

There is no need to Call START_FORM and END_FORM functions in this case.

<b>reward if Helpful.</b>

Read only

Former Member
0 Likes
924

Hi,

This error may be occur due to assigning of next page in script..

please check this,

if it is not assinged,, then when prining of 1 page it will not give any problem,

but if u r output goes more than one page it will pop up the message,,

can u check

and let me know if it available

Reward the points

Read only

Former Member
0 Likes
924

HI SANDY

SEE THI S PROG

&----


*& Report ZSAMP_INVOICE *

*& *

&----


REPORT zsamp_invoice .

TABLES : vbrk,

vbrp.

DATA : BEGIN OF i_inv OCCURS 0 ,

vbeln LIKE vbrk-vbeln,

fkdat LIKE vbrk-fkdat,

kunag LIKE vbrk-kunag,

arktx LIKE vbrp-arktx,

matnr LIKE vbrp-matnr,

fkimg LIKE vbrp-fkimg,

netwr LIKE vbrp-netwr,

name1 LIKE kna1-name1,

adrnr LIKE kna1-adrnr,

END OF i_inv.

DATA : sum TYPE i ,

sum1 LIKE vbrp-netwr,

sum2 LIKE spell,

amount(20) TYPE n .

PARAMETER : p_inv TYPE vbrk-vbeln .

select a~vbeln

a~fkdat

a~kunag

b~arktx

b~matnr

b~fkimg

b~netwr

c~name1

c~adrnr

into corresponding fields of table i_inv

from vbrk as a inner join vbrp as b on avbeln = bvbeln

inner join kna1 as c on ckunnr = akunag

where a~vbeln = p_inv .

  • loop at i_inv.

  • endloop.

*write : i_inv-fkdat,

  • i_inv-name1.

*

CALL FUNCTION 'OPEN_FORM'

EXPORTING

  • APPLICATION = 'TX'

  • ARCHIVE_INDEX =

  • ARCHIVE_PARAMS =

  • DEVICE = 'PRINTER'

  • DIALOG = 'X'

FORM = 'ZSAMP_INVOICE1'

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

LOOP AT I_INV.

sum = i_INV-fkimg + sum.

sum1 = i_INV-netwr + sum1.

  • sum2 = sum1.

endloop.

amount = sum1 .

CALL FUNCTION 'SPELL_AMOUNT'

EXPORTING

AMOUNT = sum1

CURRENCY = 'INR'

  • FILLER = ' '

  • LANGUAGE = SY-LANGU

IMPORTING

IN_WORDS = sum2

EXCEPTIONS

NOT_FOUND = 1

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

LOOP AT I_INV.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'MAIN'

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.

ENDLOOP.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'DATA1'

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'SECOND'

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

EXPORTING

ELEMENT = 'DATA2'

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'THIRD'

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

EXPORTING

ELEMENT = 'DATA3'

  • FUNCTION = 'SET'

  • TYPE = 'BODY'

WINDOW = 'FOUTH'

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

EXPORTING

ELEMENT = 'DATA4'

  • FUNCTION = 'SET'

  • TYPE = 'BODY'

WINDOW = 'FIFTH'

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

ENDIF.

IT WILL HELP U

KK.

Read only

Former Member
0 Likes
924

before write_form you need to call start_form other wise you will get that error.