‎2008 Mar 12 6:16 AM
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.
‎2008 Mar 12 6:18 AM
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.
‎2008 Mar 12 6:18 AM
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.
‎2008 Mar 12 6:21 AM
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
‎2008 Mar 12 6:31 AM
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