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: 

Regarding Converting Classical Report into ALV Grid Format

Former Member
0 Kudos

Hi,

I have one <b>classical report</b> in place.

Now i need to make that into <b>ALV Grid Report</b>.

The <b>Classical Report</b> Format is as below:

First at the start of the report i will have <b>REPORT HEADER</b> with all the information about that Report & organization.

Then after <b>2</b> lines GAP.

Another <b>Header</b> comes as:

<b>ID:

Person:

Title:

Year:2001</b>

Then the actual data comes with header in vertical way as:

<b>SALARY:

NO OF HRS:

ACWP HRS:

ACWP $ :</b>

agianst them Horizontal heading will be as:

<b>01/2006 02/2006 03/2006 etc.</b>

under the above we will have values agianst above vertical rows.

After diaplaying above after <b>2</b> lines gap.

same thing with diffrent ID & person & Year.

we have to display data.

<b>

ID:

Person:

Title:

Year:2001</b>

Then the actual data comes with header in vertical way as:

<b>SALARY:

NO OF HRS:

ACWP HRS:

ACWP $ :</b>

agianst them Horizontal heading will be as:

<b>01/2006 02/2006 03/2006 etc.</b>

under the above we will have values agianst above vertical rows.

Like wise upto no of resources & Years i have to diaply data.

This is already in place in <b>Classical Report</b> format.

Now i need to convert the same into <b>ALV GRID</b> Format.

Can i display the same in <b>ALV Grid Format</b>.

As it is very complex process. The data is coming from diffrent <b>internal tables</b>. Also every time <b>Header</b> related data will change.

Is it good to go for <b>ALV grid format</b>.

Your advices will be appreciated.

Thanks in advance.

Thanks & Regards,

Prasad.

6 REPLIES 6

Former Member
0 Kudos

Prasad,

I don't think you can get the exact format, but it looks like the classical report is using the control-break statements.

1. Multiple headings is not possible in ALV.

2. You should get the data that you want to display into one single internal table for ALV.

After that with the use of groups / sort / totals you can get a closer look and feel and functionality.

On the face of it its not going to be easy, you might want to try the BLOCK LIST ALV.

Regards,

Ravi

Note : Please mark the helpful answers

Message was edited by: Ravikumar Allampallam

0 Kudos

Hi,

Another thing over here is we need to download entire report into local files[Entire].

In Blocked is it possible to download entire report into single file at one hit.

Yes We are using lot's of Control break statement to achive logic. It's very complex one.

If you want code for Main part of diaply of report i can post.

Thanks,

Prasad.

0 Kudos

Hi,

Can anybody give me sujjestions for the above post!

Thanks,

Prasad.

0 Kudos

hi prasad,

yes we can

goto SYSTEM->LIST->SAVE-> LOCAL FILE.

HOPE THIS HELPS,

PRIYA.

0 Kudos

Hi,

Following is the my code written in Classical report.

<b>CODE:</b>

[code]

<b> LOOP AT i_final_display INTO wa_final_display.

AT NEW kostl.

l_flag = c_x.

ENDAT.

IF l_flag = c_x.

CLEAR l_flag.

MOVE wa_final_display-kostl TO l_kostl.

CLEAR wa_csks_cskt.

READ TABLE i_csks_cskt INTO wa_csks_cskt WITH KEY

kostl = wa_final_display-kostl

BINARY SEARCH.

WRITE: text-017,

13 wa_final_display-kostl,

/ text-018,

13 wa_csks_cskt-verak,

/ text-019,

13 wa_csks_cskt-ktext.

SKIP 1.

DELETE i_output_temp WHERE kostl NE l_kostl.

CLEAR wa_output_temp.

LOOP AT i_output_temp INTO wa_output_temp.

AT NEW gjahr1.

l_flag = c_x.

ENDAT.

IF l_flag = c_x.

CLEAR l_flag.

WRITE: / text-020,

13 wa_output_temp-gjahr1.

SKIP 1.

WRITE: 18 c_01, c_slash, wa_output_temp-gjahr1,

36 c_02, c_slash, wa_output_temp-gjahr1,

53 c_03, c_slash, wa_output_temp-gjahr1,

70 c_04, c_slash, wa_output_temp-gjahr1,

87 c_05, c_slash, wa_output_temp-gjahr1,

104 c_06, c_slash, wa_output_temp-gjahr1,

121 c_07, c_slash, wa_output_temp-gjahr1,

138 c_08, c_slash, wa_output_temp-gjahr1,

155 c_09, c_slash, wa_output_temp-gjahr1,

172 c_10, c_slash, wa_output_temp-gjahr1,

189 c_11, c_slash, wa_output_temp-gjahr1,

206 c_12, c_slash, wa_output_temp-gjahr1.

IF wa_output_temp-gjahr1 = c_2005.

WRITE: 223 c_13, c_slash, wa_output_temp-gjahr1.

ENDIF.

WRITE: sy-uline(240).

  • Sal Hr and Sal $.

CLEAR wa_output_temp1.

READ TABLE i_output_temp INTO wa_output_temp1

WITH KEY kostl = wa_output_temp-kostl

gjahr1 = wa_output_temp-gjahr1

row_indicator = c_salhr.

IF sy-subrc EQ 0.

ENDIF.

MOVE wa_output_temp1-meg001 TO l_meg001.

MOVE wa_output_temp1-meg002 TO l_meg002.

MOVE wa_output_temp1-meg003 TO l_meg003.

MOVE wa_output_temp1-meg004 TO l_meg004.

MOVE wa_output_temp1-meg005 TO l_meg005.

MOVE wa_output_temp1-meg006 TO l_meg006.

MOVE wa_output_temp1-meg007 TO l_meg007.

MOVE wa_output_temp1-meg008 TO l_meg008.

MOVE wa_output_temp1-meg009 TO l_meg009.

MOVE wa_output_temp1-meg010 TO l_meg010.

MOVE wa_output_temp1-meg011 TO l_meg011.

MOVE wa_output_temp1-meg012 TO l_meg012.

MOVE wa_output_temp1-meg013 TO l_meg013.

WRITE:/ text-021,

11 l_meg001(16),

29 l_meg002(16),

46 l_meg003(16),

63 l_meg004(16),

80 l_meg005(16),

97 l_meg006(16),

114 l_meg007(16),

131 l_meg008(16),

148 l_meg009(16),

165 l_meg010(16),

182 l_meg011(16),

199 l_meg012(16).

IF wa_output_temp-gjahr1 = c_2005.

WRITE: 216 l_meg013(16).

ENDIF.

CLEAR: l_meg001,

l_meg002,

l_meg003,

l_meg004,

l_meg005,

l_meg006,

l_meg007,

l_meg008,

l_meg009,

l_meg010,

l_meg011,

l_meg012,

l_meg013.

CLEAR wa_output_temp1.

READ TABLE i_output_temp INTO wa_output_temp1

WITH KEY kostl = wa_output_temp-kostl

gjahr1 = wa_output_temp-gjahr1

row_indicator = c_sal$.

IF sy-subrc EQ 0.

ENDIF.

MOVE wa_output_temp1-wtg001 TO l_wtg001.

MOVE wa_output_temp1-wtg002 TO l_wtg002.

MOVE wa_output_temp1-wtg003 TO l_wtg003.

MOVE wa_output_temp1-wtg004 TO l_wtg004.

MOVE wa_output_temp1-wtg005 TO l_wtg005.

MOVE wa_output_temp1-wtg006 TO l_wtg006.

MOVE wa_output_temp1-wtg007 TO l_wtg007.

MOVE wa_output_temp1-wtg008 TO l_wtg008.

MOVE wa_output_temp1-wtg009 TO l_wtg009.

MOVE wa_output_temp1-wtg010 TO l_wtg010.

MOVE wa_output_temp1-wtg011 TO l_wtg011.

MOVE wa_output_temp1-wtg012 TO l_wtg012.

MOVE wa_output_temp1-wtg013 TO l_wtg013.

WRITE: / text-022,

10 l_wtg001(17),

28 l_wtg002(17),

45 l_wtg003(17),

62 l_wtg004(17),

79 l_wtg005(17),

96 l_wtg006(17),

113 l_wtg007(17),

130 l_wtg008(17),

147 l_wtg009(17),

164 l_wtg010(17),

181 l_wtg011(17),

198 l_wtg012(17).

IF wa_output_temp-gjahr1 = c_2005.

WRITE: 215 l_wtg013(17).

ENDIF.

SKIP 1.

CLEAR: l_wtg001,

l_wtg002,

l_wtg003,

l_wtg004,

l_wtg005,

l_wtg006,

l_wtg007,

l_wtg008,

l_wtg009,

l_wtg010,

l_wtg011,

l_wtg012,

l_wtg013.

  • BCWP Hr and BCWP $.

CLEAR wa_output_temp1.

READ TABLE i_output_temp INTO wa_output_temp1

WITH KEY kostl = wa_output_temp-kostl

gjahr1 = wa_output_temp-gjahr1

row_indicator = c_bcwphr.

IF sy-subrc EQ 0.

ENDIF.

MOVE wa_output_temp1-meg001 TO l_meg001.

MOVE wa_output_temp1-meg002 TO l_meg002.

MOVE wa_output_temp1-meg003 TO l_meg003.

MOVE wa_output_temp1-meg004 TO l_meg004.

MOVE wa_output_temp1-meg005 TO l_meg005.

MOVE wa_output_temp1-meg006 TO l_meg006.

MOVE wa_output_temp1-meg007 TO l_meg007.

MOVE wa_output_temp1-meg008 TO l_meg008.

MOVE wa_output_temp1-meg009 TO l_meg009.

MOVE wa_output_temp1-meg010 TO l_meg010.

MOVE wa_output_temp1-meg011 TO l_meg011.

MOVE wa_output_temp1-meg012 TO l_meg012.

MOVE wa_output_temp1-meg013 TO l_meg013.

WRITE: / text-024,

11 l_meg001(16),

29 l_meg002(16),

46 l_meg003(16),

63 l_meg004(16),

80 l_meg005(16),

97 l_meg006(16),

114 l_meg007(16),

131 l_meg008(16),

148 l_meg009(16),

165 l_meg010(16),

182 l_meg011(16),

199 l_meg012(16).

IF wa_output_temp-gjahr1 = c_2005.

WRITE: 216 l_meg013(16).

ENDIF.

CLEAR: l_meg001,

l_meg002,

l_meg003,

l_meg004,

l_meg005,

l_meg006,

l_meg007,

l_meg008,

l_meg009,

l_meg010,

l_meg011,

l_meg012,

l_meg013.

CLEAR wa_output_temp1.

READ TABLE i_output_temp INTO wa_output_temp1

WITH KEY kostl = wa_output_temp-kostl

gjahr1 = wa_output_temp-gjahr1

row_indicator = c_bcwp$.

IF sy-subrc EQ 0.

ENDIF.

MOVE wa_output_temp1-wtg001 TO l_wtg001.

MOVE wa_output_temp1-wtg002 TO l_wtg002.

MOVE wa_output_temp1-wtg003 TO l_wtg003.

MOVE wa_output_temp1-wtg004 TO l_wtg004.

MOVE wa_output_temp1-wtg005 TO l_wtg005.

MOVE wa_output_temp1-wtg006 TO l_wtg006.

MOVE wa_output_temp1-wtg007 TO l_wtg007.

MOVE wa_output_temp1-wtg008 TO l_wtg008.

MOVE wa_output_temp1-wtg009 TO l_wtg009.

MOVE wa_output_temp1-wtg010 TO l_wtg010.

MOVE wa_output_temp1-wtg011 TO l_wtg011.

MOVE wa_output_temp1-wtg012 TO l_wtg012.

MOVE wa_output_temp1-wtg013 TO l_wtg013.

WRITE: / text-025,

10 l_wtg001(17),

28 l_wtg002(17),

45 l_wtg003(17),

62 l_wtg004(17),

79 l_wtg005(17),

96 l_wtg006(17),

113 l_wtg007(17),

130 l_wtg008(17),

147 l_wtg009(17),

164 l_wtg010(17),

181 l_wtg011(17),

198 l_wtg012(17).

IF wa_output_temp-gjahr1 = c_2005.

WRITE: 215 l_wtg013(17).

ENDIF.

CLEAR: l_wtg001,

l_wtg002,

l_wtg003,

l_wtg004,

l_wtg005,

l_wtg006,

l_wtg007,

l_wtg008,

l_wtg009,

l_wtg010,

l_wtg011,

l_wtg012,

l_wtg013.

SKIP 1.

  • ACWP Hr and ACWP $.

CLEAR wa_output_temp1.

READ TABLE i_output_temp INTO wa_output_temp1

WITH KEY kostl = wa_output_temp-kostl

gjahr1 = wa_output_temp-gjahr1

row_indicator = c_acwphr.

IF sy-subrc EQ 0.

ENDIF.

MOVE wa_output_temp1-meg001 TO l_meg001.

MOVE wa_output_temp1-meg002 TO l_meg002.

MOVE wa_output_temp1-meg003 TO l_meg003.

MOVE wa_output_temp1-meg004 TO l_meg004.

MOVE wa_output_temp1-meg005 TO l_meg005.

MOVE wa_output_temp1-meg006 TO l_meg006.

MOVE wa_output_temp1-meg007 TO l_meg007.

MOVE wa_output_temp1-meg008 TO l_meg008.

MOVE wa_output_temp1-meg009 TO l_meg009.

MOVE wa_output_temp1-meg010 TO l_meg010.

MOVE wa_output_temp1-meg011 TO l_meg011.

MOVE wa_output_temp1-meg012 TO l_meg012.

MOVE wa_output_temp1-meg013 TO l_meg013.

WRITE: / text-026,

11 l_meg001(16),

29 l_meg002(16),

46 l_meg003(16),

63 l_meg004(16),

80 l_meg005(16),

97 l_meg006(16),

114 l_meg007(16),

131 l_meg008(16),

148 l_meg009(16),

165 l_meg010(16),

182 l_meg011(16),

199 l_meg012(16).

IF wa_output_temp-gjahr1 = c_2005.

WRITE: 216 l_meg013(16).

ENDIF.

CLEAR: l_meg001,

l_meg002,

l_meg003,

l_meg004,

l_meg005,

l_meg006,

l_meg007,

l_meg008,

l_meg009,

l_meg010,

l_meg011,

l_meg012,

l_meg013.

CLEAR wa_output_temp1.

READ TABLE i_output_temp INTO wa_output_temp1

WITH KEY kostl = wa_output_temp-kostl

gjahr1 = wa_output_temp-gjahr1

row_indicator = c_acwp$.

IF sy-subrc EQ 0.

ENDIF.

MOVE wa_output_temp1-wtg001 TO l_wtg001.

MOVE wa_output_temp1-wtg002 TO l_wtg002.

MOVE wa_output_temp1-wtg003 TO l_wtg003.

MOVE wa_output_temp1-wtg004 TO l_wtg004.

MOVE wa_output_temp1-wtg005 TO l_wtg005.

MOVE wa_output_temp1-wtg006 TO l_wtg006.

MOVE wa_output_temp1-wtg007 TO l_wtg007.

MOVE wa_output_temp1-wtg008 TO l_wtg008.

MOVE wa_output_temp1-wtg009 TO l_wtg009.

MOVE wa_output_temp1-wtg010 TO l_wtg010.

MOVE wa_output_temp1-wtg011 TO l_wtg011.

MOVE wa_output_temp1-wtg012 TO l_wtg012.

MOVE wa_output_temp1-wtg013 TO l_wtg013.

WRITE: / text-027,

10 l_wtg001(17),

28 l_wtg002(17),

45 l_wtg003(17),

62 l_wtg004(17),

79 l_wtg005(17),

96 l_wtg006(17),

113 l_wtg007(17),

130 l_wtg008(17),

147 l_wtg009(17),

164 l_wtg010(17),

181 l_wtg011(17),

198 l_wtg012(17).

IF wa_output_temp-gjahr1 = c_2005.

WRITE: 215 l_wtg013(17).

ENDIF.

SKIP 1.

CLEAR: l_wtg001,

l_wtg002,

l_wtg003,

l_wtg004,

l_wtg005,

l_wtg006,

l_wtg007,

l_wtg008,

l_wtg009,

l_wtg010,

l_wtg011,

l_wtg012,

l_wtg013.

  • CPI and SPI Values.

CLEAR wa_output_temp1.

READ TABLE i_output_temp INTO wa_output_temp1

WITH KEY kostl = wa_output_temp-kostl

gjahr1 = wa_output_temp-gjahr1

row_indicator = c_cpi.

IF sy-subrc EQ 0.

ENDIF.

MOVE wa_output_temp1-meg001 TO l_imeg001.

MOVE wa_output_temp1-meg002 TO l_imeg002.

MOVE wa_output_temp1-meg003 TO l_imeg003.

MOVE wa_output_temp1-meg004 TO l_imeg004.

MOVE wa_output_temp1-meg005 TO l_imeg005.

MOVE wa_output_temp1-meg006 TO l_imeg006.

MOVE wa_output_temp1-meg007 TO l_imeg007.

MOVE wa_output_temp1-meg008 TO l_imeg008.

MOVE wa_output_temp1-meg009 TO l_imeg009.

MOVE wa_output_temp1-meg010 TO l_imeg010.

MOVE wa_output_temp1-meg011 TO l_imeg011.

MOVE wa_output_temp1-meg012 TO l_imeg012.

MOVE wa_output_temp1-meg013 TO l_imeg013.

WRITE: / text-028.

IF wa_output_temp1-meg001 IS INITIAL.

WRITE: 26 c_hyphen.

ELSE.

WRITE: 10 l_imeg001+4(17).

ENDIF.

IF wa_output_temp1-meg002 IS INITIAL.

WRITE: 44 c_hyphen.

ELSE.

WRITE: 28 l_imeg002+4(17).

ENDIF.

IF wa_output_temp1-meg003 IS INITIAL.

WRITE: 61 c_hyphen.

ELSE.

WRITE: 45 l_imeg003+4(17).

ENDIF.

IF wa_output_temp1-meg004 IS INITIAL.

WRITE: 78 c_hyphen.

ELSE.

WRITE: 62 l_imeg004+4(17).

ENDIF.

IF wa_output_temp1-meg005 IS INITIAL.

WRITE: 95 c_hyphen.

ELSE.

WRITE: 79 l_imeg005+4(17).

ENDIF.

IF wa_output_temp1-meg006 IS INITIAL.

WRITE: 112 c_hyphen.

ELSE.

WRITE: 96 l_imeg006+4(17).

ENDIF.

IF wa_output_temp1-meg007 IS INITIAL.

WRITE: 129 c_hyphen.

ELSE.

WRITE: 113 l_imeg007+4(17).

ENDIF.

IF wa_output_temp1-meg008 IS INITIAL.

WRITE: 146 c_hyphen.

ELSE.

WRITE: 130 l_imeg008+4(17).

ENDIF.

IF wa_output_temp1-meg009 IS INITIAL.

WRITE: 163 c_hyphen.

ELSE.

WRITE: 147 l_imeg009+4(17).

ENDIF.

IF wa_output_temp1-meg010 IS INITIAL.

WRITE: 180 c_hyphen.

ELSE.

WRITE: 164 l_imeg010+4(17).

ENDIF.

IF wa_output_temp1-meg011 IS INITIAL.

WRITE: 197 c_hyphen.

ELSE.

WRITE: 181 l_imeg011+4(17).

ENDIF.

IF wa_output_temp1-meg012 IS INITIAL.

WRITE: 214 c_hyphen.

ELSE.

WRITE: 198 l_imeg012+4(17).

ENDIF.

IF wa_output_temp-gjahr1 = c_2005.

IF wa_output_temp1-meg013 IS INITIAL.

WRITE: 231 c_hyphen.

ELSE.

WRITE: 215 l_imeg013+4(17).

ENDIF.

ENDIF.

CLEAR: l_imeg001,

l_imeg002,

l_imeg003,

l_imeg004,

l_imeg005,

l_imeg006,

l_imeg007,

l_imeg008,

l_imeg009,

l_imeg010,

l_imeg011,

l_imeg012,

l_imeg013.

CLEAR wa_output_temp1.

READ TABLE i_output_temp INTO wa_output_temp1

WITH KEY kostl = wa_output_temp-kostl

gjahr1 = wa_output_temp-gjahr1

row_indicator = c_spi.

IF sy-subrc EQ 0.

ENDIF.

MOVE wa_output_temp1-meg001 TO l_imeg001.

MOVE wa_output_temp1-meg002 TO l_imeg002.

MOVE wa_output_temp1-meg003 TO l_imeg003.

MOVE wa_output_temp1-meg004 TO l_imeg004.

MOVE wa_output_temp1-meg005 TO l_imeg005.

MOVE wa_output_temp1-meg006 TO l_imeg006.

MOVE wa_output_temp1-meg007 TO l_imeg007.

MOVE wa_output_temp1-meg008 TO l_imeg008.

MOVE wa_output_temp1-meg009 TO l_imeg009.

MOVE wa_output_temp1-meg010 TO l_imeg010.

MOVE wa_output_temp1-meg011 TO l_imeg011.

MOVE wa_output_temp1-meg012 TO l_imeg012.

MOVE wa_output_temp1-meg013 TO l_imeg013.

WRITE: / text-029.

IF wa_output_temp1-meg001 IS INITIAL.

WRITE: 26 c_hyphen.

ELSE.

WRITE: 10 l_imeg001+4(17).

ENDIF.

IF wa_output_temp1-meg002 IS INITIAL.

WRITE: 44 c_hyphen.

ELSE.

WRITE: 28 l_imeg002+4(17).

ENDIF.

IF wa_output_temp1-meg003 IS INITIAL.

WRITE: 61 c_hyphen.

ELSE.

WRITE: 45 l_imeg003+4(17).

ENDIF.

IF wa_output_temp1-meg004 IS INITIAL.

WRITE: 78 c_hyphen.

ELSE.

WRITE: 62 l_imeg004+4(17).

ENDIF.

IF wa_output_temp1-meg005 IS INITIAL.

WRITE: 95 c_hyphen.

ELSE.

WRITE: 79 l_imeg005+4(17).

ENDIF.

IF wa_output_temp1-meg006 IS INITIAL.

WRITE: 112 c_hyphen.

ELSE.

WRITE: 96 l_imeg006+4(17).

ENDIF.

IF wa_output_temp1-meg007 IS INITIAL.

WRITE: 129 c_hyphen.

ELSE.

WRITE: 113 l_imeg007+4(17).

ENDIF.

IF wa_output_temp1-meg008 IS INITIAL.

WRITE: 146 c_hyphen.

ELSE.

WRITE: 130 l_imeg008+4(17).

ENDIF.

IF wa_output_temp1-meg009 IS INITIAL.

WRITE: 163 c_hyphen.

ELSE.

WRITE: 147 l_imeg009+4(17).

ENDIF.

IF wa_output_temp1-meg010 IS INITIAL.

WRITE: 180 c_hyphen.

ELSE.

WRITE: 164 l_imeg010+4(17).

ENDIF.

IF wa_output_temp1-meg011 IS INITIAL.

WRITE: 197 c_hyphen.

ELSE.

WRITE: 181 l_imeg011+4(17).

ENDIF.

IF wa_output_temp1-meg012 IS INITIAL.

WRITE: 214 c_hyphen.

ELSE.

WRITE: 198 l_imeg012+4(17).

ENDIF.

IF wa_output_temp-gjahr1 = c_2005.

IF wa_output_temp1-meg013 IS INITIAL.

WRITE: 231 c_hyphen.

ELSE.

WRITE: 215 l_imeg013+4(17).

ENDIF.

ENDIF.

SKIP 1.

CLEAR: l_imeg001,

l_imeg002,

l_imeg003,

l_imeg004,

l_imeg005,

l_imeg006,

l_imeg007,

l_imeg008,

l_imeg009,

l_imeg010,

l_imeg011,

l_imeg012,

l_imeg013.

ENDIF.

ENDLOOP.

ENDIF.

REFRESH i_output_temp.

CLEAR wa_final_display.

LOOP AT i_final_display INTO wa_final_display.

MOVE-CORRESPONDING wa_final_display TO wa_output_temp.

APPEND wa_output_temp TO i_output_temp.

CLEAR wa_output_temp.

CLEAR wa_final_display.

ENDLOOP.

ENDLOOP.</b>

[/code]

Can anybody tell me wether i can make above code inti <b>ALV GRID</b> Diaplay.

Any help in this regard will be appreciated.

Thanks in advance.

Thanks & Regards,

Prasad.

0 Kudos

HI Prasad,

it can be done....>

since you are using control breaks

we can replace the control breaks with the help of sort table. and pass it to ALV FM . But it is really not possible to tell what can be done from your code. if you can tell what you are doing , may be i can tell .

But using ALV it is easier to solve , it reduces lot of code.

Regards

vijay