2014 Jul 02 1:51 PM
Hi Experts,
I have to solve a problem with SAP script form displayed for an FI report.
This report was previously developed by someone else and I am totally new to SAP scripts.
The problem is when the user enters one document name and executes the form is displayed properly
But if he enters multiple documents and executes then in all pages of the forms, same vendor name and address is printed which is of the last document.
Rest all the info is displayed properly on all the pages.
I checked the code but it is written very badly and I tried to clear the variables for vendor name & add but then it is not displayed on the form.
So pls help me where should I look for the problem ?
Thanks,
Vishal.
2014 Jul 02 1:57 PM
It's necessary more details about this code,
but if the vendor name in all pages is the same global variable name
maybe your error it's loading from main program only one vendor name because this variable.
It's possible to loop in main program your vendors and call inside this loop the layout window,
All this examples depends of your current code and your layout requeriment.
2014 Jul 02 2:27 PM
Just to be clear. Only the main window varies as the data flows. In all other windows the data is only read once. I'd expect the OPs problem is in another window.
Neal
2014 Jul 02 2:08 PM
It's been a long time, but try close_form then open_form between documents. This happens in the print program not in the sapscript.
Neal
2014 Jul 02 2:11 PM
... if necessary (regarding your current code and your requirement) check write_form_lines function: WRITE_FORM_LINES - BC - SAPscript Printing with Forms - SAP Library
2014 Jul 02 2:56 PM
looks like the formular has not be designed for printing documents together, or there is a bug in the programmlogic.
its hard to to guess where the bug could be especially when your kind of new to sapscript
but if i were you, i woul check following
normaly thats work for sap-script experts
regards
Stefan Seeburger
2014 Jul 03 6:53 AM
Hi all,
I checked everything as you all have mentioned and found out that the vendor name and address are global variables. (v_name1 & v_name2)
After alot of debugging done, these variable are filled with correct data but still not printed on each appropriate form.
I am still not able to find where the problem is exactly.
I know its too much but still I am attaching the code file and a screen shots of the window of the script form where the vendor data is printed.
And currently how the forms are printed.
Pls help me to solve this problem.
Thanks,
Vishal.
**********************************************************************************************
2014 Jul 03 8:44 AM
hi,
can you please post text or jpg files - i dont want to unzip or exe
i will have a look after work.
regards
Stefan Seeburger
2014 Jul 03 11:03 AM
Ok I pasted the code in two parts in my below replies.
Pls check whenever you can and reply.
Thanks,
Vishal
2014 Jul 03 2:12 PM
Recalling my earlier statement: Window - Window4 is not window - Main. It is not possible for data to change in that window. It is necessary to close the form and reopen it every time you want that data to change.
Neal
2014 Jul 04 4:58 AM
Hi Neal,
Thanks for your reply.
I did notice your comment regarding the data flow in the main window,
But if u look at the images I pasted on my above reply, you will notice that the data in the adjacent window is changing, and this window5 is not in the main window also.
The FI document no,, Bill & posing dates change with the page change.
Regards,
Vishal.
2014 Jul 03 10:56 AM
Hi Stefan,
I attached a text file only but somehow it was converted to ZIP file.
Anyway I m trying to attached it again but it is automatically converted to a ZIP file.
So I tried pasting the code here but its not posting saying Message body is too large.
What should I do ? pls try to unzip the file only one text file is in it.
And form print images are already posted in previous reply.
Thanks,
Vishal.
2014 Jul 03 11:01 AM
*&---------------------------------------------------------------------*
*& Report YR_FI_VOUCHERS_SUJ
*&
*&---------------------------------------------------------------------*
*&
*&
*&----------------------------------------------------------------------*
REPORT yr_fi_vouchers_suj
MESSAGE-ID zfi NO STANDARD PAGE HEADING LINE-SIZE 132.
TABLES : adrc , stxh.
DATA : v_logo(25) TYPE c.
TYPES : BEGIN OF ty_t001w,
werks TYPE t001w-werks,
name1 TYPE t001w-name1,
END OF ty_t001w.
DATA :it_t001w TYPE TABLE OF ty_t001w,
wa_t001w TYPE ty_t001w.
DATA : p_plant TYPE t001w-werks.
DATA : p_name TYPE t001w-name1,
v_prctr TYPE bseg-prctr,
v_prctr1(10),
v_werks TYPE t001w-werks.
DATA: v_belnr TYPE bkpf-belnr,
t_belnr TYPE bkpf-belnr,
t_blart TYPE bkpf-blart,
t_budat TYPE bkpf-budat,
t_bldat TYPE bkpf-bldat,
t_xblnr TYPE bkpf-xblnr.
DATA : v_name TYPE adrc-name1,
v_add1 TYPE rstxt-tdname,
v_add2 TYPE rstxt-tdname,
v_add3 TYPE rstxt-tdname.
DATA : v_sort TYPE adrc-name1.
DATA :v_name1 TYPE adrc-name1,
v_name2 TYPE adrc-name1,
v_add1_1 TYPE rstxt-tdname,
v_add2_1 TYPE rstxt-tdname,
v_add3_1 TYPE rstxt-tdname.
DATA : v_comp TYPE zlogo_mas-bukrs.
DATA : v_plant TYPE zlogo_mas-werks.
DATA :v_telno TYPE adrc-tel_number, "Added new
v_faxno TYPE adrc-fax_number.
DATA :v_telno1 TYPE rstxt-tdname, "Added new
v_faxno1 TYPE rstxt-tdname.
DATA :v_telno_1 TYPE adrc-tel_number, "Added new
v_faxno_1 TYPE adrc-fax_number.
DATA :v_telno1_2 TYPE rstxt-tdname, "Added new
v_faxno1_2 TYPE rstxt-tdname.
DATA : wrk_name(50) VALUE 'XXXXXXXXXXXXXXXXXXXXX'.
DATA : simple LIKE thead-tdname.
DATA : itline LIKE tline OCCURS 0 WITH HEADER LINE.
DATA: wrk_acc(10),
vend_name(50),
wrk_desc(50),
wrk_kostl(25),
flg_check,
wrk_dueon LIKE sy-datum ,
amt_inr LIKE bseg-wrbtr,
amt_usd(16) TYPE p DECIMALS 2,
a_inr LIKE bseg-wrbtr,
a_usd(16) TYPE p DECIMALS 2,
pay_term(50),
bsart LIKE ekko-bsart,
zterm LIKE ekko-zterm,
flg_w.
*DECLARATION FOR OUTPUT IN CHECK PROGRAM STYLE
DATA : txt_zeile(132) TYPE c, "WORK FIELD FOR TEXT
flg_local(1) TYPE c. "LOCAL FLAG
DATA BEGIN OF tab_fimsg OCCURS 5. "NIMMT GESAMMELTE MESSAGES AUF
INCLUDE STRUCTURE fimsg. "ERROR MESSAGES
DATA: END OF tab_fimsg.
DATA: BEGIN OF tab_ausgabe OCCURS 3, "SPOOLNUMMERN DER FORMULARE UND
filename(47) TYPE c, "LISTEN UND FILENAME BEI DTA
renum LIKE regut-renum, "SPOOL NUMBERS OF FORMS AND LISTS
dataset LIKE sy-prdsn, "AND FILE NAMES (DME)
name(35) TYPE c,
spoolnr LIKE sy-sponr,
immed(1) TYPE c,
error(1) TYPE c,
END OF tab_ausgabe.
DATA ikokrs LIKE tka02-kokrs.
* GLOBAL DECLARATIONS:
INCLUDE rfkori00.
* DATA DECLARATIONS:
INCLUDE yr_fi_vouchers_include.
begin_of_block 0 .
SELECT-OPTIONS : rbukrs FOR bkpf-bukrs OBLIGATORY DEFAULT 1000,
rgsber FOR bseg-gsber. "OBLIGATORY.
* RBELNR FOR BKPF-BELNR, " COMMENTED SHANU
* RBUDAT FOR BKPF-BUDAT, " COMMENTED SHANU
PARAMETERS : rgjahr LIKE bkpf-gjahr OBLIGATORY.
end_of_block 0.
begin_of_block 1.
* SELECT-OPTIONS: RGSBER FOR BSEG-GSBER DEFAULT '*'. "COMMENTED SHANU
SELECT-OPTIONS: rbelnr FOR bkpf-belnr,
rbudat FOR bkpf-budat,
* RBLART FOR BKPF-BLART,
rusnam FOR bkpf-usnam.
end_of_block 1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
PARAMETERS : p_purch RADIOBUTTON GROUP rad, "FOR PURCHASE VOUCHER
p_bank RADIOBUTTON GROUP rad, "FOR BANK VOUCHER
p_cash RADIOBUTTON GROUP rad, "CASH VOUCHER
p_journ RADIOBUTTON GROUP rad. "JOURNAL VOUCHERS
SELECTION-SCREEN END OF BLOCK b2.
begin_of_block 2.
PARAMETERS printer LIKE rfpdo-fordpriz OBLIGATORY.
end_of_block 2.
START-OF-SELECTION.
*FOR COMPAY NAME - TITLE IN THE LAYOUT
SELECT * FROM t001
INTO CORRESPONDING FIELDS OF TABLE it001
WHERE bukrs IN rbukrs.
*END
READ TABLE it001 INDEX 1.
SELECT SINGLE * FROM adrc WHERE addrnumber = it001-adrnr.
* IF RBELNR-LOW = 1.
IF rbelnr-low IS INITIAL.
* IF DOC. NO IS NOT SPECIFIED, CREATE VOUCHER FOR POSTING DATE:
PERFORM process_for_pos_date.
ELSE.
* IF DOC. NO. IS GIVEN, CREATE VOUCHER FOR DOC. NO.:
PERFORM process_for_doc_no.
ENDIF.
PERFORM close_form.
*---------------------------------------------------------------------*
TOP-OF-PAGE.
WRITE :/127 sy-pagno.
*&---------------------------------------------------------------------*
FORM process_for_doc_no.
break abapcons.
IF p_purch = 'X'.
*************************************FOR PURCHASE VOUCHER***********************************
SELECT * FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE bkpftab
WHERE bukrs IN rbukrs AND belnr IN rbelnr
AND gjahr EQ rgjahr AND blart IN ('RE','RA','RN','RK','P1','P2','P3','P4','P5','P6','P7','P8') " ADDED NEW FOR REQ BY PRASANNA ON 4.5.2012
AND usnam IN rusnam AND budat IN rbudat.
*************************************END PURCHASE VOUCHER***********************************
ELSEIF p_bank = 'X'.
*************************************FOR BANK VOUCHER***********************************
SELECT * FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE bkpftab
WHERE bukrs IN rbukrs AND belnr IN rbelnr
AND gjahr EQ rgjahr AND blart IN ('KZ','DZ', 'IP', 'IR')
AND usnam IN rusnam AND budat IN rbudat.
*************************************END BANK VOUCHER***********************************
ELSEIF p_cash = 'X'.
*************************************FOR CASH VOUCHER***********************************
SELECT * FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE bkpftab
WHERE bukrs IN rbukrs AND belnr IN rbelnr
AND gjahr EQ rgjahr AND blart IN ('CJ','BJ')
AND usnam IN rusnam AND budat IN rbudat.
*************************************END CASH VOUCHER***********************************
ELSE.
*************************************JOURNAL VOUCHER***********************************
SELECT * FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE bkpftab
WHERE bukrs IN rbukrs AND belnr IN rbelnr
AND gjahr EQ rgjahr AND blart NOT IN ('RE','RA','RN','RK','KZ','DZ','IP','IR','CJ','BJ','P1','P2','P3','P4','P5','P6','P7','P8') " ADDED NEW FOR REQ BY PRASANNA ON 5.5.2012)
AND usnam IN rusnam AND budat IN rbudat.
*************************************END JOURNAL VOUCHER***********************************
ENDIF.
IF sy-subrc = 0. "IF LINE ITEM HEADERS EXIST IN BKPF
CLEAR wrk_dueon.
LOOP AT bkpftab .
bkpftab-v_belnr = bkpftab-awkey+0(10).
MODIFY bkpftab TRANSPORTING v_belnr.
READ TABLE bsegtab WITH KEY belnr = bkpftab-belnr
bukrs = bkpftab-bukrs
gjahr = bkpftab-gjahr
bschl = 86.
IF sy-subrc = 0.
* clear:p_name.
SELECT SINGLE name1 FROM t001w INTO p_name WHERE werks = bsegtab-prctr1.
ENDIF.
************************ADDED BY ASHOK KOTHARI FOR PURCHASE ORDER DETAILS : ON 03-09-09*******************
IF bkpftab-v_belnr IS NOT INITIAL.
SELECT belnr gjahr ebeln matnr menge knttp xblnr lfbnr wrbtr bukrs"ADDED NEW WRBTR
FROM rseg
INTO CORRESPONDING FIELDS OF TABLE itab_rseg
FOR ALL ENTRIES IN bkpftab
WHERE belnr = bkpftab-v_belnr AND gjahr = bkpftab-gjahr. " MODIFIED BY PRASANNA ON 7.5.2012
ELSE.
SELECT belnr gjahr ebeln matnr menge knttp xblnr lfbnr lfgja wrbtr bukrs"modified by prasanna on 5.5.2012"WRBTR
FROM rseg
INTO CORRESPONDING FIELDS OF TABLE itab_rseg
FOR ALL ENTRIES IN bkpftab
WHERE belnr = bkpftab-belnr AND gjahr = bkpftab-gjahr.
ENDIF.
CLEAR : bkpftab.
REFRESH:it_rbkp.
IF itab_rseg[] IS NOT INITIAL.
SELECT belnr gjahr bukrs waers
FROM rbkp INTO TABLE it_rbkp
FOR ALL ENTRIES IN itab_rseg
WHERE belnr = itab_rseg-belnr
AND gjahr = itab_rseg-gjahr
AND bukrs = itab_rseg-bukrs.
ENDIF.
LOOP AT itab_rseg.
IF itab_rseg-menge NE ' 0.00'.
READ TABLE it_rbkp INTO wa_rbkp WITH KEY belnr = itab_rseg-belnr "Added by ananth on 02.07.2012
gjahr = itab_rseg-gjahr
bukrs = itab_rseg-bukrs.
IF sy-subrc = 0.
IF wa_rbkp-waers <> 'INR'.
itab_rseg-wrbtr = ( itab_rseg-wrbtr / 100 ) / itab_rseg-menge . "Added by ananth on 02.07.2012
ELSE.
itab_rseg-wrbtr = itab_rseg-wrbtr / itab_rseg-menge . "Added by ananth on 02.07.2012
ENDIF.
ENDIF.
ENDIF.
MODIFY itab_rseg TRANSPORTING wrbtr.
CLEAR : itab_rseg.
ENDLOOP.
ENDLOOP.
SELECT matnr maktx
FROM makt
INTO TABLE itab_makt
FOR ALL ENTRIES IN itab_rseg
WHERE matnr = itab_rseg-matnr AND spras = 'EN'.
LOOP AT itab_rseg.
READ TABLE itab_makt WITH KEY matnr = itab_rseg-matnr.
IF sy-subrc = 0.
MOVE itab_makt-maktx TO itab_rseg-maktx.
MODIFY itab_rseg.
ENDIF.
CLEAR itab_makt.
CLEAR itab_rseg.
ENDLOOP.
*ADDED BY GD ON 20/05/2002
PERFORM gsber_selection.
LOOP AT bkpftab. "FOR EACH SUCH HEADER, SELECT ALL LINE ITEMS
CLEAR: zcheck_no , flg_w.
SELECT * FROM bseg "BSEG
WHERE belnr = bkpftab-belnr
AND gjahr = bkpftab-gjahr
AND bukrs = bkpftab-bukrs.
MOVE-CORRESPONDING bseg TO bsegtab.
IF NOT bseg-umskz IS INITIAL.
CONCATENATE bsegtab-bschl bseg-umskz INTO bsegtab-bschl.
ENDIF.
* ADDED FOR PUTTING DUE ON DATE
IF flg_w IS INITIAL.
CLEAR wrk_dueon.
ENDIF.
IF wrk_dueon IS INITIAL AND bseg-umskz NE 'W'.
IF NOT bseg-zfbdt IS INITIAL.
wrk_dueon = bseg-zfbdt + bseg-zbd1t.
WRITE wrk_dueon TO bkpftab-dueon DD/MM/YYYY.
* CONCATENATE 'DUE DATE : ' ' ' BKPFTAB-DUEON INTO BKPFTAB-DUEON SEPARATED BY SPACE.
MODIFY bkpftab.
ENDIF.
ELSEIF bseg-umskz = 'W'.
flg_w = 'X'.
wrk_dueon = bseg-zfbdt + bseg-zbd1t.
WRITE wrk_dueon TO bkpftab-dueon DD/MM/YYYY.
* CONCATENATE 'DUE DATE : ' ' ' BKPFTAB-DUEON INTO BKPFTAB-DUEON SEPARATED BY SPACE.
MODIFY bkpftab.
ENDIF.
***
SELECT SINGLE * FROM t001 CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND bukrs = bseg-bukrs.
bsegtab-ktopl = t001-ktopl.
APPEND bsegtab.
ENDSELECT.
ENDLOOP.
DATA : curr TYPE c LENGTH 3.
curr = 'INR'.
LOOP AT bsegtab.
IF bsegtab-lifnr IS NOT INITIAL.
MOVE : bsegtab-lifnr TO bsegtab-lifnr1.
ELSEIF bsegtab-kunnr IS NOT INITIAL.
bsegtab-kunnr1 = bsegtab-kunnr.
ENDIF.
IF bsegtab-shkzg EQ 'H'.
IF bsegtab-wrbtr IS NOT INITIAL.
READ TABLE bkpftab WITH KEY belnr = bsegtab-belnr
gjahr = bsegtab-gjahr
bukrs = bsegtab-bukrs.
IF sy-subrc = 0.
IF bkpftab-waers <> 'INR'. "Commenetd by ananth on 10.07.2012
bsegtab-credit = bsegtab-wrbtr / 100.
ELSE.
bsegtab-credit = bsegtab-wrbtr.
ENDIF.
ENDIF.
ENDIF.
bsegtab-tot_credit = bsegtab-tot_credit + bsegtab-credit."dmbtr. "ADDED NEW FOR TOTAL
ELSEIF
bsegtab-shkzg EQ 'S'.
IF bsegtab-wrbtr IS NOT INITIAL.
READ TABLE bkpftab WITH KEY belnr = bsegtab-belnr
gjahr = bsegtab-gjahr
bukrs = bsegtab-bukrs.
IF sy-subrc = 0.
IF bkpftab-waers <> 'INR'.
bsegtab-debit = ( bsegtab-wrbtr / 100 ).
ELSE.
bsegtab-debit = bsegtab-wrbtr.
ENDIF.
ENDIF.
ENDIF.
bsegtab-tot_debit = bsegtab-tot_debit + bsegtab-debit."bsegtab-dmbtr. "ADDED NEW FOR TOTAL
ENDIF.
MODIFY bsegtab TRANSPORTING lifnr1 kunnr1 credit debit tot_debit tot_credit.
CLEAR : bsegtab.
ENDLOOP.
TYPES : BEGIN OF ty_itab,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
bukrs TYPE bseg-bukrs,
tot_debit TYPE bseg-dmbtr,
tot_credit TYPE bseg-dmbtr,
END OF ty_itab.
DATA : itab TYPE TABLE OF ty_itab,
wa TYPE ty_itab.
LOOP AT bsegtab .
MOVE-CORRESPONDING : bsegtab TO wa.
COLLECT wa INTO itab.
CLEAR : bsegtab , wa.
ENDLOOP.
LOOP AT bsegtab.
READ TABLE itab INTO wa WITH KEY belnr = bsegtab-belnr gjahr = bsegtab-gjahr bukrs = bsegtab-bukrs.
IF sy-subrc EQ 0.
MOVE : wa-tot_debit TO bsegtab-tot_debit,
wa-tot_credit TO bsegtab-tot_credit.
MODIFY bsegtab TRANSPORTING tot_debit tot_credit.
CLEAR : wa , bsegtab.
ENDIF.
ENDLOOP.
LOOP AT bsegtab WHERE koart = 'K' OR koart = 'D'." INTO WA_ITEM.
IF bsegtab-lifnr1 IS NOT INITIAL.
title1_1 = 'Vendor Code'.
title1 = 'Vendor Name & Address'.
*NAME1 = WA_ITEM-NAME1.
*BSEGTAB-acc_code = BSEGTAB-lifnr1. " comm for req
bsegtab-acc_code1 = bsegtab-lifnr1. "added new by prasanna on 4.5.2012
*BSEGTAB-acc_des = wa_item-name1.
ELSEIF bsegtab-kunnr1 IS NOT INITIAL.
title1_1 = 'Customer Code'.
title1 = 'Customer Name & Address'.
bsegtab-acc_code1 = bsegtab-kunnr1. "added new by prasanna on 4.5.2012
ENDIF.
MODIFY bsegtab TRANSPORTING acc_code1 ."acc_code ." modify on 22.5.2012
CLEAR : bsegtab.
ENDLOOP.
IF bsegtab[] IS NOT INITIAL.
SELECT lifnr FROM lfa1 INTO TABLE it_vendor
FOR ALL ENTRIES IN bsegtab
WHERE lifnr = bsegtab-lifnr. "lifnr1. modified on 22.5.2012
ENDIF.
CALL METHOD it_addr->yif_address_mul_joh~vendor_address
EXPORTING
itab_lifnr = it_vendor
IMPORTING
it_addr = it_vendor_addr." itab_addr.
IF bsegtab[] IS NOT INITIAL.
SELECT kunnr FROM kna1 INTO TABLE it_customer
FOR ALL ENTRIES IN bsegtab
WHERE kunnr = bsegtab-kunnr.
ENDIF.
CALL METHOD it_addr->yif_address_mul_joh~cust_address
EXPORTING
itab_kunnr = it_customer
IMPORTING
it_addr = it_customer_addr." itab_addr.
IF it_customer_addr IS NOT INITIAL AND it_vendor_addr IS NOT INITIAL.
LOOP AT it_vendor_addr INTO wa_vendor_addr.
MOVE-CORRESPONDING : wa_vendor_addr TO wa_address.
APPEND wa_address TO it_address.
CLEAR : wa_address.
ENDLOOP.
LOOP AT it_customer_addr INTO wa_customer_addr.
MOVE-CORRESPONDING : wa_customer_addr TO wa_address.
APPEND wa_address TO it_address.
CLEAR : wa_address.
ENDLOOP.
ELSEIF it_vendor_addr IS NOT INITIAL.
it_address = it_vendor_addr.
ELSEIF
it_customer_addr IS NOT INITIAL.
it_address = it_customer_addr.
ENDIF.
TYPES:BEGIN OF st_plant,
werks TYPE vbrp-werks,
END OF st_plant.
DATA plant_addr TYPE REF TO ycl_address_mul_joh. "Select_address
DATA :it_plant TYPE TABLE OF st_plant, "Yaddr_com,
wa_plant TYPE st_plant,
it_plant1 TYPE TABLE OF yaddr_com,
wa_plant1 TYPE yaddr_com.
DATA : var1 TYPE bseg-prctr. "added new by prasanna
LOOP AT bsegtab.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = bsegtab-prctr
IMPORTING
output = bsegtab-prctr.
MOVE : bsegtab-prctr TO bsegtab-prctr1.
MODIFY bsegtab TRANSPORTING prctr1.
CLEAR : bsegtab.
ENDLOOP.
LOOP AT bsegtab.
IF bsegtab-lifnr IS NOT INITIAL.
MOVE : bsegtab-prctr1 TO wa_plant-werks.
IF wa_plant-werks IS NOT INITIAL.
SELECT SINGLE name1 FROM t001w INTO p_name
WHERE werks = wa_plant-werks. " p_plant.
ENDIF.
ELSEIF
bsegtab-kunnr IS NOT INITIAL.
MOVE : bsegtab-prctr1 TO wa_plant-werks.
IF wa_plant-werks IS NOT INITIAL.
SELECT SINGLE name1 FROM t001w INTO p_name
WHERE werks = wa_plant-werks.
ENDIF.
ENDIF.
APPEND wa_plant TO it_plant.
CLEAR : wa_plant , wa_bseg.
SELECT SINGLE logo FROM zlogo_mas INTO v_logo
WHERE werks = bsegtab-prctr1.
MOVE : bsegtab-bukrs TO v_comp.
ENDLOOP.
DELETE it_plant WHERE werks EQ ' '.
IF it_plant IS INITIAL.
LOOP AT bsegtab.
IF bsegtab-hkont IS NOT INITIAL.
MOVE : bsegtab-prctr1 TO wa_plant-werks.
IF wa_plant-werks IS NOT INITIAL.
SELECT SINGLE name1 FROM t001w INTO p_name
WHERE werks = wa_plant-werks.
ENDIF.
ENDIF.
APPEND wa_plant TO it_plant.
CLEAR : wa_plant.
ENDLOOP.
ENDIF.
**************Added new for req on 9.5.2012
********
LOOP AT it_plant INTO wa_plant.
MOVE : wa_plant-werks TO p_plant.
CLEAR: wa_plant.
ENDLOOP.
IF it_plant[] IS NOT INITIAL.
CREATE OBJECT plant_addr.
CALL METHOD plant_addr->yif_address_mul_joh~plant_addr
EXPORTING
it_werks = it_plant[]
IMPORTING
plant_adr = it_plant1[].
ENDIF.
LOOP AT it_plant1 INTO wa_plant1.
CLEAR:v_add1,v_add2,v_add3.
v_name = wa_plant1-name.
IF wa_plant1-house_num1 IS NOT INITIAL.
CONCATENATE wa_plant1-house_num1 v_add1 INTO v_add1 .
ENDIF.
IF wa_plant1-street IS NOT INITIAL.
IF v_add1 IS INITIAL.
CONCATENATE v_add1 wa_plant1-street INTO v_add1.
ELSE.
CONCATENATE v_add1 wa_plant1-street INTO v_add1 SEPARATED BY
','.
ENDIF.
ENDIF.
IF wa_plant1-str_suppl1 IS NOT INITIAL.
IF v_add1 IS INITIAL.
CONCATENATE v_add1 wa_plant1-str_suppl1 INTO v_add1 .
ELSE.
CONCATENATE v_add1 wa_plant1-str_suppl1 INTO v_add1
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_plant1-str_suppl2 IS NOT INITIAL.
CONCATENATE wa_plant1-str_suppl2 v_add2 INTO v_add2 .
ENDIF.
IF wa_plant1-str_suppl3 IS NOT INITIAL.
IF v_add2 IS INITIAL.
CONCATENATE v_add2 wa_plant1-str_suppl3 INTO v_add2 .
ELSE.
CONCATENATE v_add2 wa_plant1-str_suppl3 INTO v_add2
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_plant1-city IS NOT INITIAL.
IF v_add2 IS INITIAL.
CONCATENATE v_add2 wa_plant1-city INTO v_add2 .
ELSE.
CONCATENATE v_add2 wa_plant1-city INTO v_add2
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_plant1-state IS NOT INITIAL.
CONCATENATE v_add3 wa_plant1-state INTO v_add3.
ENDIF.
IF wa_plant1-postal IS NOT INITIAL.
IF v_add3 IS INITIAL.
CONCATENATE v_add3 wa_plant1-postal INTO v_add3.
ELSE.
CONCATENATE v_add3 wa_plant1-postal INTO v_add3
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_plant1-country_name IS NOT INITIAL.
IF v_add3 IS INITIAL.
CONCATENATE v_add3 wa_plant1-country_name INTO v_add3 .
ELSE.
CONCATENATE v_add3 wa_plant1-country_name INTO v_add3
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_plant1-tel_number IS NOT INITIAL.
MOVE: wa_plant1-tel_number TO v_telno.
ENDIF .
IF v_telno IS NOT INITIAL.
CONCATENATE 'TEL:' v_telno INTO v_telno1 SEPARATED BY space.
ENDIF.
IF wa_plant1-fax_number IS NOT INITIAL.
MOVE : wa_plant1-fax_number TO v_faxno.
ENDIF.
IF v_faxno IS NOT INITIAL.
CONCATENATE 'FAX:' v_faxno INTO v_faxno1 SEPARATED BY space.
ENDIF.
CLEAR: wa_plant1.
ENDLOOP.
*************FOR GETTING WBS NO. ***********************************
LOOP AT bsegtab.
CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT'
EXPORTING
input = bsegtab-projk
IMPORTING
output = bsegtab-wbsno.
IF sy-subrc = 0.
MODIFY bsegtab.
ENDIF.
ENDLOOP.
*****************END GETTING WBS NO.**********************************
*FOR EACH ACCOUNT NO. APPEARING IN BSEGTAB, TEXT EXPLAINING THE NATURE
*OF THE ACCOUNT IS PICKED UP FROM SKAT, AND STORED IN A SEPARATE FIELD
*-------------------------------------------------------------------++
LOOP AT bsegtab.
CASE bsegtab-koart.
WHEN 'S' OR 'A'.
SELECT SINGLE * FROM skat
WHERE saknr = bsegtab-hkont
AND ktopl = bsegtab-ktopl
AND spras = 'E'.
* BSEGTAB-TXT50 = SKAT-TXT50. "commented for short text
bsegtab-txt50 = skat-txt20."added new
MODIFY bsegtab.
WHEN 'K'.
SELECT SINGLE * FROM lfa1
WHERE lifnr = bsegtab-lifnr.
* BSEGTAB-NAME1 = LFA1-NAME1.
bsegtab-txt50 = lfa1-name1.
MODIFY bsegtab.
WHEN 'M'.
SELECT SINGLE * FROM skat
WHERE spras = 'E'
AND saknr = bsegtab-hkont.
* BSEGTAB-TXT50 = SKAT-TXT50. "comm for sh. txt
bsegtab-txt50 = skat-txt20."added new
MODIFY bsegtab.
WHEN 'D'.
SELECT SINGLE name1
FROM kna1
INTO bsegtab-txt50
WHERE kunnr = bsegtab-kunnr.
MODIFY bsegtab.
ENDCASE.
CLEAR:bsegtab. "Added by ananth
ENDLOOP.
*VOUCHER DETAILS AS GATHERED ABOVE ARE DISPLAYED IN TABLE FORM ON SCREEN
PERFORM print_voucher_data.
ELSE. "IF LINE ITEM HEADER ACCORDING TO INPUT IS NOT IN BKPF
MESSAGE i000 WITH 'DOCUMENT DOES NOT EXIST'.
ENDIF.
ENDFORM. " PROCESS_FOR_DOC_NO
*&---------------------------------------------------------------------*
FORM process_for_pos_date.
*SELECTING LINE ITEM HEADERS FROM BKPF ACCORDING TO USER INPUT AND STORING THEM IN BKPFTAB
IF p_purch = 'X'.
*************************************FOR PURCHASE VOUCHER***********************************
SELECT * FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE bkpftab
WHERE bukrs IN rbukrs
AND gjahr EQ rgjahr AND blart IN ('RE','RA','RN','RK','P1','P2','P3','P4','P5','P6','P7','P8') "added new by prasanna (P1,p2,p3)
AND usnam IN rusnam AND budat IN rbudat.
*************************************END PURCHASE VOUCHER***********************************
ELSEIF p_bank = 'X'.
*************************************FOR BANK VOUCHER***********************************
SELECT * FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE bkpftab
WHERE bukrs IN rbukrs
AND gjahr EQ rgjahr AND blart IN ('KZ','DZ', 'IP', 'IR')
AND usnam IN rusnam AND budat IN rbudat.
*************************************END BANK VOUCHER***********************************
ELSEIF p_cash = 'X'.
*************************************FOR CASH VOUCHER***********************************
SELECT * FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE bkpftab
WHERE bukrs IN rbukrs
AND gjahr EQ rgjahr AND blart IN ('CJ','BJ')
AND usnam IN rusnam AND budat IN rbudat.
*************************************END CASH VOUCHER***********************************
ELSE.
*************************************JOURNAL VOUCHER***************************************
SELECT * FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE bkpftab
WHERE bukrs IN rbukrs
AND gjahr EQ rgjahr AND blart NOT IN ('RE','RA','RN','RK','KZ','DZ','IP','IR','CJ','BJ','P1','P2','P3','P4','P5','P6','P7','P8') " ADDED NEW FOR REQ BY PRASANNA ON 5.5.2012)
AND usnam IN rusnam AND budat IN rbudat.
*************************************END JOURNAL VOUCHER***********************************
ENDIF.
************************ADDED BY ASHOK KOTHARI FOR PURCHASE ORDER DETAILS : ON 03-09-09*******************
********************Added new by prasanna on 7.5.2012
LOOP AT bkpftab .
bkpftab-v_belnr = bkpftab-awkey+0(10).
MODIFY bkpftab TRANSPORTING v_belnr.
************************ADDED BY ASHOK KOTHARI FOR PURCHASE ORDER DETAILS : ON 03-09-09*******************
IF bkpftab-v_belnr IS NOT INITIAL.
SELECT belnr gjahr ebeln matnr menge knttp xblnr lfbnr wrbtr
FROM rseg
INTO CORRESPONDING FIELDS OF TABLE itab_rseg
FOR ALL ENTRIES IN bkpftab
WHERE belnr = bkpftab-v_belnr AND gjahr = bkpftab-gjahr. " MODIFIED BY PRASANNA ON 7.5.2012
ELSE.
SELECT belnr gjahr ebeln matnr menge knttp xblnr lfbnr wrbtr "ADDED NEW BY PRASANNA ON 19.5.2012
FROM rseg
INTO CORRESPONDING FIELDS OF TABLE itab_rseg
FOR ALL ENTRIES IN bkpftab
WHERE belnr = bkpftab-belnr AND gjahr = bkpftab-gjahr.
ENDIF.
CLEAR : bkpftab.
ENDLOOP.
********************" MODIFIED BY PRASANNA ON 7.5.2012 by prasanna on 7.5.2012
SELECT matnr maktx
FROM makt
INTO TABLE itab_makt
FOR ALL ENTRIES IN itab_rseg
WHERE matnr = itab_rseg-matnr AND spras = 'EN'.
LOOP AT itab_rseg.
READ TABLE itab_makt WITH KEY matnr = itab_rseg-matnr.
IF sy-subrc = 0.
MOVE itab_makt-maktx TO itab_rseg-maktx.
MODIFY itab_rseg.
ENDIF.
CLEAR itab_makt.
CLEAR itab_rseg.
ENDLOOP.
*************************END ADDING************************************************************************
PERFORM gsber_selection.
IF sy-subrc = 0. "IF LINE ITEM HEADERS EXIST IN BKPF
LOOP AT bkpftab. "FOR EACH SUCH HEADER, SELECT ALL LINE ITEMS FROM
SELECT * FROM bseg "BSEG
WHERE belnr = bkpftab-belnr AND
gjahr = bkpftab-gjahr AND
bukrs = bkpftab-bukrs.
MOVE-CORRESPONDING bseg TO bsegtab.
*
IF NOT bseg-umskz IS INITIAL.
CONCATENATE bsegtab-bschl bseg-umskz INTO bsegtab-bschl.
ENDIF.
* ADDED FOR PUTTING DUE ON DATE
IF flg_w IS INITIAL.
CLEAR wrk_dueon.
ENDIF.
IF wrk_dueon IS INITIAL AND bseg-umskz NE 'W'.
IF NOT bseg-zfbdt IS INITIAL.
wrk_dueon = bseg-zfbdt + bseg-zbd1t.
WRITE wrk_dueon TO bkpftab-dueon DD/MM/YYYY.
* CONCATENATE 'DUE DATE : ' ' ' BKPFTAB-DUEON INTO BKPFTAB-DUEON SEPARATED BY SPACE.
MODIFY bkpftab.
ENDIF.
ELSEIF bseg-umskz = 'W'.
flg_w = 'X'.
wrk_dueon = bseg-zfbdt + bseg-zbd1t.
WRITE wrk_dueon TO bkpftab-dueon DD/MM/YYYY.
* CONCATENATE 'DUE DATE : ' ' ' BKPFTAB-DUEON INTO BKPFTAB-DUEON SEPARATED BY SPACE.
MODIFY bkpftab.
ENDIF.
***
APPEND bsegtab.
ENDSELECT.
ENDLOOP.
IF rgsber-low <> '*' AND rgsber-low <> ' '.
LOOP AT bsegtab.
* IF BSEGTAB-GSBER >= RGSBER-LOW AND BSEGTAB-GSBER <= RGSBER-HIGH.
IF bsegtab-gsber <> rgsber.
* ABOVE COMMENTED AND REPLACED WITH STATEMENT BELOW.
* IF BSEGTAB-GSBER = RGSBER.
doctab-belnr = bsegtab-belnr.
COLLECT doctab. "EACH DOC. NO. IS STORED ONLY ONCE
ENDIF.
ENDLOOP.
*SORTING DOC. NOS. SO THAT A BINARY SEARCH THROUGH DOCTAB IS FACILITATED
SORT doctab BY belnr AS TEXT.
*GOING THROUGH EACH RECORD OF BSEGTAB, AND CHECKING WHETHER THE DOC. NO.
*IS PRESENT IN DOCTAB, OTHERWISE THE DOC. IS LABELLED 'INVALID' AND
*DELETED FROM BSEGTAB " ZFIDFORM
LOOP AT bsegtab.
valid_doc = 'FALSE'.
READ TABLE doctab WITH KEY belnr = bsegtab-belnr BINARY SEARCH.
IF sy-subrc = 0.
valid_doc = 'TRUE'.
ENDIF.
IF valid_doc = 'FALSE'.
DELETE bsegtab.
ENDIF.
ENDLOOP.
*GOING THROUGH EACH RECORD OF BKPFTAB, AND CHECKING WHETHER THE DOC. NO.
*IS PRESENT IN DOCTAB, OTHERWISE THE DOC. IS LABELLED 'INVALID' AND
*DELETED FROM BKPFTAB
LOOP AT bkpftab.
valid_doc = 'FALSE'.
READ TABLE doctab WITH KEY belnr = bkpftab-belnr BINARY SEARCH.
READ TABLE doctab WITH KEY belnr = bkpftab-belnr BINARY SEARCH.
IF sy-subrc = 0.
valid_doc = 'TRUE'.
ENDIF.
IF valid_doc = 'FALSE'.
DELETE bkpftab.
ENDIF.
ENDLOOP.
FREE doctab.
ENDIF.
LOOP AT bsegtab.
***************ADDED BY ASHOK KOTHARI ON 02-09-09 FOR DESCRIPTION************************
SELECT SINGLE ktopl
FROM t001 CLIENT SPECIFIED
INTO bsegtab-ktopl
WHERE mandt = sy-mandt
AND bukrs = bseg-bukrs.
MODIFY bsegtab.
****************END ADDING****************************************************************
CASE bsegtab-koart.
WHEN 'S' OR 'A'.
SELECT SINGLE * FROM skat
WHERE saknr = bsegtab-hkont
AND ktopl = bsegtab-ktopl
AND spras = 'E'.
bsegtab-txt50 = skat-txt50.
MODIFY bsegtab.
WHEN 'K'.
SELECT SINGLE * FROM lfa1
WHERE lifnr = bsegtab-lifnr.
* BSEGTAB-NAME1 = LFA1-NAME1.
bsegtab-txt50 = lfa1-name1.
MODIFY bsegtab.
WHEN 'M'.
SELECT SINGLE * FROM skat
WHERE spras = 'E'
AND saknr = bsegtab-hkont.
bsegtab-txt50 = skat-txt50.
MODIFY bsegtab.
WHEN 'D'.
SELECT SINGLE name1
FROM kna1
INTO bsegtab-txt50
WHERE kunnr = bsegtab-kunnr.
MODIFY bsegtab.
ENDCASE.
CLEAR:bsegtab."Added by ananth
ENDLOOP.
*VOUCHER DETAILS AS GATHERED ABOVE ARE DISPLAYED IN TABLE FORM ON SCREEN
* PERFORM DISPLAY-VOUCHER-DATA.
PERFORM print_voucher_data.
ELSE. "IF LINE ITEM HEADER AS PER USER INPUT IS NOT IN BKPF
MESSAGE i000 WITH 'DOCUMENT DOES NOT EXIST'.
ENDIF.
ENDFORM. " PROCESS_FOR_POS_DATE
*&---------------------------------------------------------------------*
FORM print_voucher_data.
DATA : ilines(5) TYPE n,
ino(5) TYPE n.
itcpo-tdtitle = 'VOUCHER PRINTOUT'.
itcpo-tdcovtitle = 'VOUCHER PRINTOUT'.
CLEAR itcpo.
itcpo-tdpageslct = space. "ALL PAGES
itcpo-tdnewid = 'X'. "CREATE NEW SPOOL DATASET
itcpo-tdcopies = 1. "ONE COPY
itcpo-tddest = printer. "NAME OF PRINTER
itcpo-tdpreview = ' '. "NO PREVIEW
itcpo-tdcover = space. "NO COVER PAGE
* ITCPO-TDDATASET = P_TDDATASET. "DATASET NAME
* IF ZW_XVORL EQ SPACE.
* ITCPO-TDSUFFIX1 = P_TDDEST. "NAME OR PRINTER
* ELSE.
* ITCPO-TDSUFFIX1 = 'TEST'. "TEST RUN
* ENDIF.
* ITCPO-TDSUFFIX2 = PAR_VARI. "NAME OF REPORT VARIANT
itcpo-tdimmed = ' '. "PRINT IMMEDIATELY?
itcpo-tddelete = space. "DO NOT DELETE AFTER PRINT
itcpo-tdtitle = 'VOUCHER PRINTOUT'. "TITLE OF POP-UP-WINDOW
itcpo-tdcovtitle = 'VOUCHER PRINTOUT'. "TITLE OF PRINT-COVER
* ITCPO-TDAUTORITY = P_TDAUTORITY. "PRINT AUTHORITY
itcpo-tdarmod = 1. "PRINT ONLY
CALL FUNCTION 'OPEN_FORM'
EXPORTING
device = 'PRINTER'
dialog = 'X'
form = 'YSCR_FI_VOUCHER'
language = sy-langu
options = itcpo
IMPORTING
result = itcpp
EXCEPTIONS
canceled = 1
device = 2
form = 3
options = 4
unclosed = 5
OTHERS = 6.
DATA flg_start.
CLEAR flg_start.
*FOR DOCUMENT TYPE DESCRPTION
LOOP AT bkpftab.
SELECT SINGLE * FROM t003t
WHERE blart EQ bkpftab-blart
AND spras EQ 'E'.
IF sy-subrc EQ 0.
MOVE t003t-ltext TO bkpftab-ltext.
MODIFY bkpftab.
ENDIF.
ENDLOOP.
************************Added new logic for change of heading.
*LOOP AT BKPFTAB.
*break sdcons.
LOOP AT bkpftab.
IF bkpftab-v_belnr IS NOT INITIAL.
SELECT belnr tbtkz FROM rseg INTO CORRESPONDING FIELDS OF TABLE itab_text
FOR ALL ENTRIES IN bkpftab WHERE belnr = bkpftab-v_belnr.
ELSE.
* IF bkpftab IS NOT INITIAL.
SELECT belnr tbtkz FROM rseg INTO CORRESPONDING FIELDS OF TABLE itab_text
FOR ALL ENTRIES IN bkpftab WHERE belnr = bkpftab-belnr.
ENDIF.
IF bkpftab-v_belnr IS NOT INITIAL.
SELECT belnr xrech FROM rbkp INTO CORRESPONDING FIELDS OF TABLE itab_text1
FOR ALL ENTRIES IN bkpftab WHERE belnr = bkpftab-v_belnr.
ELSE.
SELECT belnr xrech FROM rbkp INTO CORRESPONDING FIELDS OF TABLE itab_text1
FOR ALL ENTRIES IN bkpftab WHERE belnr = bkpftab-belnr.
ENDIF.
ENDLOOP.
LOOP AT itab_text1 INTO wa_text1.
READ TABLE itab_text INTO wa_text WITH KEY belnr = wa_text1-belnr.
IF wa_text-tbtkz NE ' '.
MOVE: wa_text-tbtkz TO wa_text1-tbtkz.
* MODIFY itab_text1 FROM wa_text1 TRANSPORTING tbtkz. "commented by prasanna on 7.5.2012
MODIFY itab_text1 FROM wa_text1 TRANSPORTING tbtkz.
CLEAR : wa_text.
ENDIF.
ENDLOOP.
IF bkpftab-blart = 'RE' .
LOOP AT itab_text1 INTO wa_text1.
IF wa_text1-xrech = 'X' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'INVOICE'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'DEBIT MEMO'."'CREDIT MEMO'.
ELSEIF wa_text1-xrech = 'X' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT CREDIT'."'SUBSEQUENT DEBIT'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT DEBIT'."'SUBSEQUENT CREDIT'.
ENDIF.
MODIFY itab_text1 FROM wa_text1 TRANSPORTING text.
ENDLOOP.
LOOP AT bkpftab.
READ TABLE itab_text1 INTO wa_text1 WITH KEY belnr = bkpftab-belnr.
IF sy-subrc EQ 0.
MOVE : wa_text1-text TO bkpftab-ltext.
MODIFY bkpftab TRANSPORTING ltext.
ENDIF.
ENDLOOP.
ELSEIF bkpftab-blart = 'P1'.
LOOP AT itab_text1 INTO wa_text1.
IF wa_text1-xrech = 'X' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'INVOICE'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'DEBIT MEMO'."'CREDIT MEMO'.
ELSEIF wa_text1-xrech = 'X' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT CREDIT'."'SUBSEQUENT DEBIT'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT DEBIT'."'SUBSEQUENT CREDIT'.
ENDIF.
MODIFY itab_text1 FROM wa_text1 TRANSPORTING text.
ENDLOOP.
LOOP AT bkpftab.
* READ TABLE itab_text1 INTO wa_text1 WITH KEY belnr = bkpftab-belnr. "commented by prasanna on 8.5.2012
READ TABLE itab_text1 INTO wa_text1 WITH KEY belnr = bkpftab-v_belnr. "added by prasanna on 8.5.2012
IF sy-subrc EQ 0.
MOVE : wa_text1-text TO bkpftab-ltext.
MODIFY bkpftab TRANSPORTING ltext.
ENDIF.
ENDLOOP.
ELSEIF bkpftab-blart = 'P2' .
LOOP AT itab_text1 INTO wa_text1.
IF wa_text1-xrech = 'X' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'INVOICE'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'DEBIT MEMO'."'CREDIT MEMO'.
ELSEIF wa_text1-xrech = 'X' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT CREDIT'."'SUBSEQUENT DEBIT'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT DEBIT'."'SUBSEQUENT CREDIT'.
ENDIF.
MODIFY itab_text1 FROM wa_text1 TRANSPORTING text.
ENDLOOP.
LOOP AT bkpftab.
READ TABLE itab_text1 INTO wa_text1 WITH KEY belnr = bkpftab-v_belnr.
IF sy-subrc EQ 0.
MOVE : wa_text1-text TO bkpftab-ltext.
MODIFY bkpftab TRANSPORTING ltext.
ENDIF.
ENDLOOP.
ELSEIF bkpftab-blart = 'P3'. "OR bkpftab-blart = 'P1' OR bkpftab-blart = 'P2' OR bkpftab-blart = 'P3' .
LOOP AT itab_text1 INTO wa_text1.
IF wa_text1-xrech = 'X' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'INVOICE'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'DEBIT MEMO'."'CREDIT MEMO'.
ELSEIF wa_text1-xrech = 'X' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT CREDIT'."'SUBSEQUENT DEBIT'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT DEBIT'."'SUBSEQUENT CREDIT'.
ENDIF.
MODIFY itab_text1 FROM wa_text1 TRANSPORTING text.
ENDLOOP.
LOOP AT bkpftab.
READ TABLE itab_text1 INTO wa_text1 WITH KEY belnr = bkpftab-v_belnr.
IF sy-subrc EQ 0.
MOVE : wa_text1-text TO bkpftab-ltext.
MODIFY bkpftab TRANSPORTING ltext.
ENDIF.
ENDLOOP.
ELSEIF bkpftab-blart = 'P4'. "OR bkpftab-blart = 'P1' OR bkpftab-blart = 'P2' OR bkpftab-blart = 'P3' .
LOOP AT itab_text1 INTO wa_text1.
IF wa_text1-xrech = 'X' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'INVOICE'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'DEBIT MEMO'."'CREDIT MEMO'.
ELSEIF wa_text1-xrech = 'X' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT CREDIT'."'SUBSEQUENT DEBIT'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT DEBIT'."'SUBSEQUENT CREDIT'.
ENDIF.
MODIFY itab_text1 FROM wa_text1 TRANSPORTING text.
ENDLOOP.
LOOP AT bkpftab.
READ TABLE itab_text1 INTO wa_text1 WITH KEY belnr = bkpftab-v_belnr.
IF sy-subrc EQ 0.
MOVE : wa_text1-text TO bkpftab-ltext.
MODIFY bkpftab TRANSPORTING ltext.
ENDIF.
ENDLOOP.
ELSEIF bkpftab-blart = 'P5'. "OR bkpftab-blart = 'P1' OR bkpftab-blart = 'P2' OR bkpftab-blart = 'P3' .
LOOP AT itab_text1 INTO wa_text1.
IF wa_text1-xrech = 'X' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'INVOICE'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'DEBIT MEMO'."'CREDIT MEMO'.
ELSEIF wa_text1-xrech = 'X' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT CREDIT'."'SUBSEQUENT DEBIT'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT DEBIT'."'SUBSEQUENT CREDIT'.
ENDIF.
MODIFY itab_text1 FROM wa_text1 TRANSPORTING text.
ENDLOOP.
LOOP AT bkpftab.
READ TABLE itab_text1 INTO wa_text1 WITH KEY belnr = bkpftab-v_belnr.
IF sy-subrc EQ 0.
MOVE : wa_text1-text TO bkpftab-ltext.
MODIFY bkpftab TRANSPORTING ltext.
ENDIF.
ENDLOOP.
ELSEIF bkpftab-blart = 'P6'. "OR bkpftab-blart = 'P1' OR bkpftab-blart = 'P2' OR bkpftab-blart = 'P3' .
LOOP AT itab_text1 INTO wa_text1.
IF wa_text1-xrech = 'X' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'INVOICE'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'DEBIT MEMO'."'CREDIT MEMO'.
ELSEIF wa_text1-xrech = 'X' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT CREDIT'."'SUBSEQUENT DEBIT'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT DEBIT'."'SUBSEQUENT CREDIT'.
ENDIF.
MODIFY itab_text1 FROM wa_text1 TRANSPORTING text.
ENDLOOP.
LOOP AT bkpftab.
READ TABLE itab_text1 INTO wa_text1 WITH KEY belnr = bkpftab-v_belnr.
IF sy-subrc EQ 0.
MOVE : wa_text1-text TO bkpftab-ltext.
MODIFY bkpftab TRANSPORTING ltext.
ENDIF.
ENDLOOP.
ELSEIF bkpftab-blart = 'P7'. "OR bkpftab-blart = 'P1' OR bkpftab-blart = 'P2' OR bkpftab-blart = 'P3' .
LOOP AT itab_text1 INTO wa_text1.
IF wa_text1-xrech = 'X' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'INVOICE'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'DEBIT MEMO'."'CREDIT MEMO'.
ELSEIF wa_text1-xrech = 'X' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT CREDIT'."'SUBSEQUENT DEBIT'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT DEBIT'."'SUBSEQUENT CREDIT'.
ENDIF.
MODIFY itab_text1 FROM wa_text1 TRANSPORTING text.
ENDLOOP.
LOOP AT bkpftab.
READ TABLE itab_text1 INTO wa_text1 WITH KEY belnr = bkpftab-v_belnr.
IF sy-subrc EQ 0.
MOVE : wa_text1-text TO bkpftab-ltext.
MODIFY bkpftab TRANSPORTING ltext.
ENDIF.
ENDLOOP.
ELSEIF bkpftab-blart = 'P8'. "OR bkpftab-blart = 'P1' OR bkpftab-blart = 'P2' OR bkpftab-blart = 'P3' .
LOOP AT itab_text1 INTO wa_text1.
IF wa_text1-xrech = 'X' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'INVOICE'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = ' '.
wa_text1-text = 'DEBIT MEMO'."'CREDIT MEMO'.
ELSEIF wa_text1-xrech = 'X' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT CREDIT'."'SUBSEQUENT DEBIT'.
ELSEIF wa_text1-xrech = ' ' AND wa_text1-tbtkz = 'X'.
wa_text1-text = 'SUBSEQUENT DEBIT'."'SUBSEQUENT CREDIT'.
ENDIF.
MODIFY itab_text1 FROM wa_text1 TRANSPORTING text.
ENDLOOP.
2014 Jul 03 11:01 AM
LOOP AT bkpftab.
READ TABLE itab_text1 INTO wa_text1 WITH KEY belnr = bkpftab-v_belnr.
IF sy-subrc EQ 0.
MOVE : wa_text1-text TO bkpftab-ltext.
MODIFY bkpftab TRANSPORTING ltext.
ENDIF.
ENDLOOP.
ENDIF . " commented by prasanna on 7.5.2012
DESCRIBE TABLE bkpftab LINES ilines.
DATA:v_belnr TYPE bkpf-belnr.
DATA:v_bukrs TYPE bkpf-bukrs.
DATA:v_gjahr TYPE bkpf-gjahr.
DATA:v_werks TYPE t001w-werks.
DATA:v_lifnr TYPE lfa1-lifnr.
SORT bkpftab BY belnr.
*break sdcons.
LOOP AT bkpftab.
CLEAR:v_belnr,v_lifnr,v_werks,v_prctr1,v_prctr,v_bukrs,v_gjahr.
CLEAR : p_name .
v_belnr = bkpftab-belnr. "Commented by ananth
v_bukrs = bkpftab-bukrs.
v_gjahr = bkpftab-gjahr.
*v_lifnr = bkpftab-lifnr.
CLEAR:bkpftab.
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr.
ino = ino + 1.
CLEAR: zcheck_no, zcheck_date.
SELECT SINGLE * FROM payr WHERE
zbukr = bkpftab-bukrs AND
vblnr = bkpftab-belnr AND
gjahr = rgjahr AND
voidr = '0'.
IF sy-subrc EQ 0.
WRITE payr-chect TO zcheck_no NO-ZERO.
* CONCATENATE 'CHECK NO:' ZCHECK_NO INTO ZCHECK_NO SEPARATED BY SPACE.
WRITE payr-zaldt TO zcheck_date DD/MM/YYYY.
* CONCATENATE 'DATE:' ZCHECK_DATE INTO ZCHECK_DATE SEPARATED BY SPACE.
ENDIF.
READ TABLE it001 WITH KEY bukrs = rbukrs-low.
CLEAR: dr_tot, cr_tot.
* PERFORM WRITE_FORM USING 'HEADERS' 'SET' 'BODY' 'MAIN'.
PERFORM write_form USING 'HEAD' 'SET' 'BODY' 'HEADER'." 'LOGO'."'NEW
*BREAK-POINT.
PERFORM write_form USING 'ADDRESS' 'SET' 'BODY' 'WINDOW1'.
PERFORM write_form USING 'ADDRESS' 'SET' 'BODY' 'WINDOW2'.
* PERFORM write_form USING 'ADDRESS' 'SET' 'BODY' 'WINDOW5'.
*PERFORM WRITE_FORM USING 'ADDRESS' 'SET' 'BODY' 'WINDOW3'.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'WIN3'
* FUNCTION = P_FUN
* TYPE = P_TYP
window = 'WINDOW3'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
OTHERS = 7.
break abapcons.
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr.
IF sy-subrc = 0.
SELECT SINGLE prctr FROM bseg INTO v_prctr WHERE belnr = bkpftab-belnr
AND bukrs = bkpftab-bukrs
AND gjahr = bkpftab-gjahr
AND prctr <> ''.
IF sy-subrc = 0.
v_prctr1 = v_prctr.
CONDENSE v_prctr1.
SHIFT v_prctr1 LEFT DELETING LEADING '0'.
v_werks = v_prctr1.
* clear:p_name.
SELECT SINGLE name1 FROM t001w INTO p_name WHERE werks = v_werks."bsegtab-prctr1.
ENDIF.
CLEAR:bsegtab.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'WIN5'
function = 'SET'
type = 'BODY'"P_TYP
window = 'WINDOW5'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
OTHERS = 7.
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr. "Added by ananth
bsegtab_new[] = bsegtab[].
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr.. "Added by ananth
*SORT bsegtab_new by lifnr kunnr.
DELETE bsegtab_new WHERE koart = 'A'OR koart = 'M' OR koart = 'S' .
*DELETE bsegtab_new WHERE koart ne 'D'.
*DELETE bsegtab_new WHERE NOT in koart('K','D').
IF it_vendor_addr IS NOT INITIAL AND it_customer_addr IS NOT INITIAL.
SORT bsegtab_new DESCENDING BY koart.
ELSEIF
it_vendor_addr IS NOT INITIAL.
SORT bsegtab_new BY lifnr.
ELSEIF
it_customer_addr IS NOT INITIAL.
SORT bsegtab_new BY kunnr.
ENDIF.
*BREAK-POINT.
LOOP AT bsegtab_new WHERE belnr = bkpftab-belnr AND lifnr IS NOT INITIAL OR kunnr IS NOT INITIAL .
IF bsegtab_new-lifnr1 IS NOT INITIAL.
SORT it_address BY lifnr.
*****************commented as on 01.06.2012
IF p_journ EQ 'X'.
READ TABLE bsegtab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr.
IF sy-subrc = 0.
v_lifnr = bsegtab_new-lifnr.
ENDIF.
CLEAR: bsegtab_new-lifnr.
bsegtab_new-lifnr = v_lifnr.
ENDIF.
*****************commented as on 01.06.2012
READ TABLE it_address INTO wa_address WITH KEY lifnr = bsegtab_new-lifnr.
CLEAR:v_add1_1,v_add2_1,v_add3_1.
IF sy-subrc EQ 0.
v_name1 = wa_address-name.
v_name2 = wa_address-name2.
IF wa_address-house_num1 IS NOT INITIAL.
CONCATENATE wa_address-house_num1 v_add1_1 INTO v_add1_1 .
ENDIF.
IF wa_address-street IS NOT INITIAL.
IF v_add1_1 IS INITIAL.
CONCATENATE v_add1_1 wa_address-street INTO v_add1_1.
ELSE.
CONCATENATE v_add1_1 wa_address-street INTO v_add1_1 SEPARATED BY
','.
ENDIF.
ENDIF.
IF wa_address-str_suppl1 IS NOT INITIAL.
IF v_add1_1 IS INITIAL.
CONCATENATE v_add1_1 wa_address-str_suppl1 INTO v_add1_1 .
ELSE.
CONCATENATE v_add1_1 wa_address-str_suppl1 INTO v_add1_1
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_address-str_suppl2 IS NOT INITIAL.
CONCATENATE wa_address-str_suppl2 v_add2_1 INTO v_add2_1 .
ENDIF.
IF wa_address-str_suppl3 IS NOT INITIAL.
IF v_add2_1 IS INITIAL.
CONCATENATE v_add2_1 wa_address-str_suppl3 INTO v_add2_1 .
ELSE.
CONCATENATE v_add2_1 wa_address-str_suppl3 INTO v_add2_1
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_address-city IS NOT INITIAL.
IF v_add2_1 IS INITIAL.
CONCATENATE v_add2_1 wa_address-city INTO v_add2_1 .
ELSE.
CONCATENATE v_add2_1 wa_address-city INTO v_add2_1
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_address-state IS NOT INITIAL.
CONCATENATE v_add3_1 wa_address-state INTO v_add3_1.
ENDIF.
IF wa_address-postal IS NOT INITIAL.
IF v_add3_1 IS INITIAL.
CONCATENATE v_add3_1 wa_address-postal INTO v_add3_1.
ELSE.
CONCATENATE v_add3_1 wa_address-postal INTO v_add3_1
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_address-country_name IS NOT INITIAL.
IF v_add3_1 IS INITIAL.
CONCATENATE v_add3_1 wa_address-country_name INTO v_add3_1 .
ELSE.
CONCATENATE v_add3_1 wa_address-country_name INTO v_add3_1
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_address-tel_number IS NOT INITIAL.
MOVE: wa_address-tel_number TO v_telno_1.
ENDIF .
IF v_telno_1 IS NOT INITIAL.
CONCATENATE 'TEL:' v_telno_1 INTO v_telno1_2 SEPARATED BY space.
ENDIF.
IF wa_address-fax_number IS NOT INITIAL.
MOVE : wa_address-fax_number TO v_faxno_1.
ENDIF.
IF v_faxno_1 IS NOT INITIAL.
CONCATENATE 'FAX:' v_faxno_1 INTO v_faxno1_2 SEPARATED BY space.
ENDIF.
***********************Added new ended on 2.5.2012
break abapcons.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'VENADD'
* FUNCTION = P_FUN
* TYPE = P_TYP
window = 'WINDOW4'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
OTHERS = 7.
"added by ananth
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr.
IF sy-subrc = 0.
SELECT SINGLE prctr FROM bseg INTO v_prctr WHERE belnr = bkpftab-belnr
AND bukrs = bkpftab-bukrs
AND gjahr = bkpftab-gjahr
AND prctr <> ''.
IF sy-subrc = 0.
v_prctr1 = v_prctr.
CONDENSE v_prctr1.
SHIFT v_prctr1 LEFT DELETING LEADING '0'.
v_werks = v_prctr1.
* clear:p_name.
SELECT SINGLE name1 FROM t001w INTO p_name WHERE werks = bsegtab-prctr1.
ENDIF.
* endif.
CLEAR:bsegtab.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'WIN5'
function = 'SET'
type = 'BODY'"P_TYP
window = 'WINDOW5'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
OTHERS = 7.
*READ TABLE bkpftab with key belnr = v_belnr. "Added by ananth
ENDIF.
*****************aDDED NEW BY PRASANNA ON 18.5.2012
CLEAR: wa_address.
ENDIF.
ELSEIF
bsegtab_new-kunnr1 IS NOT INITIAL.
SORT it_address BY kunnr.
READ TABLE it_address INTO wa_address WITH KEY kunnr = bsegtab_new-kunnr.
IF sy-subrc EQ 0.
CLEAR:v_add1_1,v_add2_1,v_add3_1.
v_name1 = wa_address-name.
v_name2 = wa_address-name2.
IF wa_address-house_num1 IS NOT INITIAL.
CONCATENATE wa_address-house_num1 v_add1_1 INTO v_add1_1 .
ENDIF.
IF wa_address-street IS NOT INITIAL.
IF v_add1_1 IS INITIAL.
CONCATENATE v_add1_1 wa_address-street INTO v_add1_1.
ELSE.
CONCATENATE v_add1_1 wa_address-street INTO v_add1_1 SEPARATED BY
','.
ENDIF.
ENDIF.
IF wa_address-str_suppl1 IS NOT INITIAL.
IF v_add1_1 IS INITIAL.
CONCATENATE v_add1_1 wa_address-str_suppl1 INTO v_add1_1 .
ELSE.
CONCATENATE v_add1_1 wa_address-str_suppl1 INTO v_add1_1
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_address-str_suppl2 IS NOT INITIAL.
CONCATENATE wa_address-str_suppl2 v_add2_1 INTO v_add2_1 .
ENDIF.
IF wa_address-str_suppl3 IS NOT INITIAL.
IF v_add2_1 IS INITIAL.
CONCATENATE v_add2_1 wa_address-str_suppl3 INTO v_add2_1 .
ELSE.
CONCATENATE v_add2_1 wa_address-str_suppl3 INTO v_add2_1
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_address-city IS NOT INITIAL.
IF v_add2_1 IS INITIAL.
CONCATENATE v_add2_1 wa_address-city INTO v_add2_1 .
ELSE.
CONCATENATE v_add2_1 wa_address-city INTO v_add2_1
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_address-state IS NOT INITIAL.
CONCATENATE v_add3_1 wa_address-state INTO v_add3_1.
ENDIF.
IF wa_address-postal IS NOT INITIAL.
IF v_add3_1 IS INITIAL.
CONCATENATE v_add3_1 wa_address-postal INTO v_add3_1.
ELSE.
CONCATENATE v_add3_1 wa_address-postal INTO v_add3_1
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_address-country_name IS NOT INITIAL.
IF v_add3_1 IS INITIAL.
CONCATENATE v_add3_1 wa_address-country_name INTO v_add3_1 .
ELSE.
CONCATENATE v_add3_1 wa_address-country_name INTO v_add3_1
SEPARATED BY ','.
ENDIF.
ENDIF.
IF wa_address-tel_number IS NOT INITIAL.
MOVE: wa_address-tel_number TO v_telno_1.
ENDIF .
IF v_telno_1 IS NOT INITIAL.
CONCATENATE 'TEL:' v_telno_1 INTO v_telno1_2 SEPARATED BY space.
ENDIF.
IF wa_address-fax_number IS NOT INITIAL.
MOVE : wa_address-fax_number TO v_faxno_1.
ENDIF.
IF v_faxno_1 IS NOT INITIAL.
CONCATENATE 'FAX:' v_faxno_1 INTO v_faxno1_2 SEPARATED BY space.
ENDIF.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'VENADD'
* FUNCTION = P_FUN
* TYPE = P_TYP
window = 'WINDOW4'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
OTHERS = 7.
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr.
IF sy-subrc = 0.
SELECT SINGLE prctr FROM bseg INTO v_prctr WHERE belnr = bkpftab-belnr
AND bukrs = bkpftab-bukrs
AND gjahr = bkpftab-gjahr
AND prctr <> ''.
IF sy-subrc = 0.
v_prctr1 = v_prctr.
CONDENSE v_prctr1.
SHIFT v_prctr1 LEFT DELETING LEADING '0'.
v_werks = v_prctr1.
* clear:p_name.
SELECT SINGLE name1 FROM t001w INTO p_name WHERE werks = bsegtab-prctr1.
ENDIF.
CLEAR:bsegtab.
*endif.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'WIN5'
function = 'SET'
type = 'BODY'"P_TYP
window = 'WINDOW5'
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
OTHERS = 7.
ENDIF.
ENDIF.
ENDIF .
ENDLOOP.
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr. "Added by ananth
LOOP AT bsegtab WHERE belnr = v_belnr."bkpftab-belnr.
CLEAR wrk_kostl.
IF NOT bsegtab-kostl IS INITIAL AND NOT bsegtab-aufnr IS INITIAL AND NOT bsegtab-wbsno IS INITIAL.
CONCATENATE bsegtab-kostl '\' bsegtab-aufnr '\' bsegtab-wbsno INTO wrk_kostl.
ELSE.
IF bsegtab-kostl IS INITIAL AND NOT bsegtab-aufnr IS INITIAL AND NOT bsegtab-wbsno IS INITIAL.
CONCATENATE bsegtab-aufnr '\' bsegtab-wbsno INTO wrk_kostl.
ELSEIF NOT bsegtab-kostl IS INITIAL AND bsegtab-aufnr IS INITIAL AND NOT bsegtab-wbsno IS INITIAL.
CONCATENATE bsegtab-kostl '\' bsegtab-wbsno INTO wrk_kostl.
ELSEIF NOT bsegtab-kostl IS INITIAL AND NOT bsegtab-aufnr IS INITIAL AND bsegtab-wbsno IS INITIAL.
CONCATENATE bsegtab-kostl '\' bsegtab-aufnr INTO wrk_kostl.
ELSEIF bsegtab-kostl IS INITIAL AND bsegtab-aufnr IS INITIAL AND NOT bsegtab-wbsno IS INITIAL.
wrk_kostl = bsegtab-wbsno.
ELSEIF bsegtab-kostl IS INITIAL AND NOT bsegtab-aufnr IS INITIAL AND bsegtab-wbsno IS INITIAL.
wrk_kostl = bsegtab-aufnr.
ELSE.
wrk_kostl = bsegtab-kostl.
ENDIF.
ENDIF.
CLEAR: wrk_acc, wrk_desc, signed_dmbtr, signed_wrbtr.
****************Code For Getting Narration ********************************
SELECT SINGLE sgtxt
FROM bseg
INTO sgtxt
WHERE belnr = bkpftab-belnr AND sgtxt <> '' AND bukrs = bkpftab-bukrs AND gjahr = bkpftab-gjahr .
****************End *******************************************************
*****************Added new by prasanna as on 30/5/2012
IF bsegtab-shkzg EQ 'S'.
IF bkpftab-waers <> 'INR' AND bkpf-waers <> 'ACUD'.
a_usd = '0.0000'.
a_inr = '0.00'.
SELECT SINGLE wrbtr
FROM bseg
INTO a_usd
WHERE belnr = bkpftab-belnr
AND bukrs = bkpftab-bukrs
AND gjahr = bkpftab-gjahr.
a_usd = a_usd / 100.
amt_usd = amt_usd + a_usd.
ELSE.
a_inr = '0.00'.
a_usd = '0.0000'.
a_inr = bsegtab-wrbtr.
amt_inr = amt_inr + a_inr.
ENDIF.
ENDIF.
CASE bsegtab-koart.
WHEN 'S' OR 'M' OR 'A'.
WRITE bsegtab-hkont TO wrk_acc NO-ZERO.
wrk_desc = bsegtab-txt50.
WHEN 'K'.
bupla = bsegtab-bupla.
secco = bsegtab-secco.
WRITE bsegtab-lifnr TO wrk_acc NO-ZERO.
wrk_desc = bsegtab-txt50.
vend_name = bsegtab-txt50.
ENDCASE.
IF amt_inr IS NOT INITIAL.
CALL FUNCTION 'Z_SPELL_AMOUNT_CURR_SENT'
EXPORTING
amount = amt_inr
currency = 'INR'
* FILLER = ' '
* LANGUAGE = 'EN'
IMPORTING
in_words = amt_words
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
MOVE: amt_words-word TO amt.
IF amt_usd IS NOT INITIAL.
CALL FUNCTION 'Z_SPELL_AMOUNT_CURR_SENT'
EXPORTING
amount = amt_usd
currency = 'USD'
* FILLER = ' '
* LANGUAGE = 'EN'
IMPORTING
in_words = amt_words1
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
ENDIF.
MOVE: amt_words1-word TO amt1.
***************Added new ended by prasanna for amout in words
MOVE bsegtab-dmbtr TO signed_dmbtr.
MOVE bsegtab-wrbtr TO signed_wrbtr.
*APPEND A NEGATIVE SIGN TO CREDIT AMOUNTS, WHILE DISPLAYING ON SCREEN
IF bsegtab-shkzg = 'S'.
dr_tot = dr_tot + bsegtab-dmbtr.
CONCATENATE signed_dmbtr ' ' INTO signed_dmbtr.
CONCATENATE signed_wrbtr ' ' INTO signed_wrbtr.
zdr_cr = 'DR'.
IF wrk_narr IS INITIAL.
wrk_narr = bsegtab-sgtxt.
ENDIF.
ELSE.
cr_tot = cr_tot + bsegtab-dmbtr.
CONCATENATE signed_dmbtr '-' INTO signed_dmbtr.
CONCATENATE signed_wrbtr '-' INTO signed_wrbtr.
zdr_cr = 'CR'.
ENDIF.
IF NOT bsegtab-lifnr IS INITIAL.
IF bsegtab-shkzg = 'K'.
WRITE bsegtab-lifnr TO wrk_acc NO-ZERO.
SELECT SINGLE * FROM lfa1 CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND lifnr = bsegtab-lifnr.
wrk_desc = lfa1-name1 .
ENDIF.
ELSEIF NOT bsegtab-kunnr IS INITIAL.
WRITE bsegtab-kunnr TO wrk_acc NO-ZERO.
SELECT SINGLE * FROM kna1 CLIENT SPECIFIED
WHERE mandt = sy-mandt
AND kunnr = bsegtab-kunnr.
wrk_desc = kna1-name1.
ENDIF.
SELECT SINGLE gtext
FROM tgsbt
INTO gtext
WHERE gsber = bsegtab-gsber AND spras = 'EN'.
IF sy-subrc = 0.
MODIFY bsegtab.
ENDIF.
PERFORM write_form USING 'ITEMS' 'SET' 'BODY' 'MAIN'.
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr."Added by ananth
ENDLOOP.
PERFORM write_form USING 'DEBIT' 'SET' 'BODY' 'MAIN'.
*CLEAR : tot_debit, tot_credit.
* IF P_CASH <> 'X'. "CONDITION CHECK NOT FOR CASH VOUCHER
PERFORM write_form USING 'POHEAD' 'SET' 'BODY' 'MAIN'.
* CLEAR : tot_debit, tot_credit.
*ENDLOOP.
**********Added new by prasanna on 23.5.2012
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr. "Added by ananth
LOOP AT bsegtab WHERE belnr = bkpftab-belnr AND gjahr = bkpftab-gjahr.
CONCATENATE bkpftab-belnr bkpftab-gjahr INTO simple.
SELECT SINGLE * FROM stxh WHERE tdname EQ simple AND tdid = '0001' "FOR NOTE
AND tdobject = 'RBKP'.
IF sy-subrc IS INITIAL.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = '0001'
language = 'E'
name = simple
object = 'RBKP'
TABLES
lines = itline.
READ TABLE itline INDEX 1.
MOVE itline-tdline TO bsegtab-note.
MODIFY bsegtab.
CLEAR bsegtab.
ENDIF.
IF NOT bsegtab-zterm IS INITIAL. "FOR PAYMENT TERMS IF PURCHASE ORDER IS NOT THERE
CALL FUNCTION 'FI_PRINT_ZTERM'
EXPORTING
i_zterm = bsegtab-zterm
i_langu = sy-langu
i_xt052u = 'X'
TABLES
t_ztext = zbtxt.
READ TABLE zbtxt INDEX 1.
IF sy-subrc = 0.
MOVE zbtxt-text1 TO pay_term.
ENDIF.
ENDIF.
SELECT SINGLE ktext
FROM aufk
INTO bsegtab-ord_txt
WHERE aufnr = bsegtab-aufnr.
IF sy-subrc = 0.
MODIFY bsegtab.
ENDIF.
ENDLOOP.
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr. "Added by ananth
LOOP AT bsegtab WHERE belnr = bkpftab-belnr AND gjahr = bkpftab-gjahr AND projk <> '00000000'.
SELECT SINGLE post1
FROM prps
INTO bsegtab-wbs
WHERE pspnr = bsegtab-projk.
IF sy-subrc = 0.
MODIFY bsegtab.
ENDIF.
ENDLOOP.
**************PICKING MORE THAN ONE COST CENTER *************************************************
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr. "Added by ananth
LOOP AT bsegtab WHERE belnr = bkpftab-belnr AND gjahr = bkpftab-gjahr AND NOT kostl IS INITIAL.
SELECT SINGLE ktext
FROM cskt
INTO bsegtab-cost_center
WHERE kostl = bsegtab-kostl AND spras = 'EN'.
IF sy-subrc = 0.
MODIFY bsegtab.
MOVE bsegtab-cost_center TO itab_center-cost_center.
APPEND itab_center.
ENDIF.
ENDLOOP.
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr. "Added by ananth
DELETE ADJACENT DUPLICATES FROM itab_center.
CLEAR cost_center.
IF NOT itab_center[] IS INITIAL.
LOOP AT itab_center.
CONCATENATE itab_center-cost_center ',' cost_center INTO cost_center.
ENDLOOP.
count = strlen( cost_center ).
count = count - 1.
cost_center = cost_center+0(count).
ENDIF.
CLEAR : itab_center[].
****************************************************************************************************
LOOP AT itab_rseg WHERE belnr = bkpftab-belnr OR belnr = bkpftab-v_belnr AND gjahr = bkpftab-gjahr. " modified by prasanna 'added v_belnr condition
bsart = ''.
SELECT SINGLE bsart zterm "FOR PAYMENT TERMS OF PURCHASE ORDER
FROM ekko
INTO (bsart, zterm)
WHERE ebeln EQ itab_rseg-ebeln.
* ************CHANGES BY CG
IF bsart EQ 'ZSER' .
SELECT SINGLE mblnr FROM mseg INTO itab_rseg-mblnr WHERE ebeln EQ itab_rseg-ebeln AND mjahr = bkpftab-gjahr.
MODIFY itab_rseg .
ENDIF .
* ******************eND OF CHANGES ***************
IF NOT zterm IS INITIAL.
CALL FUNCTION 'FI_PRINT_ZTERM'
EXPORTING
i_zterm = zterm
i_langu = sy-langu
i_xt052u = 'X'
TABLES
t_ztext = zbtxt.
READ TABLE zbtxt INDEX 1.
IF sy-subrc = 0.
MOVE zbtxt-text1 TO pay_term.
ENDIF.
ENDIF.
****************Code For Adding Network Number ****************************
SELECT SINGLE nplnr
FROM ekkn
INTO nplnr
WHERE ebeln = itab_rseg-ebeln AND nplnr <> ''.
*****************End*******************************************************
PERFORM write_form USING 'PO' 'SET' 'BODY' 'MAIN'.
* CLEAR : tot_debit,tot_credit.
ENDLOOP.
IF bkpftab-kursf IS NOT INITIAL .
MOVE : bkpftab-kursf TO exch_rate.
ENDIF.
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr. "Added by ananth
*ENDLOOP.
IF bkpftab-kursf IS INITIAL .
bkpftab-kursf = '1.0000'.
exch_rate = '1.0000'.
ENDIF.
PERFORM write_form USING 'NARR' 'SET' 'BODY' 'MAIN'.
sgtxt = ''.
nplnr = ''.
CLEAR: dr_tot, cr_tot, amt_inr , amt_usd ,exch_rate.
PERFORM write_form USING 'SIGN' 'SET' 'BODY' 'MAIN'.
flg_start = 'X'.
CLEAR: wrk_narr, flg_w, bupla, secco.
* CLEAR: tot_debit,tot_credit.
IF ino < ilines.
IF NOT flg_start IS INITIAL.
PERFORM write_form USING 'NEW' 'SET' 'BODY' 'MAIN'.
* CLEAR: tot_debit,tot_credit.
ENDIF.
ENDIF.
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr."Added by ananth
READ TABLE bkpftab WITH KEY belnr = v_belnr
bukrs = v_bukrs
gjahr = v_gjahr."Added by ananth
* CLEAR : p_name ."bkpftab ,
ENDLOOP.
ENDFORM. " PRINT_VOUCHER_DATA
*----------------------------------------------------------------------*
FORM write_form USING p_ele
p_fun
p_typ
p_win.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = p_ele
function = p_fun
type = p_typ
window = p_win
EXCEPTIONS
element = 1
function = 2
type = 3
unopened = 4
unstarted = 5
window = 6
OTHERS = 7.
ENDFORM. " WRITE_FORM
*&---------------------------------------------------------------------*
FORM close_group.
CALL FUNCTION 'CLOSE_FORM'
EXCEPTIONS
unopened = 1
OTHERS = 2.
ENDFORM. " CLOSE_GROUP
*&---------------------------------------------------------------------*
FORM close_form.
CALL FUNCTION 'CLOSE_FORM'
IMPORTING
result = itcpp
EXCEPTIONS
unopened = 1
OTHERS = 2.
IF itcpp-tdspoolid NE 0.
CLEAR tab_ausgabe.
tab_ausgabe-name = 'VOUCHER PRINTOUT'. "SPOOL REQUEST NAME
tab_ausgabe-dataset = itcpp-tddataset.
tab_ausgabe-spoolnr = itcpp-tdspoolid.
tab_ausgabe-immed = ' '.
COLLECT tab_ausgabe.
ENDIF.
IF NOT itcpp-tdspoolid IS INITIAL.
CALL FUNCTION 'RSPO_FINAL_SPOOLJOB'
EXPORTING
rqident = itcpp-tdspoolid
set = 'X'
EXCEPTIONS
OTHERS = 0.
ENDIF.
PERFORM information.
ENDFORM. " CLOSE_FORM
*----------------------------------------------------------------------*
FORM gsber_selection.
*ADDED BY GD ON 20/05/2002 TO INCLUDE BUSINESS AREA SELECTION
SELECT * FROM bseg "BSEG
INTO CORRESPONDING FIELDS OF TABLE bseg_bus
FOR ALL ENTRIES IN bkpftab
WHERE belnr = bkpftab-belnr
AND gjahr = bkpftab-gjahr
AND bukrs = bkpftab-bukrs.
SORT bseg_bus BY belnr gsber.
DELETE ADJACENT DUPLICATES FROM bseg_bus COMPARING ALL FIELDS.
*THIS WILL DELETE BUSINESS AREA'S OTHER THAN GIVEN IN THE SELECTION
LOOP AT bseg_bus.
AT NEW belnr.
bel = bseg_bus-belnr.
found1 = 0.
ENDAT.
IF bseg_bus-gsber IN rgsber.
found1 = 1.
ENDIF.
AT END OF belnr.
IF found1 = 0.
DELETE bseg_bus WHERE belnr = bel.
ENDIF.
ENDAT.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM bseg_bus COMPARING belnr.
LOOP AT bkpftab.
bel = bkpftab-belnr.
READ TABLE bseg_bus WITH KEY belnr = bkpftab-belnr.
IF NOT sy-subrc IS INITIAL.
DELETE bkpftab WHERE belnr EQ bel.
ENDIF.
ENDLOOP.
ENDFORM. "GSBER_SELECTION
*----------------------------------------------------------------------*
FORM information.
"BEI BEDINGTEM LOOP üBER INTERNE
DATA: "TABELLEN WIRD DER ZEITPUNKT AT
up_titel(1) TYPE n VALUE 0, "FIRST NICHT DURCHLAUFEN!
up_uline(1) TYPE n VALUE 0, "LOOP DURCHLAUFEN ?
up_rqident LIKE tsp01-rqident.
SORT tab_ausgabe.
* ERSTER LOOP FüR SOFORTDRUCK
LOOP AT tab_ausgabe WHERE immed NE space.
CHECK tab_ausgabe-spoolnr NE 0.
up_rqident = tab_ausgabe-spoolnr.
CALL FUNCTION 'RSPO_OUTPUT_SPOOL_REQUEST'
EXPORTING
spool_request_id = up_rqident
EXCEPTIONS
OTHERS = 0.
ENDLOOP.
IF sy-batch EQ space.
NEW-PAGE NO-TITLE LINE-SIZE 81.
ENDIF.
* ZWEITER LOOP ZUR AUSGABE DER FILES
CLEAR tab_ausgabe.
LOOP AT tab_ausgabe WHERE renum NE space.
up_uline = 1.
IF up_titel EQ 0.
IF sy-batch EQ space.
FORMAT COLOR 1 INTENSIFIED.
flg_local = space.
WRITE:
/ sy-uline.
HIDE flg_local.
WRITE:
/ sy-vline NO-GAP,
(79) text-092,
81 sy-vline.
HIDE flg_local.
WRITE:
/ sy-uline.
HIDE flg_local.
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE:
/ sy-vline NO-GAP,
(79) text-093,
40(1) sy-vline,
81 sy-vline.
HIDE flg_local.
WRITE:
/ sy-uline.
HIDE flg_local.
ELSE.
MESSAGE s065.
WRITE:
text-092 TO txt_zeile.
MESSAGE s065 WITH txt_zeile.
WRITE:
text-093 TO txt_zeile,
'/' TO txt_zeile+37(1).
CONDENSE txt_zeile.
MESSAGE s065 WITH txt_zeile.
MESSAGE s064.
ENDIF.
up_titel = 1.
ENDIF.
IF sy-batch EQ space.
FORMAT COLOR 2 INTENSIFIED OFF.
flg_local = 'F'.
FORMAT HOTSPOT ON.
WRITE:
/ sy-vline NO-GAP,
tab_ausgabe-name,
40 sy-vline NO-GAP,
tab_ausgabe-filename(40),
81 sy-vline.
FORMAT HOTSPOT OFF.
HIDE: flg_local, tab_ausgabe.
ELSE.
WRITE:
tab_ausgabe-name TO txt_zeile,
'/' TO txt_zeile+37(1).
CONDENSE txt_zeile.
MESSAGE s065 WITH txt_zeile tab_ausgabe-filename.
ENDIF.
DELETE tab_ausgabe.
ENDLOOP.
* DRITTER LOOP ZUR AUSGABE DER SPOOL-DATEIEN
CLEAR tab_ausgabe.
LOOP AT tab_ausgabe.
up_uline = 1.
AT FIRST.
IF sy-batch EQ space.
FORMAT COLOR 1 INTENSIFIED.
flg_local = space.
WRITE:
/ sy-uline.
HIDE flg_local.
WRITE:
/ sy-vline NO-GAP,
(79) text-090,
81 sy-vline,
sy-uline.
HIDE flg_local.
FORMAT COLOR 1 INTENSIFIED OFF.
WRITE:
/ sy-vline NO-GAP,
(79) text-091,
40(1) sy-vline NO-GAP,
55(1) sy-vline NO-GAP,
81 sy-vline.
HIDE flg_local.
WRITE:
/ sy-uline.
HIDE flg_local.
ELSE.
MESSAGE s065.
WRITE:
text-090 TO txt_zeile.
MESSAGE s065 WITH txt_zeile.
WRITE:
text-091 TO txt_zeile,
'/' TO txt_zeile+37(1),
'/' TO txt_zeile+52(1).
CONDENSE txt_zeile.
MESSAGE s065 WITH txt_zeile.
MESSAGE s064.
ENDIF.
ENDAT.
IF sy-batch EQ space.
IF tab_ausgabe-error EQ 'X'.
FORMAT COLOR 6 INTENSIFIED.
ELSE.
FORMAT COLOR 2 INTENSIFIED OFF.
ENDIF.
IF tab_ausgabe-error EQ 'X'.
flg_local = 'E'.
ELSE.
flg_local = 'S'.
ENDIF.
FORMAT HOTSPOT ON.
WRITE:
/ sy-vline NO-GAP,
tab_ausgabe-name,
40 sy-vline NO-GAP,
tab_ausgabe-dataset,
55 sy-vline NO-GAP,
tab_ausgabe-spoolnr,
81 sy-vline.
FORMAT HOTSPOT OFF.
HIDE: flg_local, tab_ausgabe.
ELSE.
WRITE:
tab_ausgabe-name TO txt_zeile,
'/' TO txt_zeile+37(1),
tab_ausgabe-dataset TO txt_zeile+40,
'/' TO txt_zeile+52(1),
tab_ausgabe-spoolnr TO txt_zeile+55.
CONDENSE txt_zeile.
MESSAGE s065 WITH txt_zeile(50) txt_zeile+50.
ENDIF.
ENDLOOP.
IF sy-batch EQ space AND up_uline NE 0.
flg_local = space.
WRITE:
/ sy-uline.
HIDE flg_local.
ENDIF.
ENDFORM. "INFORMATION
*----------------------------------------------------------------------*
* AT LINE-SELECTION *
*----------------------------------------------------------------------*
* AUSWAHL EINER ZEILE DER INFORMATION *
* VERZWEIGEN IN DIE DTA-VERWALTUNG ODER DRUCKVERWALTUNG *
*----------------------------------------------------------------------*
AT LINE-SELECTION.
TYPE-POOLS sp01r.
DATA up_list TYPE sp01r_id_list WITH HEADER LINE.
DATA BEGIN OF up_bdc OCCURS 9.
INCLUDE STRUCTURE bdcdata.
DATA END OF up_bdc.
DATA up_fdta LIKE tstc-tcode VALUE 'FDTA'.
DATA up_laufd(10) TYPE c.
DATA up_meldung LIKE shkontext-meldung.
DATA up_titel LIKE shkontext-titel.
IF sy-lsind EQ 1.
CASE flg_local.
WHEN space. "KEINE GüLTIGE AUSWAHL
WHEN 'E'. "FEHLERLISTE
FORMAT COLOR 6 INTENSIFIED.
ULINE AT (102).
WRITE:
/ sy-vline NO-GAP,
(100) text-003 NO-GAP,
sy-vline.
FORMAT COLOR 2.
ULINE AT (102).
REFRESH tab_fimsg.
CALL FUNCTION 'FI_MESSAGE_GET'
TABLES
t_fimsg = tab_fimsg.
LOOP AT tab_fimsg.
fimsg = tab_fimsg.
CALL FUNCTION 'K_MESSAGE_TRANSFORM'
EXPORTING
par_langu = sy-langu
par_msgid = fimsg-msgid
par_msgno = fimsg-msgno
par_msgty = fimsg-msgty
par_msgv1 = fimsg-msgv1
par_msgv2 = fimsg-msgv2
par_msgv3 = fimsg-msgv3
par_msgv4 = fimsg-msgv4
IMPORTING
par_msgtx = txt_zeile
EXCEPTIONS
OTHERS = 8.
WRITE:
/ sy-vline NO-GAP,
fimsg-msgid(2),
fimsg-msgno NO-GAP,
sy-vline NO-GAP,
(93) txt_zeile NO-GAP,
sy-vline.
HIDE: flg_local, fimsg, txt_zeile.
AT END OF msort.
ULINE AT (102).
ENDAT.
ENDLOOP.
CLEAR: fimsg, txt_zeile.
WHEN 'F'. "SPRUNG IN DIE DTA-VERWALTUNG
CALL FUNCTION 'AUTHORITY_CHECK_TCODE'
EXPORTING
tcode = up_fdta
EXCEPTIONS
ok = 0
OTHERS = 4.
IF sy-subrc NE 0.
MESSAGE s172(00) WITH up_fdta.
ELSE.
REFRESH up_bdc.
CLEAR up_bdc.
up_bdc-program = 'SAPMFDTA'.
up_bdc-dynpro = '100'.
up_bdc-dynbegin = 'X'.
APPEND up_bdc.
CLEAR up_bdc.
up_bdc-fnam = 'REGUT-RENUM'.
up_bdc-fval = tab_ausgabe-renum.
APPEND up_bdc.
CLEAR up_bdc.
up_bdc-fval = '/8'.
up_bdc-fnam = 'BDC_OKCODE'.
APPEND up_bdc.
CLEAR up_bdc.
up_bdc-program = 'SAPMFDTA'.
up_bdc-dynpro = '200'.
up_bdc-dynbegin = 'X'.
APPEND up_bdc.
CLEAR up_bdc.
up_bdc-fval = '/BDA'.
up_bdc-fnam = 'BDC_OKCODE'.
APPEND up_bdc.
CALL TRANSACTION up_fdta USING up_bdc MODE 'E'.
ENDIF.
WHEN 'S'. "SPRUNG IN DIE DRUCKVERWALTUNG
CHECK tab_ausgabe-spoolnr NE space.
REFRESH up_list.
up_list-id = tab_ausgabe-spoolnr.
APPEND up_list.
CALL FUNCTION 'RSPO_RID_SPOOLREQ_LIST'
EXPORTING
id_list = up_list[]
EXCEPTIONS
OTHERS = 0.
ENDCASE.
ELSE.
CHECK:
flg_local EQ 'E',
NOT fimsg-msgid IS INITIAL,
NOT fimsg-msgno IS INITIAL.
up_titel = text-003.
up_meldung = txt_zeile.
CALL FUNCTION 'HELPSCREEN_NA_CREATE'
EXPORTING
langu = sy-langu
meldung = up_meldung
meld_id = fimsg-msgid
meld_nr = fimsg-msgno
msgv1 = fimsg-msgv1
msgv2 = fimsg-msgv2
msgv3 = fimsg-msgv3
msgv4 = fimsg-msgv4
titel = up_titel.
CLEAR fimsg.
ENDIF.
2014 Jul 03 11:09 AM
Hi Vishal,
Can you pls give me your variable name, SAP Script Window Name and SAP Script Element Name.
ThankingYou All.
2014 Jul 03 1:46 PM
Hi Ankit,
I have attached one image 3.jpg with the zip file of the code in my second reply . its a screen shot from the script window.
The variable names are : v_name1, v_name2. v_add1_1, v_add2_1 , v_add3_1
Window name/id : VENADD. This window is not in the main window of the script.
And I am not sure what it means by script element but the same variable names are used in the window' VENADDs code as you can see in the image file i mentioned above.
Thanks,
Vishal.
2014 Jul 03 5:07 PM
Hi vishal bhatt,
you have 2500 lines code without comments
with ancient coding like data definitions inbetween very hard to find bugs in coding like this.
You can only find the bug by investing lots of time in debugging. so i can just give hints on where you could debug. its not possible to find the bug by just looking at the code
As far as i understand your programm have 1 open form and 1 close form.
So to say, you have 1 formular with several pages.
if data in main window is larger than 1 page, it "generates" a new page. The data printed in the other windows stays constant.
I read some comments from 2012, this makes me think, this formular is in use already for at least 2 years, without bugs. did you figure out, since when does this bug happen? was it after a "small" code change?
When you debug your programm. Try to breakpoint at the loop-line which contains the wrong data. Try to figure out if a "write-form" is not getting performed. (due to if clause).
since every information in besides main window stays constant i would check the printed variables loop by loop.
what i did not understand is how a new page is printed with different information in non main-windows...
normaly you do new page by following 3 statements. but non of them are used more often then 1 time
close-form open-form
start-form end-form
new-window statment
what happens if you just test the wrong docnumber by selecting on selection screen? is it still wrong?
and what happens if you test the "docnumber befor the wrong document" + wrong docnumber? is there still wrong data?
regards
Stefan Seeburger
2014 Jul 04 5:55 AM
Hi Stefan,
Thanks for replying.
You are right, I guess I have to alot of debugging line by line to find the problem.
Another question is do I need to check anything in the script apart from the window code ??
I am pasting window4 & window5,both are out of main widnow, in the script form images below for your reference.
Window4 is in which the data is not changing and in window5 is changing
Regards,
Vishal.
2014 Jul 04 8:37 AM
Hi vishal bhatt,
i would guess the bug is in your programm, because you cant do much wrong defining your window. Just look that it is same type as window 5 - should be "VAR" in your case. --> you can set window as variable or const.
Const means, window is constant and content is the same for every page.
variable means content can vary for each page.
i think you have set the window type as needed, because you have differnent content (just not always)
So i think the mistake is inside your loop logic, if the variables (used in your window) gets new value befor "write-form" or not.
regards
Stefan Seeburger