cancel
Showing results for 
Search instead for 
Did you mean: 

problem in script ZF110_PRNM1_CHCK

Former Member
0 Kudos

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

Accepted Solutions (0)

Answers (3)

Answers (3)

Former Member
0 Kudos

done with the print program issue

Former Member
0 Kudos

Hi Venkat,

Tell me in detail whats the problem you facing?

Thanks

Nayan

Former Member
0 Kudos

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?

Former Member
0 Kudos

hi Venkat,

Have you written REGUH-vblnr in the correct format???

the correct format is &REGUH-VBLNR&.

check this and let me know.

Nayan.

Former Member
0 Kudos

hi nayan

i just copied the existing layout ZF110_PRNM1_CHCK.

i just gave the new print program name there thats it,.

so tell me what should i do there?

Former Member
0 Kudos

Just copy and send it to me...il tell you whats going wrong. I mean where are u getting the error,send me that code.

Nayan

Former Member
0 Kudos

hi

its giving me the error in all the windows of the script.

so what code do u want me to send..

Former Member
0 Kudos

are all the codes the same? send me one of them as a sample. Im taking of the code in your script.

Nayan

Former Member
0 Kudos

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

Former Member
0 Kudos

its not detecting the table REGUP,REGUH,REGUD

Former Member
0 Kudos

in the beginning of the code there is a statement.

TAbles : REGUP,REGUH,REGUD.

That is commented.

do not comment that line. Uncomment it.

Nayan

Former Member
0 Kudos

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 ...

Former Member
0 Kudos

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.

Former Member
0 Kudos

hi

this is a script.

and the errors are its not detecting the tables-REGUH,REGUP,REGUD. i just changed window layout and copied the same print program. but dont know why its giving these errors

and its corresponding fields.