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

SAPSCRIPT

Former Member
0 Likes
542

HI ALL,

How to create program for open form and write form and close form in se38. about sapscript??

reply me soon,

thx,

s.suresh.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
516

Hi

check this...

TYPES : BEGIN OF st_lfa1,

lifnr TYPE lfa1-lifnr,

name1 TYPE lfa1-name1,

land1 TYPE lfa1-land1,

ort01 TYPE lfa1-ort01,

regio TYPE lfa1-regio,

END OF st_lfa1.

TYPES : BEGIN OF st_ekko,

ebeln TYPE ekko-ebeln,

lifnr TYPE ekko-lifnr,

END OF st_ekko.

TYPES : BEGIN OF st_ekpo,

ebelp TYPE ekpo-ebelp,

ematn TYPE ekpo-ematn,

aedat TYPE ekpo-aedat,

netwr TYPE ekpo-netwr,

mtart TYPE ekpo-mtart,

END OF st_ekpo.

----


  • INTERNAL TABLE DECLARATIONS

----


DATA : it_lfa1 TYPE STANDARD TABLE OF st_lfa1,

wa_lfa1 TYPE st_lfa1,

it_ekpo TYPE STANDARD TABLE OF st_ekpo,

wa_ekpo TYPE st_ekpo,

it_ekko TYPE STANDARD TABLE OF st_ekko,

wa_ekko TYPE st_ekko.

DATA : v_sum TYPE i,

v_ebelp(20) TYPE c.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.

PARAMETER : p_no TYPE ekko-ebeln OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

----


  • START-OF-SELECTION

----


START-OF-SELECTION.

SELECT ebeln lifnr

FROM ekko

INTO TABLE it_ekko

WHERE ebeln = p_no.

SELECT lifnr name1 land1 ort01 regio

FROM lfa1

INTO table it_lfa1 FOR ALL ENTRIES IN it_ekko

WHERE lifnr = it_ekko-lifnr.

SELECT ebelp ematn aedat netwr mtart

FROM ekpo

INTO TABLE it_ekpo FOR ALL ENTRIES IN it_ekko

WHERE ebeln = it_ekko-ebeln .

CALL FUNCTION 'OPEN_FORM'

EXPORTING

device = 'PRINTER'

form = 'Z50875MM_SCRP'

language = sy-langu

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.

READ TABLE it_ekko INTO wa_ekko INDEX 1.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'HEADER '

window = 'PHEADER'

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.

READ TABLE it_lfa1 into wa_lfa1 INDEX 1.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'VENDOR1'

window = 'VENDOR'

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.

SORT it_ekpo BY ebelp.

LOOP AT it_ekpo INTO wa_ekpo.

CONCATENATE wa_ekko-ebeln wa_ekpo-ebelp INTO v_ebelp.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'ITEM'

window = 'MAIN'

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.

AT LAST.

SUM.

v_sum = wa_ekpo-netwr .

ENDAT.

ENDLOOP.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'GTOTAL'

window = 'TOTAL'

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'

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.

3 REPLIES 3
Read only

Former Member
0 Likes
517

Hi

check this...

TYPES : BEGIN OF st_lfa1,

lifnr TYPE lfa1-lifnr,

name1 TYPE lfa1-name1,

land1 TYPE lfa1-land1,

ort01 TYPE lfa1-ort01,

regio TYPE lfa1-regio,

END OF st_lfa1.

TYPES : BEGIN OF st_ekko,

ebeln TYPE ekko-ebeln,

lifnr TYPE ekko-lifnr,

END OF st_ekko.

TYPES : BEGIN OF st_ekpo,

ebelp TYPE ekpo-ebelp,

ematn TYPE ekpo-ematn,

aedat TYPE ekpo-aedat,

netwr TYPE ekpo-netwr,

mtart TYPE ekpo-mtart,

END OF st_ekpo.

----


  • INTERNAL TABLE DECLARATIONS

----


DATA : it_lfa1 TYPE STANDARD TABLE OF st_lfa1,

wa_lfa1 TYPE st_lfa1,

it_ekpo TYPE STANDARD TABLE OF st_ekpo,

wa_ekpo TYPE st_ekpo,

it_ekko TYPE STANDARD TABLE OF st_ekko,

wa_ekko TYPE st_ekko.

DATA : v_sum TYPE i,

v_ebelp(20) TYPE c.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.

PARAMETER : p_no TYPE ekko-ebeln OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

----


  • START-OF-SELECTION

----


START-OF-SELECTION.

SELECT ebeln lifnr

FROM ekko

INTO TABLE it_ekko

WHERE ebeln = p_no.

SELECT lifnr name1 land1 ort01 regio

FROM lfa1

INTO table it_lfa1 FOR ALL ENTRIES IN it_ekko

WHERE lifnr = it_ekko-lifnr.

SELECT ebelp ematn aedat netwr mtart

FROM ekpo

INTO TABLE it_ekpo FOR ALL ENTRIES IN it_ekko

WHERE ebeln = it_ekko-ebeln .

CALL FUNCTION 'OPEN_FORM'

EXPORTING

device = 'PRINTER'

form = 'Z50875MM_SCRP'

language = sy-langu

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.

READ TABLE it_ekko INTO wa_ekko INDEX 1.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'HEADER '

window = 'PHEADER'

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.

READ TABLE it_lfa1 into wa_lfa1 INDEX 1.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'VENDOR1'

window = 'VENDOR'

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.

SORT it_ekpo BY ebelp.

LOOP AT it_ekpo INTO wa_ekpo.

CONCATENATE wa_ekko-ebeln wa_ekpo-ebelp INTO v_ebelp.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'ITEM'

window = 'MAIN'

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.

AT LAST.

SUM.

v_sum = wa_ekpo-netwr .

ENDAT.

ENDLOOP.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'GTOTAL'

window = 'TOTAL'

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'

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.

Read only

Former Member
0 Likes
516

Go to se38 create a program and then call open form ,write form and cloae form function modules.

In open form give script name.

Thanks and Regards.

Suman

Read only

Former Member
0 Likes
516

hi,

After recording u 'll create a program in tht rgt.... in that program keep the cursor in new line and pres CTRL+F6 in that enter FM name open_form, write_form, close_form.

Thanks,

Reward if Useful.

Arunprasad.P