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: 

Change the field order in ALV when using LVC_FIELDCATALOG_MERGE

Former Member
0 Kudos

Hi,

is it possible to change the order of fields displayed in an alv grid if using LVC_FIELDCATALOG_MERGE FM instead of building the fieldcat field by field ?

Thanks,

Tom.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

DATA : WA_FIELDCAT LIKE LINE OF FIELDCAT.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'STR_OUTPUT'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = 'ZSGCS_R_WEEK_TRAK_DAYS_TO_INVO'

I_BYPASSING_BUFFER = 'X'

I_BUFFER_ACTIVE = 'X'

CHANGING

CT_FIELDCAT = FIELDCAT[].

LOOP AT FIELDCAT INTO WA_FIELDCAT.

CASE WA_FIELDCAT-FIELDNAME.

WHEN 'SEQNR'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-002.

WA_FIELDCAT-COL_POS = '1'.

WHEN 'KUNUM'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-006.

WA_FIELDCAT-COL_POS = '2'.

WHEN 'AUFNR'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-007.

WA_FIELDCAT-COL_POS = '3'.

WHEN 'KTEXT'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-008.

WHEN 'VKORG'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-009.

WHEN 'VTWEG'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-010.

WHEN 'SPART'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-011.

WHEN 'VKBUR'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-012.

WHEN 'VKGRP'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-013.

WHEN 'IDAT2'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-014.

WHEN 'DLATT'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-003.

WHEN 'VBELN'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-027.

WHEN 'DINVO'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-004.

WHEN 'DTOIN'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-005.

ENDCASE.

MODIFY FIELDCAT FROM WA_FIELDCAT INDEX SY-TABIX.

ENDLOOP.

Regards,

Rajasekhar Reddy.

7 REPLIES 7

matt
Active Contributor
0 Kudos

<snip>

matt

removed because it was nonsense.

Former Member
0 Kudos

hi,

You can change the order of display when you create a field Catalog field by field.

Here in this FM you have a merged Field Catalog.

You can change the Order of display.

Reagrds

Sumit Agarwal

Former Member
0 Kudos

hi tom

modify the fieldcatalog internal table ( column position and row position fields col_pos & row_pos ) as your need

regards

deva

former_member188685
Active Contributor
0 Kudos

First get the Field catalog from the Function

And now loop the fieldcatalog and change the positions using coding.

col_pos

it is difficult to code if you have more columns.

But work with layouts of ALV. here you can arrange the columns which ever you way you want and save it as Layout Variant.

and use that Layout Variant for Future

Former Member
0 Kudos

Hi,

DATA : WA_FIELDCAT LIKE LINE OF FIELDCAT.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'STR_OUTPUT'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = 'ZSGCS_R_WEEK_TRAK_DAYS_TO_INVO'

I_BYPASSING_BUFFER = 'X'

I_BUFFER_ACTIVE = 'X'

CHANGING

CT_FIELDCAT = FIELDCAT[].

LOOP AT FIELDCAT INTO WA_FIELDCAT.

CASE WA_FIELDCAT-FIELDNAME.

WHEN 'SEQNR'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-002.

WA_FIELDCAT-COL_POS = '1'.

WHEN 'KUNUM'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-006.

WA_FIELDCAT-COL_POS = '2'.

WHEN 'AUFNR'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-007.

WA_FIELDCAT-COL_POS = '3'.

WHEN 'KTEXT'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-008.

WHEN 'VKORG'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-009.

WHEN 'VTWEG'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-010.

WHEN 'SPART'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-011.

WHEN 'VKBUR'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-012.

WHEN 'VKGRP'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-013.

WHEN 'IDAT2'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-014.

WHEN 'DLATT'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-003.

WHEN 'VBELN'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-027.

WHEN 'DINVO'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-004.

WHEN 'DTOIN'.

WA_FIELDCAT-SELTEXT_L = WA_FIELDCAT-SELTEXT_M =

WA_FIELDCAT-SELTEXT_S = WA_FIELDCAT-REPTEXT_DDIC = TEXT-005.

ENDCASE.

MODIFY FIELDCAT FROM WA_FIELDCAT INDEX SY-TABIX.

ENDLOOP.

Regards,

Rajasekhar Reddy.

Former Member
0 Kudos

Of course.

It's (the field catalog) just a standard internal table which reflects the structure or table you want to display in the grid.

However you'll have to re-order your data table as well .

(Same is true in the OO model as well).

The easiest way however is just to change and save the layout as Vijay above suggested. Here you can omit columns, re-arrange, sum etc etc. (Also for the OO model)

just save the layouts you want.

cheers

jimbo

ankurgodre
Active Contributor
0 Kudos

Hi,

You can make your output ALV list fields to appear in any order which you like!! On the ALV list output screen, go to Settings on the menu bar & select Change Layout under the Layout option in Settings...You can re-arrange the order of appearence if the fileds using this & you can save this layout...In your code you can use the FM 'REUSE_ALV_VARIANT_F4'..This will give you an option on the selection-screen itself to choose the layout which you want to display(with the order of field appearcnce of your choice).

This is the standard way & it works gr8!!

(ALSO: This method does not require to change the field catalogu as per the order of appearence of fields in the output .)

Regards

AnkurGodre