Skip to Content
0
Former Member
Dec 01, 2008 at 09:57 AM

Using field-symbols to reduce Coding

27 Views

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