cancel
Showing results for 
Search instead for 
Did you mean: 

sap scripts

Former Member
0 Kudos

hi all

i had just started working on sap scripts n in se 71 i had created a lay out i had created 2 pages n in the pages i had created 3 header windows n footer windows n a main window my task is to print some thing in these so how can i get some data dispaly it on screen how to right the code by using there function call ..open_form, write_form, close_form n display some data in that n link my se38 code to my layout in se71 please reply soon ............i had done all the other seeting like paragraph , character format.................

thanxz

himanshu sharma

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

Hi,

Have a look at this for the code in se38.

*Tables declaration.

TABLES: vbak, vbap, kna1, vbpa.

*Structure declaration.

TYPES: BEGIN OF i_vbak,

vbeln TYPE vbeln_va,

erdat TYPE erdat,

kunnr TYPE kunag,

END OF i_vbak.

TYPES: BEGIN OF i_vbap,

vbeln TYPE vbeln_va,

posnr TYPE posnr_va,

matnr TYPE matnr,

arktx TYPE arktx,

arktx1 TYPE arktx,

kwmeng TYPE kwmeng,

meins TYPE meins,

netpr TYPE netpr,

END OF i_vbap.

TYPES: BEGIN OF i_kna1,

kunnr TYPE kunnr,

adrnr TYPE adrnr,

name1 TYPE name1_gp,

ort01 TYPE ort01_gp,

END OF i_kna1.

TYPES: BEGIN OF i_vbpa,

vbeln TYPE vbeln,

posnr TYPE posnr,

parvw TYPE parvw,

kunnr TYPE kunnr,

kunnr1 TYPE kunnr,

END OF i_vbpa.

TYPES: BEGIN OF i_final,

vbeln TYPE vbeln_va,

erdat TYPE erdat,

kunnr TYPE kunnr,

kunnr1 TYPE kunnr,

posnr TYPE posnr_va,

matnr TYPE matnr,

arktx TYPE arktx,

arktx1 TYPE arktx,

kwmeng TYPE kwmeng,

meins TYPE meins,

netpr TYPE netpr,

adrnr TYPE adrnr,

name1 TYPE name1_gp,

ort01 TYPE ort01_gp,

parvw TYPE parvw,

END OF i_final.

*Internal table declaration

DATA: it_vbak TYPE STANDARD TABLE OF i_vbak.

DATA: it_vbap TYPE STANDARD TABLE OF i_vbap.

DATA: it_kna1 TYPE STANDARD TABLE OF i_kna1.

DATA: it_vbpa TYPE STANDARD TABLE OF i_vbpa.

DATA: it_final TYPE STANDARD TABLE OF i_final.

*work area declaration

DATA: wa_vbak TYPE i_vbak,

wa_vbap TYPE i_vbap,

wa_kna1 TYPE i_kna1,

wa_vbpa TYPE i_vbpa,

wa_final TYPE i_final.

*variables declared with type workarea.

DATA: v_vbeln TYPE vbak-vbeln.

DATA: a_vbeln LIKE wa_final-vbeln,

v_posnr LIKE wa_final-posnr,

v_matnr LIKE wa_final-matnr,

v_arktx LIKE wa_final-arktx,

x_arktx LIKE wa_final-arktx,

v_zmeng LIKE wa_final-kwmeng,

v_meins LIKE wa_final-meins,

v_mwsbp LIKE wa_final-netpr,

v_kunnr LIKE wa_final-kunnr,

v_kunnr1 LIKE wa_final-kunnr1,

v_adrnr LIKE wa_final-adrnr,

v_name1 LIKE wa_final-name1,

v_ort01 LIKE wa_final-ort01,

v_erdat LIKE wa_final-erdat.

*DATA: v_amount TYPE netpr.

DATA: p_netpr LIKE wa_final-netpr.

data: p_kwmeng like wa_final-kwmeng.

*select options

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: s_vbeln FOR v_vbeln.

SELECTION-SCREEN END OF BLOCK blk1.

*at selection screen

AT SELECTION-SCREEN.

*Checks the sales order number exists in database.

SELECT vbeln INTO v_vbeln

UP TO 1 ROWS

FROM vbak

WHERE vbeln IN s_vbeln.

ENDSELECT.

*if no single data exists it displays error msgs.

IF sy-subrc <> 0.

MESSAGE e000.

ENDIF.

*start of selection.

START-OF-SELECTION.

----


PERFORM open_form.

----


SELECT vbeln

erdat

kunnr INTO CORRESPONDING FIELDS OF TABLE it_vbak

FROM vbak

WHERE vbeln IN s_vbeln.

IF sy-subrc = 0.

SORT it_vbak BY vbeln.

SELECT vbeln

posnr

matnr

arktx

kwmeng

meins

netpr INTO CORRESPONDING FIELDS OF TABLE it_vbap

FROM vbap

FOR ALL ENTRIES IN it_vbak

WHERE vbeln = it_vbak-vbeln.

ENDIF.

IF sy-subrc = 0.

SORT it_vbap BY vbeln posnr.

SELECT vbeln

posnr

parvw

kunnr INTO TABLE it_vbpa

FROM vbpa

FOR ALL ENTRIES IN it_vbap

WHERE vbeln = it_vbap-vbeln.

ENDIF.

IF sy-subrc = 0.

SORT it_vbpa BY vbeln.

ENDIF.

*move header data to final table.

LOOP AT it_vbap INTO wa_vbap.

READ TABLE it_vbak INTO wa_vbak WITH KEY vbeln = wa_vbap-vbeln

BINARY SEARCH.

IF sy-subrc = 0.

MOVE: wa_vbak-vbeln TO wa_final-vbeln,

wa_vbak-erdat TO wa_final-erdat,

wa_vbak-kunnr TO wa_final-kunnr.

*Move details data to final table.

MOVE: wa_vbap-posnr TO wa_final-posnr,

wa_vbap-matnr TO wa_final-matnr,

wa_vbap-arktx TO wa_final-arktx,

wa_vbap-kwmeng TO wa_final-kwmeng,

wa_vbap-meins TO wa_final-meins,

wa_vbap-netpr TO wa_final-netpr.

ENDIF.

*selecting the customer data as per kunnr in vbak table.

SELECT kunnr

adrnr

name1

ort01 INTO TABLE it_kna1

FROM kna1

WHERE kunnr = wa_vbak-kunnr.

*Move customer data to final table

READ TABLE it_kna1 INTO wa_kna1 WITH KEY kunnr = wa_vbak-kunnr

BINARY SEARCH.

IF sy-subrc = 0.

MOVE: wa_kna1-kunnr TO wa_final-kunnr,

wa_kna1-adrnr TO wa_final-adrnr,

wa_kna1-name1 TO wa_final-name1,

wa_kna1-ort01 TO wa_final-ort01.

ENDIF.

*Move partner data to final table.

READ TABLE it_vbpa INTO wa_vbpa WITH KEY vbeln = wa_vbap-vbeln

BINARY SEARCH.

IF sy-subrc = 0.

IF wa_vbpa-parvw = 'AG' . "sold to party

MOVE: wa_vbpa-parvw TO wa_final-parvw,

wa_vbpa-kunnr1 TO wa_final-kunnr1.

ELSEIF wa_vbpa-parvw = 'WE'. " ship to party

MOVE: wa_vbpa-parvw TO wa_final-parvw,

wa_vbpa-kunnr TO wa_final-kunnr.

ENDIF.

APPEND wa_final TO it_final.

CLEAR wa_final.

ENDIF.

ENDLOOP.

*End of selection.

END-OF-SELECTION.

*Display the data

----


PERFORM display_data.

PERFORM close_form.

----


&----


*& Form DISPLAY_DATA

&----


FORM display_data .

WRITE:/5 'SALES ORD',

15 'ITEM',

25 'MATERIAL',

40 'DESCRIPTION',

80 'UNIT',

90 'CUST',

96 'CITY',

105 'QUANTITY',

125 'AMOUNT'.

ULINE.

*Looping at final table into work area and moving it all into the variables.

LOOP AT it_final INTO wa_final.

a_vbeln = wa_final-vbeln.

v_posnr = wa_final-posnr.

v_matnr = wa_final-matnr.

v_arktx = wa_final-arktx+0(23).

x_arktx = wa_final-arktx+23(17).

v_zmeng = wa_final-kwmeng.

v_meins = wa_final-meins.

v_mwsbp = wa_final-netpr.

v_kunnr = wa_final-kunnr.

v_kunnr1 = wa_final-kunnr1.

v_adrnr = wa_final-adrnr.

v_name1 = wa_final-name1.

v_ort01 = wa_final-ort01.

v_erdat = wa_final-erdat.

AT NEW vbeln.

----


*Calling function start-form.

----


CALL FUNCTION 'START_FORM'

EXPORTING

form = 'Z8PA_SO'

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.

----


*calling function write form for window 3

----


CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

  • FUNCTION = 'SET'

  • TYPE = 'BODY'

window = 'WINDOW3'

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

----


*calling function write form for window 4

----


CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

  • FUNCTION = 'SET'

  • TYPE = 'BODY'

window = 'WINDOW4'

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

----


*calling function write form for window 5

----


CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

  • FUNCTION = 'SET'

  • TYPE = 'BODY'

window = 'WINDOW5'

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

ENDAT.

----


PERFORM z_main.

----


WRITE:/5 a_vbeln,

15 v_posnr,

25 v_matnr,

40 v_arktx,

80 v_meins,

90 v_kunnr,

96 v_ort01,

105 v_zmeng,

125 v_mwsbp.

AT END OF vbeln.

----


PERFORM z_total.

----


AT LAST.

SUM.

WRITE: 'TOTAL',105 wa_final-kwmeng,

125 wa_final-netpr.

  • p_netpr = wa_final-netpr.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'TOTAL'

function = 'APPEND'

type = 'BOTTOM'

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.

ENDAT.

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.

ENDAT.

ENDLOOP.

ENDFORM. " DISPLAY_DATA

&----


*& Form open_form

&----


FORM open_form .

CALL FUNCTION 'OPEN_FORM'

EXPORTING

  • APPLICATION = 'TX'

  • ARCHIVE_INDEX =

  • ARCHIVE_PARAMS =

device = 'PRINTER'

  • DIALOG = 'X'

  • FORM = ' '

language = sy-langu

  • OPTIONS =

  • MAIL_SENDER =

  • MAIL_RECIPIENT =

  • MAIL_APPL_OBJECT =

  • RAW_DATA_INTERFACE = '*'

  • SPONUMIV =

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

ENDFORM. " open_form

&----


*& Form close_form

&----


FORM close_form .

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.

ENDFORM. " close_form

&----


*& Form Z_MAIN

&----


FORM z_main .

*----


    • calling function write form for main window.

*----


CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'COLOUMN HEADINGS'

function = 'SET'

type = 'TOP'

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.

----


  • calling function write form for main window

----


CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'DETAILS'

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.

ENDFORM. " Z_MAIN

&----


*& Form Z_TOTAL

&----


FORM z_total .

ULINE.

SUM.

WRITE: 'SUB TOTAL:',105 wa_final-kwmeng,

125 wa_final-netpr.

ULINE.

SKIP.

p_netpr = wa_final-netpr.

p_kwmeng = wa_final-kwmeng.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'SUBTOTAL'

function = 'SET'

type = 'BOTTOM'

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.

ENDFORM. " Z_TOTAL

for writing code in se71,

select a window and goto the text button.

regards,

pritha

Former Member
0 Kudos

Hi,

CALL FUNCTION 'OPEN_FORM'

EXPORTING

form = 'ZMEDRUCK_127867'.

CALL FUNCTION 'START_FORM'

EXPORTING

form = 'ZMEDRUCK_127867'.

LOOP AT it_ekpo.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'MAIN'

function = 'SET'

type = 'BODY'

window = 'MAIN'.

ENDLOOP.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'ADDRESS'

function = 'SET'

type = 'BODY'

window = 'ADDRESS'.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'CONSGNEE'

function = 'SET'

type = 'BODY'

window = 'CONSGNEE'.

LOOP AT it_deldate.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'DELDATE'

function = 'SET'

type = 'BODY'

window = 'DELDATE'.

ENDLOOP.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'FOOTER'

function = 'SET'

type = 'BODY'

window = 'FOOTER'.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'HEADER'

function = 'SET'

type = 'BODY'

window = 'HEADER'.

CALL FUNCTION 'END_FORM'.

CALL FUNCTION 'START_FORM'

EXPORTING

form = 'ZMEDRUCK_127867'.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'MAIN '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'MAIN'.

CALL FUNCTION 'END_FORM'.

CALL FUNCTION 'CLOSE_FORM'.

Regards,

Priyanka.