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 PO Code

Former Member
0 Likes
733

Dear Rich,

Please find herewith the code of PO which I have made, please tell me my mistakes and where to use the function module for writing nos in words.

tables: lfa1, ekko, ekpo.

Data : count type i value 1, tot_prc.

data: begin of itab1 occurs 0,

name1 like lfa1-name1,

stras like lfa1-stras,

adrnr like lfa1-adrnr,

ort01 like lfa1-ort01,

pstl2 like lfa1-pstl2,

telf1 like lfa1-telf1,

ebeln like ekko-ebeln,

bedat like ekko-aedat,

angnr like ekko-angnr,

ihran like ekko-ihran,

verkf like ekko-verkf,

menge like ekpo-menge,

peinh like ekpo-peinh,

netwr like ekpo-netwr,

brtwr like ekpo-brtwr,

mwskz like ekpo-mwskz,

evers like ekpo-evers,

txz01 like ekpo-txz01,

lewed like ekpo-lewed,

end of itab1.

parameters p_ebeln like ekko-ebeln.

select f~name1 f~stras f~adrnr f~ort01 f~pstl2 f~telf1

p~ebeln p~bedat p~angnr p~ihran p~verkf

n~menge n~peinh n~netwr n~brtwr n~mwskz n~evers n~txz01 n~lewed

into corresponding fields of table itab1

from ( ( ekko as p inner join lfa1 as f on f~lifnr = p~lifnr )

inner join ekpo as n on p~ebeln = n~ebeln )

where p~ebeln = p_ebeln.

loop at itab1.

write : itab1-name1,

/ itab1-stras, / itab1-adrnr, / itab1-ort01, / itab1-pstl2, / itab1-telf1,

/ itab1-ebeln, / itab1-bedat, / itab1-angnr, / itab1-ihran, / itab1-verkf,

/ itab1-menge, / itab1-peinh, / itab1-netwr, / itab1-brtwr, / itab1-mwskz, / itab1-txz01, / itab1-lewed.

endloop.

CALL FUNCTION 'OPEN_FORM'

EXPORTING

  • APPLICATION = 'TX'

  • ARCHIVE_INDEX =

  • ARCHIVE_PARAMS =

DEVICE = 'PRINTER'

DIALOG = 'X'

FORM = 'ZABCDPO'

LANGUAGE = SY-LANGU

.

LOOP AT ITAB1.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'TEXT1'

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'MAIN'

.

count = count + 1.

tot_prc = itab1-menge * itab1-peinh.

ENDLOOP.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'ADDRESS'.

LOOP AT ITAB1.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'VENDOR'.

ENDLOOP.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'PO'.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'START'.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'FOOTER'.

LOOP AT ITAB1.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'PO_NO'.

ENDLOOP.

LOOP AT ITAB1.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'TOTAL'.

ENDLOOP.

LOOP AT ITAB1.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'TAC'.

ENDLOOP.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'AMOUNT'.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'DELIVERY'.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

  • ELEMENT = ' '

FUNCTION = 'SET'

TYPE = 'BODY'

WINDOW = 'GRAPH2'.

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

Please also tell me how to enter multiple items in one page only.

Bye,

Nishant

1 ACCEPTED SOLUTION
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
692

Well you could put the call to the function module after you have the value and before you write the output field. Anyway in between.

Regards,

Rich Heilman

4 REPLIES 4
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
693

Well you could put the call to the function module after you have the value and before you write the output field. Anyway in between.

Regards,

Rich Heilman

Read only

0 Likes
692

Not really sure that this is all about.....




LOOP AT ITAB1.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
* ELEMENT = ' '
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'PO_NO'.
ENDLOOP.

LOOP AT ITAB1.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
* ELEMENT = ' '
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'TOTAL'.
ENDLOOP.


LOOP AT ITAB1.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
* ELEMENT = ' '
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'TAC'.
ENDLOOP.

just do like this....




LOOP AT ITAB1.

CALL FUNCTION 'WRITE_FORM'
EXPORTING
* ELEMENT = ' '
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'PO_NO'.



CALL FUNCTION 'WRITE_FORM'
EXPORTING
* ELEMENT = ' '
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'TOTAL'.



CALL FUNCTION 'WRITE_FORM'
EXPORTING
* ELEMENT = ' '
FUNCTION = 'SET'
TYPE = 'BODY'
WINDOW = 'TAC'.

ENDLOOP.



Regards,

Rich Heilman

Read only

0 Likes
692

By the way, why are you writing your own purchase order print program. You should probably be using a copy of the startard print program which is actually the function group MEDRUCK. This is what we have done at my company. We copied function group MEDRUCK into ZMEDRUCK, we also copied SAPFM06P into SAPFZM06P, there is an include inside which we also copied FM06PE02 into ZFM06PE02. In ZFM06PE02, we changed the call to fucntion module ME_PRINT_PO to ZME_PRINT_PO. In configuration we pointed the print program to SAPFZM06P and to the custom Sapscript form.

Regards,

Rich Heilman

Read only

0 Likes
692

Hi,

Even I have a similar scenario. When Po is saved , mail should be triggered as pdf attachment.

I have a custom smartform developed nad I have copied sapfm06p into zprogram and copied include FM06PE02 into zFM06PE02

and called my function module. but the mail is not triggered when i save Po.

Could u plz help me in this.

Thank you