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: 

how to minimize the code

Former Member
0 Kudos

My issue is I want to take 1 month data.

ie for a particular material I am checking in a 'z' table where some lot is created for 1st day of a month till last day of a month(ie 1st to 31st).

In this case it takes a lot of time for 7 materials in dev server itself. ie the loop runs for 31*7 times. How can i do this such that exec time can be reduced.

my code is:

WHILE date1 <= date2.

clear: it_zqminv[],it_ekko1[].

SELECT single * FROM zqminvoice where

lifnr = p_lifnr and

matnr = it_ekpo-matnr and

werk = it_ekpo-werks and

bldat = date1 and

art = '94'.

IF sy-subrc = 0.

IF date1+6(2) = '01'.

WRITE :72(2) d01 HOTSPOT ON COLOR 3 INTENSIFIED ON,

74 sy-vline.

elseif date1+6(2) = '02'.

WRITE :75(2) d02 HOTSPOT ON COLOR 3 INTENSIFIED ON,

77 sy-vline.

elseif date1+6(2) = '03'.

WRITE :78(2) d03 HOTSPOT ON COLOR 3 INTENSIFIED ON,

80 sy-vline.

elseIF date1+6(2) = '04'.

WRITE :81(2) d04 HOTSPOT ON COLOR 3 INTENSIFIED ON,

83 sy-vline.

elseif date1+6(2) = '05'.

WRITE :84(2) d05 HOTSPOT ON COLOR 3 INTENSIFIED ON,

86 sy-vline.

elseIF date1+6(2) = '06'.

WRITE :87(2) d06 HOTSPOT ON COLOR 3 INTENSIFIED ON,

89 sy-vline.

elseIF date1+6(2) = '07'.

WRITE :90(2) d07 HOTSPOT ON COLOR 3 INTENSIFIED ON,

92 sy-vline.

elseIF date1+6(2) = '08'.

WRITE :93(2) d08 HOTSPOT ON COLOR 3 INTENSIFIED ON,

95 sy-vline.

elseIF date1+6(2) = '09'.

WRITE :96(2) d09 HOTSPOT ON COLOR 3 INTENSIFIED ON,

98 sy-vline.

elseIF date1+6(2) = '10'.

WRITE :99(2) d10 HOTSPOT ON COLOR 3 INTENSIFIED ON,

101 sy-vline.

elseIF date1+6(2) = '11'.

WRITE :102(2) d11 HOTSPOT ON COLOR 3 INTENSIFIED ON,

104 sy-vline.

elseIF date1+6(2) = '12'.

WRITE :105(2) d12 HOTSPOT ON COLOR 3 INTENSIFIED ON,

107 sy-vline.

elseIF date1+6(2) = '13'.

WRITE :108(2) d13 HOTSPOT ON COLOR 3 INTENSIFIED ON,

110 sy-vline.

elseIF date1+6(2) = '14'.

WRITE :111(2) d14 HOTSPOT ON COLOR 3 INTENSIFIED ON,

113 sy-vline.

elseIF date1+6(2) = '15'.

WRITE :114(2) d15 HOTSPOT ON COLOR 3 INTENSIFIED ON,

116 sy-vline.

elseIF date1+6(2) = '16'.

WRITE :117(2) d16 HOTSPOT ON COLOR 3 INTENSIFIED ON,

119 sy-vline.

elseIF date1+6(2) = '17'.

WRITE :120(2) d17 HOTSPOT ON COLOR 3 INTENSIFIED ON,

122 sy-vline.

elseIF date1+6(2) = '18'.

WRITE :123(2) d18 HOTSPOT ON COLOR 3 INTENSIFIED ON,

125 sy-vline.

elseIF date1+6(2) = '19'.

WRITE :126(2) d19 HOTSPOT ON COLOR 3 INTENSIFIED ON,

128 sy-vline.

elseIF date1+6(2) = '20'.

WRITE :129(2) d20 HOTSPOT ON COLOR 3 INTENSIFIED ON,

131 sy-vline.

elseIF date1+6(2) = '21'.

WRITE :132(2) d21 HOTSPOT ON COLOR 3 INTENSIFIED ON,

134 sy-vline.

elseIF date1+6(2) = '22'.

WRITE :135(2) d22 HOTSPOT ON COLOR 3 INTENSIFIED ON,

137 sy-vline.

elseIF date1+6(2) = '23'.

WRITE :138(2) d23 HOTSPOT ON COLOR 3 INTENSIFIED ON,

140 sy-vline.

elseIF date1+6(2) = '24'.

WRITE :141(2) d24 HOTSPOT ON COLOR 3 INTENSIFIED ON,

143 sy-vline.

elseIF date1+6(2) = '25'.

WRITE :144(2) d25 HOTSPOT ON COLOR 3 INTENSIFIED ON,

146 sy-vline.

elseIF date1+6(2) = '26'.

WRITE :147(2) d26 HOTSPOT ON COLOR 3 INTENSIFIED ON,

149 sy-vline.

elseIF date1+6(2) = '27'.

WRITE :150(2) d27 HOTSPOT ON COLOR 3 INTENSIFIED ON,

152 sy-vline.

elseIF date1+6(2) = '28'.

WRITE :153(2) d28 HOTSPOT ON COLOR 3 INTENSIFIED ON,

155 sy-vline.

elseIF date1+6(2) = '29'.

WRITE :156(2) d29 HOTSPOT ON COLOR 3 INTENSIFIED ON,

158 sy-vline.

elseIF date1+6(2) = '30'.

WRITE :159(2) d30 HOTSPOT ON COLOR 3 INTENSIFIED ON,

161 sy-vline.

elseIF date1+6(2) = '31'.

WRITE :162(2) d31 HOTSPOT ON COLOR 3 INTENSIFIED ON,

164 sy-vline.

endif.

moreover i am displaying from 1 to 31 days in heading. if there is data in 3rd day of the month a 'X' will be displayed there.

2 REPLIES 2

Former Member
0 Kudos

Hi

You should see that the database time should be always less,

Let the ABAP processing time is little more

so first fetch all the required data for all dates from the database table into an internal table

then loop that Internal table.

and with in that ITAB loop do whatever calculations and modifications you wants to do and display as per your requirement

Regards

Anji

0 Kudos

Anji reddy is true.

well to reduce the code , you can create a function module though.

Cheers