on 06-16-2008 12:01 PM
hi
i have copied the script "ZF110_PRNM1_CHCK" to a new layout zf110.
when i am attaching new print program to thi script its giving me errors i.e. REGUD-txttab REGUH-lifnr like that for all that.
i feel the error is because this table isnt defined.
but unable to undstd where this is to be declared.
anyone let me know feasible solution for this.
points would be given
done with the print program issue
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Venkat,
Tell me in detail whats the problem you facing?
Thanks
Nayan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi nayan
i changed the layout as requested and now when i am checking the same layout in form->check->texts its giving the errors like unkown symbol REGUH-vblnr(and all the fields of this table) and not detecting the tables REGUP,REGUD.
so let me know how can i attach the new print program to this new layoutset also.
now when i am trying to test the print its giving shortdump saying that the form "get_gross_deduct_bsak" is taking a value "xxxxxxx" which is not a number.
let me know what should i do?
in this fashion the code(of main window) is coming when i am pasting in this editor...
100000023000000220000002200000032000000420000005200000062000000720000008200000092000001020000011200000123000000330000004200000132000001420000015200000162000001720000018200000192000002020000021
and driver program is
&----
*& Report ZCAL_AMOUNT_NET110 *
*& *
&----
*& *
*& *
&----
REPORT ZCAL_AMOUNT_NET110 .
&----
*& Include ZCAL_AMOUNT_NET *
&----
*REPORT zcal_amount_net.
************************************************************************
TITLE : Cheque Preparation *
*
AUTHOR : Kiran B *
*
DESCRIPTION : Cheque prinitinng *
*
REFERENCE : *
*
FREQUENCY : As and when required *
*
CTS: : DS1K931025 *
----
Modification history *
----
Request no. |Date |Programmer | Description *
---------------------------------------------------------------------*
DS1K931025 |10.11.2006|Kiran *
----
DS1K931579 |24.03.2007|Jatin Sharma | Change in logic for -ve & *
| cancelled line items *
----
DS1K931667 |17.04.2007|Jatin Sharma | Change in Code to avoid *
| code page error while *
| printing cheque. *
----
DS1K931794 |18.05.2007|Jatin Sharma | Increse lenth for variable *
| counter from 2 to 3 for *
| more then 100 line items. *
----
DS1K932593 |30.01.2008|Jatin Sharma |Get employee name and *
|download data on Application*
|server instead of C Drive *
DS1K932927 |07.05.2008|Babita Sharma |CR590 *
----
TYPES: BEGIN OF ty_download,
belnr TYPE belnr_d,
xblnr TYPE xblnr,
bldat TYPE char10,
skfbt TYPE skfbt,
skfbt TYPE char15,
qbshb TYPE qbshb,
qbshb TYPE char15,
wrbtr TYPE wrbtr,
wrbtr TYPE char15,
END OF ty_download.
DATA: i_download TYPE STANDARD TABLE OF ty_download,
wa_download TYPE ty_download.
*TABLES : REGUH,REGUD,REGUP.
&----
*& Form CAL_NET_AMOUNT
&----
Calculating the Net Amount
----
-->IN_TAB Table having Gross amount and Deduction amount
-->OUT_TAB Table having Net amount
----
FORM cal_net_amount TABLES in_tab1 STRUCTURE itcsy
out_tab1 STRUCTURE itcsy.
Types: begin of ty_download,
BELNR type BELNR_d,
XBLNR type XBLNR,
BLDAT type char10,
SKFBT type SKFBT,
QBSHB type QBSHB,
WRBTR type WRBTR,
End of ty_download.
Data: i_download type standard table of ty_download,
wa_download type ty_download.
DATA: v_gross TYPE char30,
v_belnr TYPE char10,
v_xblnr TYPE char16,
v_bldat TYPE char10,
v_grss2 TYPE char30,
v_grss12 TYPE wrbtr,
v_grss121 TYPE char16,
v_gross1 TYPE dmbtr,
v_dedct TYPE char30,
v_dedct1 TYPE dmbtr,
v_indicator TYPE char1,
v_sum_grsamnt TYPE skfbt,
v_sum_grs TYPE char16,
v_sum_ded1 TYPE wrbtr,
v_sum_ded TYPE char16,
v_sum_ntamnt TYPE wrbtr,
v_sum_nt TYPE char16,
v_net TYPE dmbtr.
DATA: v_netamount TYPE char16,
v_counter TYPE numc2,
v_counter TYPE numc3,
v_15 TYPE char2,
v_cnter TYPE char3,
v_counter1 TYPE i,
v_grss_amn TYPE char16.
v_net_amount_j TYPE char16.
CONSTANTS: c_15 TYPE char2 VALUE '15'.
DATA: v_amount TYPE string,
v_amount1 TYPE char16.
CLEAR: out_tab1-value.
READ TABLE in_tab1 INDEX 7.
v_cnter = in_tab1-value.
v_counter1 = v_cnter.
v_counter1 = v_counter1 + 1.
v_counter = v_counter1.
*>>Reading Gross Amount from REGUP-SKFBT Field*>>
READ TABLE in_tab1 INDEX 1.
v_gross = in_tab1-value.
*>>Removing Commas from the value field**>>
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_gross.
*>>Transfer this char field value to Currency field for calculation purpose>>>>
v_gross1 = v_gross.
*>> Checking debit/creditor indicatior and multiplying with -1>>
READ TABLE in_tab1 INDEX 11.
v_indicator = in_tab1-value.
IF v_indicator EQ 'S'.
v_gross1 = v_gross1 * -1.
ENDIF.
READ TABLE in_tab1 INDEX 4.
v_sum_grsamnt = in_tab1-value.
v_sum_grsamnt = v_sum_grsamnt + v_gross1.
*>>Reading deduct Amount from REGUP-QBSHB Field*>>
READ TABLE in_tab1 INDEX 2.
v_dedct = in_tab1-value.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_dedct.
v_dedct1 = v_dedct.
IF v_indicator EQ 'S'.
v_dedct1 = v_dedct1 * -1.
ENDIF.
**>Reading WRBTR Value for calculating correct deduction amount
READ TABLE in_tab1 INDEX 3.
v_grss2 = in_tab1-value.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_grss2.
v_grss12 = v_grss2.
IF v_indicator EQ 'S'.
v_grss12 = v_grss12 * -1.
ENDIF.
READ TABLE out_tab1 INDEX 1.
IF v_dedct1 = '0.00'.
v_dedct1 = v_gross1 - v_grss12.
ENDIF.
READ TABLE in_tab1 INDEX 5.
v_sum_ded1 = in_tab1-value.
v_sum_ded1 = v_sum_ded1 + v_dedct1.
v_netamount = v_gross1 - v_dedct1.
v_net = v_netamount.
READ TABLE in_tab1 INDEX 6.
v_sum_ntamnt = in_tab1-value.
v_sum_ntamnt = v_sum_ntamnt + v_net.
v_amount1 = v_net.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
WRITE v_amount TO v_netamount.
CONDENSE v_netamount.
MOVE v_netamount TO out_tab1-value.
MODIFY out_tab1 INDEX 1.
READ TABLE out_tab1 INDEX 2.
v_grss_amn = v_dedct1.
MOVE v_grss_amn TO out_tab1-value.
MODIFY out_tab1 INDEX 2.
v_sum_grs = v_sum_grsamnt.
v_sum_ded = v_sum_ded1.
v_sum_nt = v_sum_ntamnt.
READ TABLE out_tab1 INDEX 3.
MOVE v_sum_grs TO out_tab1-value.
MODIFY out_tab1 INDEX 3.
READ TABLE out_tab1 INDEX 4.
MOVE v_sum_ded TO out_tab1-value.
MODIFY out_tab1 INDEX 4.
READ TABLE out_tab1 INDEX 5.
MOVE v_sum_nt TO out_tab1-value.
MODIFY out_tab1 INDEX 5.
READ TABLE out_tab1 INDEX 6.
MOVE v_counter TO out_tab1-value.
MODIFY out_tab1 INDEX 6.
v_15 = c_15.
READ TABLE out_tab1 INDEX 7.
MOVE v_15 TO out_tab1-value.
MODIFY out_tab1 INDEX 7.
*>>to download the Main window contents if there are more than 15 invoices>>>>
READ TABLE in_tab1 INDEX 8.
v_belnr = in_tab1-value.
READ TABLE in_tab1 INDEX 9.
v_xblnr = in_tab1-value.
READ TABLE in_tab1 INDEX 10.
v_bldat = in_tab1-value.
IF v_counter > 14.
IMPORT i_download FROM MEMORY ID 'HK'.
wa_download-belnr = v_belnr.
wa_download-xblnr = v_xblnr.
wa_download-bldat = v_bldat.
wa_download-skfbt = v_gross1.
wa_download-qbshb = v_dedct1.
wa_download-wrbtr = v_net.
APPEND wa_download TO i_download.
EXPORT i_download TO MEMORY ID 'HK'.
ENDIF.
CLEAR: wa_download.
ENDFORM. "CAL_NET_AMOUNT
&----
*& Form GET_PAYMENT_AMOUNT
&----
Getting Payment amount in INR Format
----
-->IN_TAB Table having Total amount
-->OUT_TAB Table having Total amount in INR Format
----
FORM get_payment_amount TABLES in_tab2 STRUCTURE itcsy
out_tab2 STRUCTURE itcsy.
DATA: i_text(4096) TYPE c OCCURS 0.
DATA: v_payamnt TYPE char30,
v_payamnt1 TYPE rwbtr,
v_payamnt2 TYPE string,
v_payamnt3 TYPE char16,
v_rwbtr TYPE char18,
v_path TYPE string,
v_doc_no TYPE vblnr,
v_belnr TYPE belnr,
v_bukrs TYPE bukrs,
v_gjahr TYPE gjahr.
CLEAR: out_tab2-value.
READ TABLE in_tab2 INDEX 1.
v_payamnt = in_tab2-value.
READ TABLE in_tab2 INDEX 2.
v_doc_no = in_tab2-value.
READ TABLE in_tab2 INDEX 3.
v_belnr = in_tab2-value.
READ TABLE in_tab2 INDEX 4.
v_bukrs = in_tab2-value.
READ TABLE in_tab2 INDEX 5.
v_gjahr = in_tab2-value.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_payamnt.
v_payamnt1 = v_payamnt.
v_payamnt3 = v_payamnt1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR'
EXPORTING
v_amount = v_payamnt3
IMPORTING
v_string = v_payamnt2
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
READ TABLE out_tab2 INDEX 1.
WRITE v_payamnt2 TO v_rwbtr.
SHIFT v_rwbtr RIGHT.
Translate v_rwbtr using ' *'.
v_payamnt = v_rwbtr.
CONCATENATE '**' v_payamnt '**' INTO v_payamnt.
CONDENSE v_payamnt NO-GAPS.
MOVE v_payamnt TO out_tab2-value.
MODIFY out_tab2 INDEX 1.
IF NOT i_download[] IS INITIAL.
wa_download-belnr = text-002. " VOUCHER REFERENCE
wa_download-xblnr = text-003. " INVOICE REFERENCE
wa_download-bldat = text-004. " INVOICE DATE
wa_download-skfbt = text-005. " GROSS AMOUNT
wa_download-qbshb = text-006. " DEDUCTIONS
wa_download-wrbtr = text-007. " NET AMOUNT
INSERT wa_download INTO i_download INDEX 1.
EXPORT i_download TO MEMORY ID 'HK'.
CONCATENATE text-001 sy-datum '\' v_bukrs '_' v_doc_no '_' v_gjahr '.xls' INTO v_path.
IMPORT i_download FROM MEMORY ID 'HK'.
Download convert data to Presentation Server
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = v_path
filetype = 'ASC'
write_field_separator = 'X'
TABLES
data_tab = i_download.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
FREE MEMORY ID 'HK'.
ENDIF.
ENDFORM. "GET_PAYMENT_AMOUNT
&----
*& Form AMNT_IN_WORDS
&----
Writing Total in Words
----
-->IN_TAB Total Having amountin Total
-->OUT_TAB Table having amount in Words
----
FORM amnt_in_words TABLES in_tab3 STRUCTURE itcsy
out_tab3 STRUCTURE itcsy.
DATA: v_total TYPE char30,
v_total1 TYPE rwbtr,
v_total2 TYPE char16,
v_inwrds TYPE char255,
v_inwrds1 TYPE char255,
v_inwrds2 TYPE char255,
v_inwrds3 TYPE char255,
v_spell TYPE spell.
DATA: i_tline TYPE STANDARD TABLE OF tline,
wa_tline TYPE tline.
CONSTANTS: v_star TYPE char2 VALUE '##'.
CLEAR: out_tab3-value.
READ TABLE in_tab3 INDEX 1.
v_total = in_tab3-value.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_total.
v_total1 = v_total.
v_total2 = v_total1.
CALL FUNCTION 'ZSPELL_AMOUNT_INR'
EXPORTING
v_amount = v_total2
v_currency = 'INR'
filler = ' '
v_language = sy-langu
IMPORTING
v_spell = v_spell
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
READ TABLE out_tab3 INDEX 1.
IF v_spell-decword IS INITIAL.
CONCATENATE v_spell-word 'ONLY***' INTO v_inwrds SEPARATED BY space.
ELSE.
CONCATENATE v_spell-word 'AND PAISA' v_spell-decword 'ONLY***' INTO v_inwrds SEPARATED BY space.
ENDIF.
CONCATENATE '***' v_inwrds INTO v_inwrds.
**>>Splitting word in to two if the lenght is more than 80>>
DATA: len TYPE i,
v_len TYPE numc3,
len1 TYPE i.
*>> Begin of Mod-Kiran on 05-03-2007>>>
DATA: BEGIN OF rec_head. " Header struct for item texts
INCLUDE STRUCTURE thead.
DATA: END OF rec_head.
*>> end of Mod-Kiran on 05-03-2007>>>
len = STRLEN( v_inwrds ).
v_len = len.
*>>>Begin Of Mod-Kiron on 05-03-2007>>>
IF len GE 80.
SEARCH v_inwrds FOR ' HUNDRED'.
IF sy-subrc EQ 0.
SPLIT v_inwrds AT ' HUNDRED' INTO v_inwrds1 v_inwrds2.
CONCATENATE ' HUNDRED' v_inwrds2 INTO v_inwrds2.
ENDIF.
ELSE.
SEARCH v_inwrds FOR ' HUNDRED'.
IF sy-subrc EQ 0.
SPLIT v_inwrds AT ' HUNDRED' INTO v_inwrds1 v_inwrds2.
CONCATENATE ' HUNDRED' v_inwrds2 INTO v_inwrds2.
ELSE.
SPLIT v_inwrds AT ' ' INTO v_inwrds1 v_inwrds2.
ENDIF.
ENDIF.
ENDIF.
len1 = len / 2.
V_INWRDS1 = V_INWRDS+0(len1).
V_INWRDS2 = V_INWRDS+len1(len).
**<<End Of Split<<
READ TABLE out_tab3 INDEX 1.
MOVE v_inwrds1 TO out_tab3-value.
MODIFY out_tab3 INDEX 1.
READ TABLE out_tab3 INDEX 2.
MOVE v_inwrds2 TO out_tab3-value.
MODIFY out_tab3 INDEX 2.
READ TABLE out_tab3 INDEX 3.
MOVE v_inwrds TO out_tab3-value.
MODIFY out_tab3 INDEX 3 .
READ TABLE out_tab3 INDEX 4.
MOVE v_len TO out_tab3-value.
MODIFY out_tab3 INDEX 4 .
*>>>End Of Mod-Kiron on 05-03-2007>>>
ENDFORM. "AMNT_IN_WORDS
&----
*& Form GET_AMOUNT_INR
&----
Formating the GROSS & DEDUCT Amount in INR
----
-->IN_TAB5 Containing Gross and Deduct amount
-->OUT_TAB5 Containing Formatted amount
----
FORM get_amount_inr TABLES in_tab5 STRUCTURE itcsy
out_tab5 STRUCTURE itcsy.
DATA: v_grss_amount30 TYPE char30,
v_grss_amount TYPE char16,
v_indicator TYPE char1,
v_grss_amount1 TYPE char30,
v_dedct_amount TYPE char30,
v_gross_amt TYPE wrbtr,
v_amount TYPE string,
v_amount1 TYPE char16,
v_dedct_amt TYPE wabzv.
READ TABLE in_tab5 INDEX 3.
v_indicator = in_tab5-value.
READ TABLE in_tab5 INDEX 1.
v_grss_amount30 = in_tab5-value.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_grss_amount30.
v_gross_amt = v_grss_amount30.
IF v_indicator = 'S'.
v_gross_amt = v_gross_amt * -1.
ENDIF.
v_amount1 = v_gross_amt.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_grss_amount = v_amount.
*>>Formating Amount for DEDUCTION Amount>>
CLEAR: v_amount, v_amount1.
READ TABLE in_tab5 INDEX 2.
v_dedct_amount = in_tab5-value.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_dedct_amount.
v_dedct_amt = v_dedct_amount.
IF v_indicator = 'S'.
v_dedct_amt = v_dedct_amt * -1.
ENDIF.
v_amount1 = v_dedct_amt.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_dedct_amount = v_amount.
READ TABLE out_tab5 INDEX 1.
Condense V_GRSS_AMOUNT.
SHIFT v_grss_amount RIGHT.
MOVE v_grss_amount TO out_tab5-value.
MODIFY out_tab5 INDEX 1.
READ TABLE out_tab5 INDEX 2.
Condense V_DEDCT_AMOUNT.
MOVE v_dedct_amount TO out_tab5-value.
MODIFY out_tab5 INDEX 2.
ENDFORM. "GET_AMOUNT_INR
&----
*& Form GET_SUM_INR
&----
GET SUM TOTALS FOR GROSS AND DEDUCT AMOUNT
----
-->IN_TAB6 TABLES FOR GROSS AND DEDUCT AMOUNT
-->OUT_TAB6 FORMATTED AMOUNT FOR GROSS AND DEDUCT VALUES
----
FORM get_sum_inr TABLES in_tab6 STRUCTURE itcsy
out_tab6 STRUCTURE itcsy.
DATA: v_sum_grss TYPE char30,
v_sum_dedct TYPE char30,
v_amount TYPE string,
v_amount1 TYPE char16,
v_sum_grss1 TYPE wrbtr,
v_sum_dedct1 TYPE wabzv.
READ TABLE in_tab6 INDEX 1.
v_sum_grss = in_tab6-value.
*****************START OF CODE COMMENT BY Jatin.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_sum_grss.
*****************END OF CODE COMMENT BY Jatin.
v_sum_grss1 = v_sum_grss.
v_amount1 = v_sum_grss1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR_CHK1'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_sum_grss = v_amount.
*>>Formating Amount for DEDUCTION Amount>>
CLEAR: v_amount, v_amount1.
READ TABLE in_tab6 INDEX 2.
v_sum_dedct = in_tab6-value.
*****************START OF CODE COMMENT BY Jatin.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_sum_dedct.
*****************END OF CODE COMMENT BY Jatin.
v_sum_dedct1 = v_sum_dedct.
v_amount1 = v_sum_dedct1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR_CHK1'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_sum_dedct = v_amount.
READ TABLE out_tab6 INDEX 1.
CONDENSE v_sum_grss.
MOVE v_sum_grss TO out_tab6-value.
MODIFY out_tab6 INDEX 1.
READ TABLE out_tab6 INDEX 2.
CONDENSE v_sum_dedct.
MOVE v_sum_dedct TO out_tab6-value.
MODIFY out_tab6 INDEX 2.
ENDFORM. "GET_SUM_INR
&----
*& Form GET_SUM_NET
&----
Summing Net Amount in INR Format
----
-->IN_TAB6 Net Amount
-->OUT_TAB6 INR format of Net Aount Sum
----
FORM get_sum_net TABLES in_tab7 STRUCTURE itcsy
out_tab7 STRUCTURE itcsy.
DATA: v_sum_net TYPE char30,
v_amount TYPE string,
v_amount1 TYPE char16,
v_sum_net1 TYPE rwbtr.
READ TABLE in_tab7 INDEX 1.
v_sum_net = in_tab7-value.
*****************START OF CODE COMMENT BY Jatin.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_sum_net.
*****************End OF CODE COMMENT BY Jatin.
CLEAR: v_amount, v_amount1.
v_sum_net1 = v_sum_net.
v_amount1 = v_sum_net1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR_CHK1'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_sum_net = v_amount.
READ TABLE out_tab7 INDEX 1.
MOVE v_sum_net TO out_tab7-value.
MODIFY out_tab7 INDEX 1.
ENDFORM. "GET_SUM_NET
Begin of comment for CR590
Company address is now printed on Stationaery only , so form get_header is commented
*&----
**& Form GET_HEADER
*&----
Get Company Code Details for Header Window
*----
-->IN_TAB8 Company Code details
-->OUT_TAB8 Company code text for header window
*----
*FORM get_header TABLES in_tab8 STRUCTURE itcsy
out_tab8 STRUCTURE itcsy.
*
DATA: v_compcode TYPE bukrs,
v_adrnr TYPE adrnr,
v_text1 TYPE char40,
v_city1 TYPE char10,
v_postcode TYPE char6,
v_pcode TYPE char22,
v_street TYPE char50,
v_text2 TYPE char100,
v_state TYPE char15.
*
CONSTANTS : c_up TYPE char15 VALUE 'UTTAR PRADESH',
c_hiphen TYPE char1 VALUE '-',
c_comma TYPE char1 VALUE ',' .
*
*
*
TYPES: BEGIN OF ty_header,
name1 TYPE ad_name1,
city1 TYPE ad_city1,
post_code1 TYPE ad_pstcd1,
street TYPE ad_street,
END OF ty_header.
DATA: wa_header TYPE ty_header.
CLEAR: wa_header.
READ TABLE in_tab8 INDEX 1.
v_compcode = in_tab8-value.
*
SELECT adrnr FROM t001 INTO v_adrnr WHERE bukrs = v_compcode.
ENDSELECT.
IF sy-subrc EQ 0.
SELECT name1 city1 post_code1 street FROM adrc INTO wa_header WHERE addrnumber = v_adrnr.
ENDSELECT.
IF sy-subrc EQ 0.
READ TABLE out_tab8 INDEX 1.
v_text1 = wa_header-name1.
MOVE v_text1 TO out_tab8-value.
MODIFY out_tab8 INDEX 1.
v_city1 = wa_header-city1.
TRANSLATE v_city1 TO UPPER CASE.
v_postcode = wa_header-post_code1.
v_street = wa_header-street.
TRANSLATE v_street TO UPPER CASE.
CONCATENATE c_up c_hiphen v_postcode INTO v_pcode.
*****IF v_compcode = 2030.
clear v_state.
v_state = 'MAHARASHTRA'.
ELSEIF v_compcode = 2020.
v_state = 'TAMIL NADU'.
elseif v_compcode = 2000 or v_compcode = 2010 or v_compcode = 2040 or v_compcode = 2050.
v_state = 'UTTAR PRADESH'.
ENDIF.
CONCATENATE v_state c_hiphen v_postcode INTO v_pcode SEPARATED BY space.
CONCATENATE c_hiphen v_postcode INTO v_pcode SEPARATED BY space.
CONCATENATE v_street c_comma v_city1 v_pcode INTO v_text2 SEPARATED BY space.
READ TABLE out_tab8 INDEX 2.
MOVE v_text2 TO out_tab8-value.
MODIFY out_tab8 INDEX 2.
ENDIF.
ENDIF.
*
*ENDFORM. "GET_HEADER
End of comment for CR590
&----
*& Form BANK_STATEMENT
&----
Printing Bank Statement
----
-->IN_TAB8 text
-->OUT_TAB8 text
----
FORM bank_statement TABLES in_tab11 STRUCTURE itcsy
out_tab11 STRUCTURE itcsy.
DATA: v_cocode TYPE dzbukr,
v_chekno TYPE chect,
v_ntam TYPE char25,
v_amount TYPE string,
v_amount1 TYPE char16,
v_ntm TYPE rwbtr.
READ TABLE in_tab11 INDEX 1.
v_cocode = in_tab11-value.
READ TABLE in_tab11 INDEX 2.
v_chekno = in_tab11-value.
v_chekno = v_chekno - 1.
CONDENSE v_chekno.
*Get the Cheque amount from PAYR Table .
SELECT SINGLE rwbtr FROM payr INTO v_ntm WHERE zbukr = v_cocode
AND rzawe = 'C'
AND chect = v_chekno.
v_ntm = v_ntm * -1.
v_amount1 = v_ntm.
CONDENSE v_amount1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_ntam = v_amount.
IF sy-subrc EQ 0.
READ TABLE out_tab11 INDEX 1.
MOVE v_ntam TO out_tab11-value.
MODIFY out_tab11 INDEX 1.
ENDIF.
ENDFORM. "BANK_STATEMENT
&----
*& Form CHECK_GROSS
&----
Checking the Gross Amount fiels is Having Value or not.
----
-->IN_TAB12 text
-->OUT_TAB12 text
----
FORM check_gross TABLES in_tab12 STRUCTURE itcsy
out_tab12 STRUCTURE itcsy.
DATA: v_skfbt TYPE char16,
v_skfbt1 TYPE skfbt,
v_pswbt TYPE char16,
v_amount TYPE string,
v_amount1 TYPE char16,
v_grass TYPE char16,
v_grassamn TYPE char30.
READ TABLE in_tab12 INDEX 1.
v_skfbt = in_tab12-value.
CONDENSE v_skfbt.
READ TABLE in_tab12 INDEX 2.
v_pswbt = in_tab12-value.
IF v_skfbt = '0.00'.
v_skfbt = v_pswbt.
ENDIF.
v_grassamn = v_skfbt.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_grassamn.
v_skfbt1 = v_grassamn.
v_amount1 = v_skfbt1.
CONDENSE v_amount1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_grass = v_amount.
READ TABLE out_tab12 INDEX 1.
MOVE v_grass TO out_tab12-value.
MODIFY out_tab12 INDEX 1.
ENDFORM. "CHECK_GROSS
&----
*& Form PRINT_BANK_STATEMENT
&----
Bank Statement in Window2
----
-->IN_TAB12 text
-->OUT_TAB12 text
----
FORM print_bank_statement TABLES in_tab13 STRUCTURE itcsy
out_tab13 STRUCTURE itcsy.
*Data: V_NETAMOUNT_STATE type char16,
V_CHECKNUM type char8,
V_CHECK_DATE type char10,
V_BANK_NAME type char25.
*
*
READ TABLE IN_TAB13 INDEX 1.
V_NETAMOUNT_STATE = IN_TAB13-value.
CONDENSE V_NETAMOUNT_STATE.
*
READ TABLE IN_TAB13 INDEX 2.
V_CHECKNUM = IN_TAB13-value.
*
READ TABLE IN_TAB13 INDEX 3.
V_CHECK_DATE = IN_TAB13-value.
*
READ TABLE IN_TAB13 INDEX 4.
V_BANK_NAME = IN_TAB13-value.
*
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = '100-K'
window = 'WINDOW2'
EXCEPTIONS
window = 1
element = 2.
ENDFORM. "PRINT_BANK_STATEMENT
&----
*& Form GET_GROSS_DEDUCT_BSAK
&----
Get the Gross and Deduction amount pick from the BSAK Table
----
-->IN_TAB13 text
-->OUT_TAB13 text
----
FORM get_gross_deduct_bsak TABLES in_tab14 STRUCTURE itcsy
out_tab14 STRUCTURE itcsy.
DATA: v_company_code TYPE bukrs,
v_lineitem TYPE buzei,
v_fiscal_year TYPE gjahr,
v_fiscal_year1 TYPE char4,
v_doc_number TYPE belnr_d,
v_vblnr TYPE vblnr,
v_net_amount TYPE dmbtr,
v_net_amount11 TYPE char30,
v_net_amount1 TYPE char16,
v_vendor_num TYPE lifnr,
v_company_code1 TYPE char4,
v_doc_number1 TYPE char10,
v_vendor_num1 TYPE char10,
v_gross_bsak TYPE char16,
v_deduct_bsak TYPE char16,
v_grossbsak TYPE dmbtr,
v_grossbsak1 TYPE char30,
v_qbshb TYPE qbshb,
v_xblnr TYPE char16,
v_docdate TYPE char10,
v_qbshb1 TYPE char30,
v_deductbsak TYPE qbshb,
v_deductbsak1 TYPE char30,
v_flag TYPE char1,
v_fdoc TYPE char1.
DATA: v_sum_grsamnt TYPE dmbtr,
v_sum_grsamnt1 TYPE char30,
v_sum_grs TYPE char16,
v_nt_amn TYPE char16,
v_sum_ded1 TYPE qbshb,
v_sum_ded11 TYPE char30,
v_sum_ded TYPE char16,
v_sum_ntamnt TYPE dmbtr,
v_sum_ntamnt1 TYPE char30,
v_sum_nt TYPE char16,
v_indicator TYPE char1,
v_amount TYPE string,
v_amount1 TYPE string,
v_cnter TYPE char3,
v_counter1 TYPE i,
v_counter TYPE numc3,
l_v_ded TYPE wt_wt1, "Add by Jatin on 22.03.2007
l_v_ded1 TYPE wt_wt1, "Add by Jatin on 22.03.2007
l_v_ded2 TYPE char30. "Add by Jatin on 22.03.2007
TYPES: BEGIN OF ty_bsak,
bukrs TYPE bukrs,
lifnr TYPE lifnr,
gjahr TYPE gjahr,
belnr TYPE belnr_d,
shkzg TYPE shkzg,
dmbtr TYPE dmbtr,
qbshb TYPE qbshb,
blart TYPE blart, "Add by Jatin on 22.03.2007
xragl TYPE char1,
END OF ty_bsak.
DATA: wa_bsak TYPE ty_bsak.
Start of code add by Jatin on 22.03.2007
TYPES: BEGIN OF ty_with_item,
bukrs TYPE bukrs, "Company Code
belnr TYPE belnr_d, "Accounting Document Number
gjahr TYPE gjahr, "Fiscal Year
wt_qbshb TYPE wt_wt1, "Withholding tax amount in document currency
END OF ty_with_item.
DATA: it_with_item TYPE STANDARD TABLE OF ty_with_item
WITH NON-UNIQUE KEY bukrs belnr gjahr,
wa_with_item TYPE ty_with_item.
End of code add by Jatin on 22.03.2007
READ TABLE in_tab14 INDEX 1.
v_doc_number = in_tab14-value.
READ TABLE in_tab14 INDEX 2.
v_fiscal_year = in_tab14-value.
READ TABLE in_tab14 INDEX 3.
v_company_code = in_tab14-value.
READ TABLE in_tab14 INDEX 4.
v_vendor_num = in_tab14-value.
READ TABLE in_tab14 INDEX 5.
v_net_amount11 = in_tab14-value.
****************Code added by Jatin
IF v_net_amount11 CA '-'.
v_flag = 'X'.
ENDIF.
**Begin of Removing commas >>
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_net_amount11.
v_net_amount = v_net_amount11.
IF v_flag = 'X'.
v_net_amount = 0 - v_net_amount.
CLEAR v_flag.
ENDIF.
End of code added by Jatin
READ TABLE in_tab14 INDEX 6.
v_sum_grsamnt1 = in_tab14-value.
****************Code added by Jatin
IF v_sum_grsamnt1 CA '-'.
v_flag = 'X'.
ENDIF.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_sum_grsamnt1.
v_sum_grsamnt = v_sum_grsamnt1.
IF v_flag = 'X'.
v_sum_grsamnt = 0 - v_sum_grsamnt.
CLEAR v_flag.
ENDIF.
End of code added by Jatin
READ TABLE in_tab14 INDEX 7.
v_sum_ded11 = in_tab14-value.
****************Code added by Jatin
IF v_sum_ded11 CA '-'.
v_flag = 'X'.
ENDIF.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_sum_ded11.
v_sum_ded1 = v_sum_ded11.
IF v_flag = 'X'.
v_sum_ded1 = 0 - v_sum_ded1.
CLEAR v_flag.
ENDIF.
End of code added by Jatin
READ TABLE in_tab14 INDEX 8.
v_sum_ntamnt1 = in_tab14-value.
****************Code added by Jatin
IF v_sum_ntamnt1 CA '-'.
v_flag = 'X'.
ENDIF.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_sum_ntamnt1.
v_sum_ntamnt = v_sum_ntamnt1.
IF v_flag = 'X'.
v_sum_ntamnt = 0 - v_sum_ntamnt.
CLEAR v_flag.
ENDIF.
End of code added by Jatin
READ TABLE in_tab14 INDEX 9.
v_cnter = in_tab14-value.
v_counter1 = v_cnter.
v_counter1 = v_counter1 + 1.
v_counter = v_counter1.
READ TABLE in_tab14 INDEX 10.
v_indicator = in_tab14-value.
READ TABLE in_tab14 INDEX 11.
v_xblnr = in_tab14-value.
READ TABLE in_tab14 INDEX 12.
v_docdate = in_tab14-value.
READ TABLE in_tab14 INDEX 13.
v_lineitem = in_tab14-value.
READ TABLE in_tab14 INDEX 14.
v_fdoc = in_tab14-value.
READ TABLE in_tab14 INDEX 15.
v_vblnr = in_tab14-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_vendor_num
IMPORTING
output = v_vendor_num.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_doc_number
IMPORTING
output = v_doc_number.
IF v_fdoc = 'V' OR v_fdoc = 'Z'.
SELECT bukrs "Company Code
lifnr "Account Number of Vendor or Creditor
gjahr "Fiscal Year
belnr "Accounting Document Number
shkzg "Debit/Credit Indicator
dmbtr "Amount in local currency
qbshb "Withholding Tax Amount (in Document Currency)
blart "Document Type
FROM regup
INTO CORRESPONDING FIELDS OF wa_bsak
WHERE bukrs EQ v_company_code "Company Code
AND lifnr EQ v_vendor_num "Account Number of Vendor or Creditor
AND gjahr EQ v_fiscal_year "Fiscal Year
AND vblnr EQ v_vblnr "Payment Document Number
AND belnr EQ v_doc_number "Accounting Document Number
AND buzei EQ v_lineitem. "Number of Line Item Within Accounting Document
ENDSELECT.
ELSE.
**Get the Gross and Deduction amounts from BSAK Table.
SELECT bukrs "Company Code
lifnr "Account Number of Vendor or Creditor
gjahr "Fiscal Year
belnr "Accounting Document Number
shkzg "Debit/Credit Indicator
dmbtr "Amount in local currency
qbshb "Withholding Tax Amount (in Document Currency)
blart "Document Type
xragl "Cheque cancellation Indicator
FROM bsak
INTO wa_bsak
WHERE bukrs EQ v_company_code "Company Code
AND lifnr EQ v_vendor_num "Account Number of Vendor or Creditor
AND gjahr EQ v_fiscal_year "Fiscal Year
AND belnr EQ v_doc_number "Accounting Document Number
AND buzei EQ v_lineitem. "Number of Line Item Within Accounting Document
ENDSELECT.
ENDIF.
***********Start of code add by Jatin Sharma 22.03.2007
**Logic to get Withholding Tax Amount from with_item for 'RE' document type.
IF wa_bsak-blart = 'RE' OR wa_bsak-xragl = 'X'.
SELECT bukrs "Company Code
belnr "Accounting Document Number
gjahr "Fiscal Year
wt_qbshb "Withholding tax amount in document currency
FROM with_item
INTO TABLE it_with_item
WHERE bukrs EQ v_company_code "Company Code
AND belnr EQ v_doc_number "Accounting Document Number
AND gjahr EQ v_fiscal_year. "Fiscal Year
LOOP AT it_with_item INTO wa_with_item.
l_v_ded = wa_with_item-wt_qbshb.
***********Start of code add by Jatin Sharma on 23.03.2007
l_v_ded2 = l_v_ded.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = l_v_ded2.
l_v_ded = l_v_ded2.
***********End of code add by Jatin Sharma on 23.03.2007
l_v_ded1 = l_v_ded1 + l_v_ded.
CLEAR l_v_ded.
ENDLOOP.
ENDIF.
End of code added by Jatin 22.03.2007.
**>>Preparing Net amount for output>>>
Start of code added by Jatin.
IF wa_bsak-shkzg = 'S'.
v_net_amount = 0 - v_net_amount.
ENDIF.
End of code added by Jatin.
v_sum_ntamnt = v_sum_ntamnt + v_net_amount.
CLEAR: v_amount1, v_amount.
v_amount1 = v_net_amount.
CONDENSE v_amount1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR_CHK1'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_nt_amn = v_amount.
**End of Prepare>>
*>>>>>>Get the Gross amount and converitng it into INR format***
CLEAR: v_amount1, v_amount.
IF wa_bsak-blart = 'RE' OR wa_bsak-xragl = 'X'.
v_deductbsak = l_v_ded1.
v_grossbsak = wa_bsak-dmbtr + v_deductbsak.
ELSE.
v_grossbsak = wa_bsak-dmbtr + wa_bsak-qbshb.
ENDIF.
Start of code added by Jatin.
IF wa_bsak-shkzg = 'S'.
v_grossbsak = 0 - v_grossbsak.
ENDIF.
End of code added by Jatin.
v_amount1 = v_grossbsak.
CONDENSE v_amount1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR_CHK1'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_gross_bsak = v_amount.
*Sum of the Gross amount**
v_sum_grsamnt = v_sum_grsamnt + v_grossbsak.
*>>>>>>>>>>Get the deduction amount***
CLEAR: v_amount1, v_amount.
Start of code added by Jatin.
IF wa_bsak-blart = 'RE' OR wa_bsak-xragl = 'X'.
v_deductbsak = l_v_ded1.
ELSE.
v_deductbsak = wa_bsak-qbshb.
ENDIF.
IF wa_bsak-shkzg = 'S'.
v_deductbsak = 0 - v_deductbsak.
ENDIF.
End of code added by Jatin.
v_amount1 = v_deductbsak.
CONDENSE v_amount1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR_CHK1'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_deduct_bsak = v_amount.
*Sum of the Deduction amount**
v_sum_ded1 = v_sum_ded1 + v_deductbsak.
v_sum_grs = v_sum_grsamnt.
v_sum_ded = v_sum_ded1.
v_sum_nt = v_sum_ntamnt.
IF v_counter > 14.
IMPORT i_download FROM MEMORY ID 'HK'.
wa_download-belnr = v_doc_number.
wa_download-xblnr = v_xblnr.
wa_download-bldat = v_docdate.
wa_download-skfbt = v_grossbsak.
wa_download-qbshb = v_deductbsak.
wa_download-wrbtr = v_net_amount.
APPEND wa_download TO i_download.
EXPORT i_download TO MEMORY ID 'HK'.
ENDIF.
CLEAR: wa_download.
READ TABLE out_tab14 INDEX 1.
MOVE v_gross_bsak TO out_tab14-value.
MODIFY out_tab14 INDEX 1.
READ TABLE out_tab14 INDEX 2.
MOVE v_deduct_bsak TO out_tab14-value.
MODIFY out_tab14 INDEX 2.
READ TABLE out_tab14 INDEX 3.
MOVE v_sum_grs TO out_tab14-value.
MODIFY out_tab14 INDEX 3.
READ TABLE out_tab14 INDEX 4.
MOVE v_sum_ded TO out_tab14-value.
MODIFY out_tab14 INDEX 4.
READ TABLE out_tab14 INDEX 5.
MOVE v_sum_nt TO out_tab14-value.
MODIFY out_tab14 INDEX 5.
READ TABLE out_tab14 INDEX 6.
MOVE v_counter TO out_tab14-value.
MODIFY out_tab14 INDEX 6.
READ TABLE out_tab14 INDEX 7.
MOVE v_nt_amn TO out_tab14-value.
MODIFY out_tab14 INDEX 7.
CLEAR: wa_bsak.
ENDFORM. "GET_GROSS_DEDUCT_BSAK
&----
*& Form GET_GROSS_DEDUCT_REGUP
&----
FROM REGUP Table
----
-->IN_TAB15 text
-->OUT_TAB15 text
----
FORM get_gross_deduct_regup TABLES in_tab15 STRUCTURE itcsy
out_tab15 STRUCTURE itcsy.
DATA: v_company_code TYPE bukrs,
v_fiscal_year TYPE gjahr,
v_fiscal_year1 TYPE char4,
v_doc_number TYPE belnr_d,
v_net_amount TYPE dmbtr,
v_lineitem TYPE buzei,
v_net_amount11 TYPE char30,
v_net_amount1 TYPE char16,
v_vendor_num TYPE lifnr,
v_company_code1 TYPE char4,
v_doc_number1 TYPE char10,
v_vendor_num1 TYPE char10,
v_gross_bsak TYPE char16,
v_deduct_bsak TYPE char16,
v_grossbsak TYPE dmbtr,
v_grossbsak1 TYPE char30,
v_qbshb TYPE qbshb,
v_xblnr TYPE char16,
v_docdate TYPE char10,
v_qbshb1 TYPE char30,
v_deductbsak TYPE qbshb,
v_deductbsak1 TYPE char30,
v_flag TYPE char1,
v_fdoc TYPE char1.
DATA: v_sum_grsamnt TYPE dmbtr,
v_sum_grsamnt1 TYPE char30,
v_sum_grs TYPE char16,
v_nt_amn TYPE char16,
v_sum_ded1 TYPE qbshb,
v_sum_ded11 TYPE char30,
v_sum_ded TYPE char16,
v_sum_ntamnt TYPE dmbtr,
v_sum_ntamnt1 TYPE char30,
v_sum_nt TYPE char16,
v_indicator TYPE char1,
v_amount TYPE string,
v_amount1 TYPE char16,
v_cnter TYPE char2,
v_counter1 TYPE i,
v_counter TYPE numc3.
TYPES: BEGIN OF ty_regup,
lifnr TYPE lifnr,
bukrs TYPE bukrs,
belnr TYPE belnr_d,
gjahr TYPE gjahr,
shkzg TYPE shkzg,
dmbtr TYPE dmbtr,
qbshb TYPE qbshb,
END OF ty_regup.
DATA: wa_regup TYPE ty_regup.
READ TABLE in_tab15 INDEX 1.
v_doc_number = in_tab15-value.
READ TABLE in_tab15 INDEX 2.
v_fiscal_year = in_tab15-value.
READ TABLE in_tab15 INDEX 3.
v_company_code = in_tab15-value.
READ TABLE in_tab15 INDEX 4.
v_vendor_num = in_tab15-value.
READ TABLE in_tab15 INDEX 5.
v_net_amount11 = in_tab15-value.
****************Code added by Jatin
IF v_net_amount11 CA '-'.
v_flag = 'X'.
ENDIF.
**Begin of Removing commas >>
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_net_amount11.
v_net_amount = v_net_amount11.
IF v_flag = 'X'.
v_net_amount = 0 - v_net_amount.
CLEAR v_flag.
ENDIF.
End of code added by Jatin
READ TABLE in_tab15 INDEX 6.
v_sum_grsamnt1 = in_tab15-value.
****************Code added by Jatin
IF v_sum_grsamnt1 CA '-'.
v_flag = 'X'.
ENDIF.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_sum_grsamnt1.
v_sum_grsamnt = v_sum_grsamnt1.
IF v_flag = 'X'.
v_sum_grsamnt = 0 - v_sum_grsamnt.
CLEAR v_flag.
ENDIF.
End of code added by Jatin
READ TABLE in_tab15 INDEX 7.
v_sum_ded11 = in_tab15-value.
****************Code added by Jatin
IF v_sum_ded11 CA '-'.
v_flag = 'X'.
ENDIF.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_sum_ded11.
v_sum_ded1 = v_sum_ded11.
IF v_flag = 'X'.
v_sum_ded1 = 0 - v_sum_ded1.
CLEAR v_flag.
ENDIF.
End of code added by Jatin
READ TABLE in_tab15 INDEX 8.
v_sum_ntamnt1 = in_tab15-value.
****************Code added by Jatin
IF v_sum_ntamnt1 CA '-'.
v_flag = 'X'.
ENDIF.
CALL FUNCTION 'TELNUMBER_REMOVE_SPECIAL_CHAR'
CHANGING
telnumber = v_sum_ntamnt1.
v_sum_ntamnt = v_sum_ntamnt1.
IF v_flag = 'X'.
v_sum_ntamnt = 0 - v_sum_ntamnt.
CLEAR v_flag.
ENDIF.
End of code added by Jatin
READ TABLE in_tab15 INDEX 9.
v_cnter = in_tab15-value.
v_counter1 = v_cnter.
v_counter1 = v_counter1 + 1.
v_counter = v_counter1.
READ TABLE in_tab15 INDEX 10.
v_indicator = in_tab15-value.
READ TABLE in_tab15 INDEX 11.
v_xblnr = in_tab15-value.
READ TABLE in_tab15 INDEX 12.
v_docdate = in_tab15-value.
READ TABLE in_tab15 INDEX 13.
v_lineitem = in_tab15-value.
READ TABLE in_tab15 INDEX 14.
v_fdoc = in_tab15-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_vendor_num
IMPORTING
output = v_vendor_num.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_doc_number
IMPORTING
output = v_doc_number.
**Get the Gross and Deduction amounts from BSAK Table.
SELECT lifnr
bukrs
belnr
gjahr
shkzg
dmbtr
qbshb
FROM regup
INTO wa_regup
WHERE lifnr EQ v_vendor_num
AND bukrs EQ v_company_code
AND belnr EQ v_doc_number
AND gjahr EQ v_fiscal_year
AND buzei EQ v_lineitem.
ENDSELECT.
*Get the Gross amount and converitng it into INR format***
CLEAR: v_amount1, v_amount.
v_grossbsak = wa_regup-dmbtr.
Start of code added by Jatin.
IF wa_regup-shkzg = 'S'.
v_grossbsak = 0 - v_grossbsak.
ENDIF.
End of code added by Jatin.
v_amount1 = v_grossbsak.
CONDENSE v_amount1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR_CHK1'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_gross_bsak = v_amount.
*Sum of the Gross amount**
v_sum_grsamnt = v_sum_grsamnt + v_grossbsak.
*Get the deduction amount***
CLEAR: v_amount1, v_amount.
v_deductbsak = wa_regup-qbshb.
Start of code added by Jatin.
IF wa_regup-shkzg = 'S'.
v_deductbsak = 0 - v_deductbsak.
ENDIF.
End of code added by Jatin.
v_amount1 = v_deductbsak.
CONDENSE v_amount1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR_CHK1'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_deduct_bsak = v_amount.
*Sum of the Deduction amount**
v_sum_ded1 = v_sum_ded1 + v_deductbsak.
v_net_amount = v_grossbsak - v_deductbsak.
Start of code added by Jatin.
IF v_fdoc = 'V' OR v_fdoc = 'Z'.
v_net_amount = 0 - v_net_amount.
ENDIF.
End of code added by Jatin.
v_sum_ntamnt = v_sum_ntamnt + v_net_amount.
**>>Preparing Net amount for output>>>
CLEAR: v_amount1, v_amount.
v_amount1 = v_net_amount.
CONDENSE v_amount1.
CALL FUNCTION 'ZAMOUNT_FORMAT_INR_CHK1'
EXPORTING
v_amount = v_amount1
IMPORTING
v_string = v_amount
EXCEPTIONS
not_found = 1
too_large = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
v_nt_amn = v_amount.
**End of Prepare>>
v_sum_grs = v_sum_grsamnt.
v_sum_ded = v_sum_ded1.
v_sum_nt = v_sum_ntamnt.
IF v_counter > 14.
IMPORT i_download FROM MEMORY ID 'HK'.
wa_download-belnr = v_doc_number.
wa_download-xblnr = v_xblnr.
wa_download-bldat = v_docdate.
wa_download-skfbt = v_grossbsak.
wa_download-qbshb = v_deductbsak.
wa_download-wrbtr = v_net_amount.
APPEND wa_download TO i_download.
EXPORT i_download TO MEMORY ID 'HK'.
ENDIF.
CLEAR: wa_download.
READ TABLE out_tab15 INDEX 1.
MOVE v_gross_bsak TO out_tab15-value.
MODIFY out_tab15 INDEX 1.
READ TABLE out_tab15 INDEX 2.
MOVE v_deduct_bsak TO out_tab15-value.
MODIFY out_tab15 INDEX 2.
READ TABLE out_tab15 INDEX 3.
MOVE v_sum_grs TO out_tab15-value.
MODIFY out_tab15 INDEX 3.
READ TABLE out_tab15 INDEX 4.
MOVE v_sum_ded TO out_tab15-value.
MODIFY out_tab15 INDEX 4.
READ TABLE out_tab15 INDEX 5.
MOVE v_sum_nt TO out_tab15-value.
MODIFY out_tab15 INDEX 5.
READ TABLE out_tab15 INDEX 6.
MOVE v_counter TO out_tab15-value.
MODIFY out_tab15 INDEX 6.
READ TABLE out_tab15 INDEX 7.
MOVE v_nt_amn TO out_tab15-value.
MODIFY out_tab15 INDEX 7.
CLEAR: wa_regup.
ENDFORM. "GET_GROSS_DEDUCT_REGUP
Begin of Code Added By Jatin Sharma
&----
*& Form GET_ADDRESS
&----
Get Vendor Address for Address Window
----
-->IN_TAB_9 Vendor details
-->OUT_TAB_9 Vendor Address for Address window
----
FORM get_address TABLES in_tab_9 STRUCTURE itcsy
out_tab_9 STRUCTURE itcsy.
DATA: v_vendor TYPE char10,
v_adrnr TYPE adrnr,
v_name1 TYPE char40,
v_name2 TYPE char40,
v_name3 TYPE char40,
v_name4 TYPE char40,
v_pcode TYPE char10,
v_city1 TYPE char40,
v_city2 TYPE char40,
v_text1 TYPE char100, "Name
v_text2 TYPE char40, "Streetr/House No
v_text3 TYPE char40, "Street 4
v_text4 TYPE char40, "Street 5
v_text5 TYPE char100, "Pincode/City1/City2
v_lifnr TYPE char10.
TYPES: BEGIN OF ty_address,
name1 TYPE ad_name1,
name2 TYPE ad_name2,
name3 TYPE ad_name3,
name4 TYPE ad_name4,
street TYPE ad_street,
str_suppl3 TYPE ad_strspp3,
location TYPE ad_lctn,
post_code1 TYPE ad_pstcd1,
city1 TYPE ad_city1,
city2 TYPE ad_city2,
END OF ty_address.
DATA: wa_address TYPE ty_address.
CLEAR: wa_address.
READ TABLE in_tab_9 INDEX 1.
v_vendor = in_tab_9-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_vendor
IMPORTING
output = v_vendor.
SELECT adrnr INTO v_adrnr FROM lfa1 WHERE lifnr = v_vendor.
ENDSELECT.
IF sy-subrc EQ 0.
SELECT name1
name2
name3
name4
street
str_suppl3
location
post_code1
city1
city2
FROM adrc INTO wa_address WHERE addrnumber = v_adrnr.
ENDSELECT.
IF sy-subrc EQ 0.
Name1 / Name2 / Name3 / Name4
READ TABLE out_tab_9 INDEX 1.
v_name1 = wa_address-name1.
v_name2 = wa_address-name2.
v_name3 = wa_address-name3.
v_name4 = wa_address-name4.
CONCATENATE v_name1 v_name2 v_name3 v_name4 INTO v_text1.
MOVE v_text1 TO out_tab_9-value.
MODIFY out_tab_9 INDEX 1.
CLEAR out_tab_9-value.
House No/ Street
READ TABLE out_tab_9 INDEX 2.
v_text2 = wa_address-street.
MOVE v_text2 TO out_tab_9-value.
MODIFY out_tab_9 INDEX 2.
Street 4
READ TABLE out_tab_9 INDEX 3.
v_text3 = wa_address-str_suppl3.
MOVE v_text3 TO out_tab_9-value.
MODIFY out_tab_9 INDEX 3.
Street 5
READ TABLE out_tab_9 INDEX 4.
v_text4 = wa_address-location.
MOVE v_text4 TO out_tab_9-value.
MODIFY out_tab_9 INDEX 4.
Pincode / City1 / City2
READ TABLE out_tab_9 INDEX 5.
v_pcode = wa_address-post_code1.
v_city1 = wa_address-city1.
v_city2 = wa_address-city2.
CONCATENATE v_city1 v_city2 v_pcode INTO v_text5 SEPARATED BY space.
MOVE v_text5 TO out_tab_9-value.
MODIFY out_tab_9 INDEX 5.
ENDIF.
ENDIF.
ENDFORM. "GET_ADDRESS
&----
*& Form GET_CHECK_ADD
&----
Get Vendor Address for Address Window
----
-->IN_TAB_9 Vendor details
-->OUT_TAB_9 Vendor Address for Address window
----
FORM get_check_add TABLES in_tab_10 STRUCTURE itcsy
out_tab_10 STRUCTURE itcsy.
DATA: v_name TYPE char40, "Name
v_vendor TYPE lifnr, "Vendor
v_ccode TYPE bukrs, "Company Code
v_doc_no TYPE vblnr, "Document No
v_fiscal_year TYPE gjahr, "Fiscal Year
v_xcpdd TYPE c. "Indicator: Address and bank data set individually
READ TABLE in_tab_10 INDEX 1.
v_vendor = in_tab_10-value.
READ TABLE in_tab_10 INDEX 2.
v_ccode = in_tab_10-value.
READ TABLE in_tab_10 INDEX 3.
v_doc_no = in_tab_10-value.
READ TABLE in_tab_10 INDEX 4.
v_fiscal_year = in_tab_10-value.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = v_vendor
IMPORTING
output = v_vendor.
SELECT xcpdd INTO v_xcpdd FROM regup WHERE
lifnr = v_vendor AND
bukrs = v_ccode AND
vblnr = v_doc_no AND
gjahr = v_fiscal_year.
ENDSELECT.
READ TABLE out_tab_10 INDEX 1.
MOVE v_xcpdd TO out_tab_10-value.
MODIFY out_tab_10 INDEX 1.
ENDFORM. "GET_ADDRESS
End of Code Added By Jatin Sharma
hi
that stmt wasnt there prior(i have written that).
still that error is coming after uncommenting it. also script was good before when i copied and did changes in layout it started giving problems.
now its giving short-dump stating the form "get_gross_deduct_bsak" is having a value "xxxxxxxxxx" which is interpreted as number.
so not able to undtsd what to do ...
Declare it in your print program in tables and also when you are calling your smart form function module see that in tables are you properly passing yout smart form table name with your print program table name.
what error is it exactly giving?
Regards
Swetha.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
88 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.