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

Print problem_in SCRIPT

Nawanandana
Active Contributor
0 Likes
378

hai all

i write the program its script. i create the Z-Table also for it name"zvoucher" ... normally that program execute we can see the print window...now i can print form and print preview... i want to print only one time in each document number. plz tel me how should i do it.... ???? AND how should i recognized "print command "and "print preview " command?

my program is below.

*&----


*

*& Report ZFORM1

*&

*&----


*

*&

*&

*&----


*

report zform1_p.

*PARAMETERS:P_VBLNR LIKE REGUH-VBLNR.

*PARAMETERS:Payment Document No LIKE REGUH-VBLNR.

tables: reguh,

regup,

bseg,

skat,

payr,

zvoucher. " ztable

parameters : p_vblnr like reguh-vblnr obligatory.

parameters : p_gjahr like bseg-gjahr obligatory.

parameters : p_bukrs like bseg-bukrs default 'EPFD'.

parameters : p_fil type payr-zanre.

parameters : p_bud type payr-zanre.

data: z_vblnr like reguh-vblnr.

z_vblnr = p_vblnr.

data n1 type i.

data scarr_wa type zvoucher.

data :w_anum like zvoucher-anum,

w_anum_n like zvoucher-anum,

w_val like zvoucher-anum.

*DATA: CRAMT TYPE P DECIMALS 2,

  • DRAMT TYPE P DECIMALS 2,

  • TOTCR TYPE P DECIMALS 2,

  • TMP_WORDS TYPE STRING,

  • TOTDR TYPE P DECIMALS 2.

data: cramt like bseg-dmbtr,

dramt like bseg-dmbtr,

totcr like bseg-dmbtr,

tmp_words type string,

totdr like bseg-dmbtr.

data: somme type p.

data: i_tab like reguh occurs 0 with header line.

data: i_tab1 like payr occurs 0 with header line.

data: i_tab2 like bseg occurs 0 with header line.

data: i_tab3 like skat occurs 0 with header line.

data: i_tab4 like regup occurs 0 with header line.

data: i_inwords like spell occurs 0 with header line.

types :begin of ty_tab,

anum like zvoucher-anum,

pr like zvoucher-pr,

vblnr like zvoucher-vblnr,

gjahr like zvoucher-gjahr,

end of ty_tab.

data : it_tab type standard table of ty_tab,

wa_tab type ty_tab.

select * from reguh where vblnr = p_vblnr.

move-corresponding reguh to i_tab.

append i_tab.

endselect.

select * from payr where vblnr = p_vblnr

and gjahr = p_gjahr.

move-corresponding payr to i_tab1.

append i_tab1.

endselect.

select * from bseg where belnr = p_vblnr

and gjahr = p_gjahr.

move-corresponding bseg to i_tab2.

append i_tab2.

endselect.

select * from regup where vblnr = p_vblnr

and gjahr = p_gjahr.

move-corresponding regup to i_tab4.

append i_tab4.

endselect.

  • Début d'impression du formulaire

call function 'OPEN_FORM'

exporting

form = 'ZPAY_VOUCHER_P'

device = 'PRINTER'.

call function 'START_FORM'.

*CALL FUNCTION 'WRITE_FORM'

*EXPORTING

*window = 'HEADER'.

  • Impression de l'élément de texte ITEM_HEADER de la fenêre MAIN

call function 'WRITE_FORM'

exporting

element = 'ITEM_HEADER'

window = 'MAIN'.

loop at i_tab.

p_vblnr = i_tab.

read table i_tab1 with key vblnr = p_vblnr.

dramt = 0.

cramt = 0.

totdr = 0.

totcr = 0.

loop at i_tab2.

bseg = i_tab2.

somme = 0.

select * from skat where saknr = i_tab2-hkont.

move-corresponding skat to i_tab3.

append i_tab3.

endselect.

if bseg-bschl = '25'.

dramt = bseg-dmbtr.

totdr = totdr + dramt.

cramt = 0.

endif.

if bseg-bschl = '50'.

cramt = bseg-dmbtr.

totcr = totcr + cramt.

dramt = 0.

endif.

read table i_tab3 with key saknr = i_tab2-hkont.

**Insert Data Into the ZTABLE.

select single anum from zvoucher into w_val

where vblnr = z_vblnr.

scarr_wa-anum = w_val.

if w_val = ''.

select max( anum ) from zvoucher into w_anum.

  • WHERE VBLNR = ZVOUCHER-VBLNR.

  • AND GJAHR = ZVOUCHER-GJAHR .

w_anum_n = w_anum + 1.

  • UPDATE ZVOUCHER CLIENT SPECIFIED

  • SET PR = 'X'.

scarr_wa-anum = w_anum_n.

scarr_wa-vblnr = i_tab-vblnr.

scarr_wa-gjahr = i_tab2-gjahr.

  • scarr_wa-PR = 'X'.

insert into zvoucher values scarr_wa.

endif.

  • Impression de l'élément de texte ITEM_LINE de la fenêtre MAIN

call function 'WRITE_FORM'

exporting

element = 'ITEM_DETAIL1'

function = 'APPEND'

window = 'MAIN'.

endloop.

call function 'WRITE_FORM'

exporting

element = 'TOTAL_1'

window = 'MAIN'.

endloop.

call function 'WRITE_FORM'

exporting

element = 'ITEM_HEADER1'

window = 'MAIN'.

  • Print Invoice Detail

dramt = 0.

cramt = 0.

totdr = 0.

totcr = 0.

loop at i_tab4.

regup = i_tab4.

somme = 0.

clear i_tab2[].

select * from bseg where belnr = i_tab4-belnr.

move-corresponding bseg to i_tab2.

append i_tab2.

endselect.

loop at i_tab2.

bseg = i_tab2.

somme = 0.

clear i_tab3[].

select * from skat where saknr = i_tab2-hkont.

move-corresponding skat to i_tab3.

append i_tab3.

endselect.

read table i_tab3 with key saknr = i_tab2-hkont.

if bseg-bschl = '40'.

dramt = bseg-dmbtr.

totdr = totdr + dramt.

cramt = 0.

endif.

if bseg-bschl = '31'.

cramt = bseg-dmbtr.

totcr = totcr + cramt.

dramt = 0.

endif.

  • Impression de l'élément de texte ITEM_LINE de la fenêtre MAIN

call function 'WRITE_FORM'

exporting

element = 'ITEM_DETAIL2'

function = 'APPEND'

window = 'MAIN'.

endloop.

endloop.

call function 'WRITE_FORM'

exporting

element = 'TOTAL_2'

window = 'MAIN'.

  • Convert Total Amount into words

call function 'SPELL_AMOUNT'

exporting

amount = totcr

currency = 'LKR '

  • FILLER = ' '

language = sy-langu

importing

in_words = i_inwords

exceptions

not_found = 1

too_large = 2

others = 3 .

if i_inwords-decword = 'ZERO'.

concatenate i_inwords-word 'Only' into tmp_words

separated by space.

else.

concatenate i_inwords-word 'AND CENTS' i_inwords-decword 'ONLY' into

tmp_words separated by space.

endif.

  • Impression de l'élément de texte ITEM_END de la fenêtre MAIN

call function 'WRITE_FORM'

exporting

element = 'ITEM_END'

window = 'MAIN'.

call function 'END_FORM'.

call function 'CLOSE_FORM'.

regard

nawa

1 REPLY 1
Read only

Former Member
0 Likes
337

in your z table add one more field as flag... whenever particular sap script is called you make this flag as 'X'.

Or may be after printing you can give pop-up to user asking whether print was successful.. if user presses yes then update this flag as 'X'.

and for all entries having this flag set.. you can deny print permission.