Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Logic for calculating Debit and Credit Entries.

Former Member
0 Kudos

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

9 REPLIES 9

krishnendu_laha
Active Contributor
0 Kudos

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

0 Kudos

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

kesavadas_thekkillath
Active Contributor
0 Kudos

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

krishnendu_laha
Active Contributor
0 Kudos

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

Former Member
0 Kudos

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.

Former Member
0 Kudos

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.

Former Member
0 Kudos

0 Kudos

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.

sachin_yadav3
Active Participant
0 Kudos

Hi,

You can use collect stmt.

Regards

Sachin