Application Development and Automation 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: 
Read only

ALV Header with grouping problem

Former Member
0 Likes
391

Hi , I develop a report by using ALV List sort by plant. When the plant changing, it will display on header (TOP_OF_PAGE) .e.g.

Plant 1000

Item 1

item 2

item 3

Plant 2000

item 1

item 2

item 3.

I menage to let my report display as above, But when user Sort the report by 1 of the field in the item, the top of page will not function and both plant data will merge together and only 1 top of page display. Am I missing something on this?

FORM display_alv .

CLEAR: gt_fieldcat,

gwa_layout,

gt_sort,

gt_events.

gv_repid = sy-repid.

PERFORM build_fieldcat USING:

  • col_pos fieldname ref_fieldname tabname ref_tabname hotspot seltext_l

1 'LGORT' 'LGORT' 'GT_FINAL' 'IKPF' '' '',

2 'LGOBE' 'LGOBE' 'GT_FINAL' 'T001l' '' '',

3 'MATKL' 'MATKL' 'GT_FINAL' 'MARA' '' '',

4 'WGBEZ' 'WGBEZ' 'GT_FINAL' 'T023T' '' '',

5 'ITMNO' 'ZEILE' 'GT_FINAL' 'ISEG' '' '',

6 'MAKTX' 'MAKTX' 'GT_FINAL' 'MAKT' '' '',

7 'MATNR' 'MATNR' 'GT_FINAL' 'ISEG' '' '',

8 'BTEXT' 'BTEXT' 'GT_FINAL' 'T064B' '' '',

9 'IBLNR' 'IBLNR' 'GT_FINAL' 'ISEG' '' '',

10 'ZEILI' 'ZEILE' 'GT_FINAL' 'ISEG' '' 'Phys. Line No.',

11 'ERFME' 'ERFME' 'GT_FINAL' 'ISEG' '' '',

12 'PCCNT' 'ERFMG' 'GT_FINAL' 'ISEG' '' '',

13 'ERFMG' 'ERFMG' 'GT_FINAL' 'ISEG' '' ''

.

*//Build ALV layout

CLEAR gwa_layout.

gwa_layout-colwidth_optimize = 'X'.

gwa_layout-zebra = 'X'.

PERFORM build_events.

PERFORM build_sort.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = gv_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

is_layout = gwa_layout

it_fieldcat = gt_fieldcat[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

it_sort = gt_sort

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

i_save = 'A'

  • IS_VARIANT =

it_events = gt_events

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = gt_final

EXCEPTIONS

program_error = 1

OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " DISPLAY_ALV

FORM build_sort.

DATA: lwa_sort LIKE LINE OF gt_sort.

CLEAR lwa_sort.

lwa_sort-spos = 1.

lwa_sort-fieldname = 'WERKS'.

lwa_sort-tabname = 'GT_FINAL'.

lwa_sort-up = 'X'.

lwa_sort-group = '*'.

APPEND lwa_sort TO gt_sort.

CLEAR lwa_sort.

ENDFORM. "BUILD_SORT

FORM build_events.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

IMPORTING

et_events = gt_events

EXCEPTIONS

list_type_wrong = 1

OTHERS = 2

.

IF sy-subrc = 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

*

READ TABLE gt_events INTO gwa_event WITH KEY name = 'TOP_OF_PAGE'.

gwa_event-form = 'TOP_OF_PAGE'.

MODIFY gt_events FROM gwa_event INDEX sy-tabix.

CLEAR gwa_event.

ENDFORM. "SET_EVENTS

FORM TOP_OF_PAGE.

PERFORM header_simple IN PROGRAM saplkkbl USING lwa_final.

NEW-LINE NO-SCROLLING.

WRITE:/ 'Plant:'(d01),

25 lwa_final-werks,

ENDFORM.

I try to google it but not manage to find it. Hope can get help from here. thank you.

Hi , I develop a report by using ALV List sort by plant. When the plant changing, it will display on header (TOP_OF_PAGE) .e.g.

Plant 1000

Item 1

item 2

item 3

Plant 2000

item 1

item 2

item 3.

I menage to let my report display as above, But when user Sort the report by 1 of the field in the item, the top of page will not function and both plant data will merge together and only 1 top of page display. Am I missing something on this?

FORM display_alv .

CLEAR: gt_fieldcat,

gwa_layout,

gt_sort,

gt_events.

gv_repid = sy-repid.

PERFORM build_fieldcat USING:

  • col_pos fieldname ref_fieldname tabname ref_tabname hotspot seltext_l

1 'LGORT' 'LGORT' 'GT_FINAL' 'IKPF' '' '',

2 'LGOBE' 'LGOBE' 'GT_FINAL' 'T001l' '' '',

3 'MATKL' 'MATKL' 'GT_FINAL' 'MARA' '' '',

4 'WGBEZ' 'WGBEZ' 'GT_FINAL' 'T023T' '' '',

5 'ITMNO' 'ZEILE' 'GT_FINAL' 'ISEG' '' '',

6 'MAKTX' 'MAKTX' 'GT_FINAL' 'MAKT' '' '',

7 'MATNR' 'MATNR' 'GT_FINAL' 'ISEG' '' '',

8 'BTEXT' 'BTEXT' 'GT_FINAL' 'T064B' '' '',

9 'IBLNR' 'IBLNR' 'GT_FINAL' 'ISEG' '' '',

10 'ZEILI' 'ZEILE' 'GT_FINAL' 'ISEG' '' 'Phys. Line No.',

11 'ERFME' 'ERFME' 'GT_FINAL' 'ISEG' '' '',

12 'PCCNT' 'ERFMG' 'GT_FINAL' 'ISEG' '' '',

13 'ERFMG' 'ERFMG' 'GT_FINAL' 'ISEG' '' ''

.

*//Build ALV layout

CLEAR gwa_layout.

gwa_layout-colwidth_optimize = 'X'.

gwa_layout-zebra = 'X'.

PERFORM build_events.

PERFORM build_sort.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

i_callback_program = gv_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

is_layout = gwa_layout

it_fieldcat = gt_fieldcat[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

it_sort = gt_sort

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

i_save = 'A'

  • IS_VARIANT =

it_events = gt_events

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = gt_final

EXCEPTIONS

program_error = 1

OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDFORM. " DISPLAY_ALV

FORM build_sort.

DATA: lwa_sort LIKE LINE OF gt_sort.

CLEAR lwa_sort.

lwa_sort-spos = 1.

lwa_sort-fieldname = 'WERKS'.

lwa_sort-tabname = 'GT_FINAL'.

lwa_sort-up = 'X'.

lwa_sort-group = '*'.

APPEND lwa_sort TO gt_sort.

CLEAR lwa_sort.

ENDFORM. "BUILD_SORT

FORM build_events.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

IMPORTING

et_events = gt_events

EXCEPTIONS

list_type_wrong = 1

OTHERS = 2

.

IF sy-subrc = 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

*

READ TABLE gt_events INTO gwa_event WITH KEY name = 'TOP_OF_PAGE'.

gwa_event-form = 'TOP_OF_PAGE'.

MODIFY gt_events FROM gwa_event INDEX sy-tabix.

CLEAR gwa_event.

ENDFORM. "SET_EVENTS

FORM TOP_OF_PAGE.

PERFORM header_simple IN PROGRAM saplkkbl USING lwa_final.

NEW-LINE NO-SCROLLING.

WRITE:/ 'Plant:'(d01),

25 lwa_final-werks,

ENDFORM.

I try to google it but not manage to find it. Hope can get help from here. thank you.

1 REPLY 1
Read only

Former Member
0 Likes
354

Solved by myself by using event exit and repopulate the sort table by Plant