Hello friends,
I want to reduce the below coding by using field-symbols.
Please give me some idea.
DATA: BEGIN OF gt_alv_out_year OCCURS 0,
tcode TYPE z07s_prog_hitlog-tcode,
ttext TYPE tstct-ttext,
month1_count TYPE z07s_prog_hitlog-hits,
month2_count TYPE z07s_prog_hitlog-hits,
month3_count TYPE z07s_prog_hitlog-hits,
month4_count TYPE z07s_prog_hitlog-hits,
month5_count TYPE z07s_prog_hitlog-hits,
month6_count TYPE z07s_prog_hitlog-hits,
month7_count TYPE z07s_prog_hitlog-hits,
month8_count TYPE z07s_prog_hitlog-hits,
month9_count TYPE z07s_prog_hitlog-hits,
month10_count TYPE z07s_prog_hitlog-hits,
month11_count TYPE z07s_prog_hitlog-hits,
month12_count TYPE z07s_prog_hitlog-hits,
Total TYPE z07s_prog_hitlog-hits,
END OF gt_alv_out_year.
DATA: gt_z07s_prog_hitlog LIKE TABLE OF z07s_prog_hitlog
WITH HEADER LINE.
LOOP AT gt_z07s_prog_hitlog.
READ TABLE gt_alv_out_year WITH KEY
tcode = gt_z07s_prog_hitlog-tcode.
l_f_index = sy-tabix.
IF sy-subrc EQ 0.
IF gt_z07s_prog_hitlog-datum+4(2) EQ '01'.
gt_alv_out_year-month1_count = gt_alv_out_year-month1_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '02'.
gt_alv_out_year-month2_count = gt_alv_out_year-month2_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '03'.
gt_alv_out_year-month3_count = gt_alv_out_year-month3_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '04'.
gt_alv_out_year-month4_count = gt_alv_out_year-month4_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '05'.
gt_alv_out_year-month5_count = gt_alv_out_year-month5_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '06'.
gt_alv_out_year-month6_count = gt_alv_out_year-month6_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '07'.
gt_alv_out_year-month7_count = gt_alv_out_year-month7_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '08'.
gt_alv_out_year-month8_count = gt_alv_out_year-month8_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '09'.
gt_alv_out_year-month9_count = gt_alv_out_year-month9_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '10'.
gt_alv_out_year-month10_count = gt_alv_out_year-month10_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '11'.
gt_alv_out_year-month11_count = gt_alv_out_year-month11_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '12'.
gt_alv_out_year-month12_count = gt_alv_out_year-month12_count +
gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_alv_out_year-total +
gt_z07s_prog_hitlog-hits .
ENDIF.
MODIFY gt_alv_out_year INDEX l_f_index.
CLEAR : gt_alv_out_year,gt_z07s_prog_hitlog,l_f_index.
ELSE.
gt_alv_out_year-tcode = gt_z07s_prog_hitlog-tcode.
SELECT SINGLE * FROM tstct
WHERE tcode EQ gt_z07s_prog_hitlog-tcode
AND
sprsl EQ sy-langu.
IF sy-subrc EQ 0.
gt_alv_out_year-ttext = tstct-ttext.
Endif.
IF gt_z07s_prog_hitlog-datum+4(2) EQ '01'.
gt_alv_out_year-month1_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '02'.
gt_alv_out_year-month2_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '03'.
gt_alv_out_year-month3_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '04'.
gt_alv_out_year-month4_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '05'.
gt_alv_out_year-month5_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '06'.
gt_alv_out_year-month6_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '07'.
gt_alv_out_year-month7_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '08'.
gt_alv_out_year-month8_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '09'.
gt_alv_out_year-month9_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '10'.
gt_alv_out_year-month10_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '11'.
gt_alv_out_year-month11_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ELSEIF gt_z07s_prog_hitlog-datum+4(2) EQ '12'.
gt_alv_out_year-month12_count = gt_z07s_prog_hitlog-hits .
gt_alv_out_year-total = gt_z07s_prog_hitlog-hits .
ENDIF.
APPEND gt_alv_out_year.
CLEAR : gt_alv_out_year,gt_z07s_prog_hitlog.
ENDIF.
ENDLOOP.
Regards,
Hari