‎2005 Sep 02 9:24 PM
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
‎2005 Sep 02 9:27 PM
‎2005 Sep 02 9:27 PM
‎2005 Sep 02 9:29 PM
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
‎2005 Sep 02 9:34 PM
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
‎2010 May 25 10:18 AM
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