07-18-2008 6:23 AM
Hi Experts,
My internal table consists of the following fields, Now i want to add all the DEBIT Entries and CREDIT Entries in the last column.
TAX CODE STATE CURRENT BAL. PRIOR BAL
3900000000 CALIFORNIA 0.00 144.00-
3900000000 CALIFORNIA 0.00 72.00-
3900000000 CALIFORNIA 0.00 7,200.00-
3900000000 CALIFORNIA 0.00 180.00-
3900000000 CALIFORNIA 0.00 72.00-
3900000000 CALIFORNIA 0.00 72.00-
3900000000 CALIFORNIA 0.00 72.00-
3900000000 CALIFORNIA 0.00 9,000.00
3900000000 CALIFORNIA 0.00 9,000.00
3900000000 CALIFORNIA 0.00 9,000.00
3900000000 CALIFORNIA 0.00 10.80-
3900000000 CALIFORNIA 0.00 2,592.00-
3900000000 CALIFORNIA 0.00 7,560.00
3900000000 CALIFORNIA 0.00 6,000.00-
3900000000 CALIFORNIA 0.00 540.00-
3900000000 CALIFORNIA 0.00 18.00
3900000000 CALIFORNIA 0.00 720.00-
And finally the internal table should display only one line. i.e.,
TAX CODE STATE CURRENT BAL. PRIOR BAL
3900000000 CALIFORNIA 0.00 X
X = Totals of Credit Entries - Total of Debit Entries.
Please provide me some logic for calculating those entries.
Thanks & Regards,
Ramana
07-18-2008 6:33 AM
Hi Friend,
Generalyy from where you are getting data, there will be one debit/credit (SHKZG) indicator.
If the value in SHKZG is H then it is credit, generally value with '-' sign.
And if it is S then it is debit, positive value.
So based on that indicator you can process total debit and credit value in LOOP.
Hope it will help you.
Regards
Krishnendu
07-18-2008 6:42 AM
Hi Krishnendu,
Thanks for your reply.
Based on that value in SHKZG(H or S), i have given the ( ' - ' )signs in my internal table.
Can you explain me the logic how to calculate, those entries.
Thanks & Regards,
Ramana
07-18-2008 6:46 AM
LOOp at itab.
AT NEW TAXCODE.
SUM.
WRITE at 10 ITAB-TAXCODE.
WRITE at 20 <field2>
WRITE at 30 <BAL>
endat.
endloop.
if u donot want to print...just move the values into othjer itab instead of write statement
07-18-2008 7:40 AM
Hi Friend,
Declare two variables same type as value there.
Sum up all value in the LOOP and in the AT LAST event pass the entry with customer number and name to another internal table.
Display from that internal table, you will get one entry which is required.
Regards
Krishnendu
07-18-2008 7:44 AM
Hi,
Try below code :
loop at itab.
if shkzg = 'H'.
cr_prior_bal = cr_prior_bal + current_bal.
else.
dr_prior_bal = dr_prior_bal + current_bal.
endif.
endloop.
Thanks,
Sriram POnna.
07-18-2008 7:44 AM
Hi Ramana Prasad Tarapatla,
Try this logic,it will solve your probelm.
LOOP AT ITAB.
AT END OF HKONT.
SUM.
ENDAT.
ENDLOOP.
Hope it is helps.
Regards,
T.Durai murugan.
01-23-2014 10:11 AM
01-23-2014 10:11 AM
TYPES : BEGIN OF ty_itab,
bukrs TYPE bukrs,
gjahr TYPE gjahr,
kunnr TYPE kunnr,
umskz TYPE umskz,
shkzg TYPE shkzg,
dmbtr TYPE dmbtr,
END OF ty_itab.
TYPES : BEGIN OF ty_final,
bukrs TYPE bukrs,
gjahr TYPE gjahr,
kunnr TYPE kunnr,
umskz TYPE umskz,
debit TYPE dmbtr,
credit TYPE dmbtr,
balance TYPE dmbtr,
END OF ty_final.
DATA : it_itab TYPE TABLE OF ty_itab WITH KEY bukrs gjahr kunnr umskz shkzg ,
wa_itab TYPE ty_itab,
it_collect TYPE TABLE OF ty_itab , "with key bukrs gjahr kunnr umskz shkzg ,
wa_collect TYPE ty_itab.
DATA : i_final TYPE TABLE OF ty_final,
wa_final LIKE LINE OF i_final.
* Get the data into internal table it_itab from databse table.
sort it_itab by bukrs gjahr kunnr umskz shkzg.
LOOP AT it_itab INTO wa_itab.
COLLECT wa_itab INTO it_collect.
ENDLOOP.
CLEAR : wa_collect, wa_final.
LOOP AT it_collect INTO wa_collect.
MOVE-CORRESPONDING wa_collect TO wa_final.
IF wa_collect-shkzg = 'S'.
wa_final-debit = wa_collect-dmbtr.
ELSEIF wa_collect-shkzg = 'H'.
wa_final-credit = wa_collect-dmbtr.
ENDIF.
AT END OF umskz.
wa_final-balance = wa_final-debit - wa_final-credit.
APPEND wa_final TO i_final.
CLEAR wa_final.
ENDAT.
ENDLOOP.
LOOP AT i_final INTO wa_final.
WRITE 😕 wa_final-bukrs, wa_final-gjahr, wa_final-kunnr, wa_final-umskz, wa_final-debit, wa_final-credit, wa_final-balance.
ENDLOOP.
01-23-2014 11:19 AM