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

Changing Column Header in ALV Grid dynamically

Former Member
0 Likes
3,007

Hello,

Currently I have an ALV grid that uses the Header Field Label of my data element as its column header. I would like to change this dynamically to either the medium or long field label dynamically in my code. I assume its done somewhere in cl_salv_wd_column_header yet I have not been able to find it. Has someone done this before and could help me?

Any help would be appreciated.

Thanks,

Liam

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,566

Hi liam,

can u please look into the following link and check for SCRTEXT_L, SCRTEXT_M, SCRTEXT_S

http://beingkedar.googlepages.com/objectorientedalv

Thanks,

Kiran

2 REPLIES 2
Read only

Former Member
0 Likes
1,567

Hi liam,

can u please look into the following link and check for SCRTEXT_L, SCRTEXT_M, SCRTEXT_S

http://beingkedar.googlepages.com/objectorientedalv

Thanks,

Kiran

Read only

Former Member
0 Likes
1,566

Hi,

You can create header text dynamicaly before display the ALV control. it is not possible after display the alv control.i pasted one coding here, try it. reward if useful

&----


*& Report ZTEST001 *

*& *

&----


*& *

*& *

&----


REPORT ztest001.

TABLES: ekko,ekpo.

TYPE-POOLS: slis. " ALV Grid

DATA: wa_gt_fieldcat TYPE slis_t_fieldcat_alv,

it_fieldcat TYPE slis_t_fieldcat_alv, "#EC *

it_sort TYPE slis_t_sortinfo_alv,

wa_sort TYPE slis_sortinfo_alv,

wa_gs_layout TYPE slis_layout_alv,

wa_gt_events TYPE slis_t_event. " ALV.

*PO Header Details

TYPES: BEGIN OF ty_ekko,

ebeln TYPE ekko-ebeln,

ekgrp TYPE ekko-ekgrp,

lifnr TYPE ekko-lifnr,

name1 type lfa1-name1,

END OF ty_ekko.

*PO Item Details

TYPES: BEGIN OF ty_ekpo,

ebeln TYPE ekko-ebeln,

ebelp TYPE ekpo-ebelp,

werks TYPE ekpo-werks,

matnr TYPE ekpo-matnr,

txz01 TYPE ekpo-txz01,

menge TYPE ekpo-menge,

meins TYPE ekpo-meins,

brtwr TYPE ekpo-brtwr,

lmein TYPE ekpo-lmein,

bpumz TYPE ekpo-bpumz,

bpumn TYPE ekpo-bpumn,

END OF ty_ekpo.

*PO Scheduling Details

TYPES: BEGIN OF ty_eket,

ebeln TYPE ekpo-ebeln,

ebelp TYPE ekpo-ebelp,

eindt TYPE eket-eindt,

wemng TYPE eket-wemng,

END OF ty_eket.

*Vendor details

TYPES: BEGIN OF ty_lfa1,

lifnr TYPE lfa1-lifnr,

name1 TYPE lfa1-name1,

END OF ty_lfa1.

*Final Output details

TYPES:BEGIN OF ty_final,

ebeln TYPE ekko-ebeln,

ekgrp TYPE ekko-ekgrp,

lifnr TYPE ekko-lifnr,

ebelp TYPE ekpo-ebelp,

werks TYPE ekpo-werks,

matnr TYPE ekpo-matnr,

txz01 TYPE ekpo-txz01,

menge TYPE ekpo-menge,

meins TYPE ekpo-meins,

eindt TYPE eket-eindt,

name1 TYPE kna1-name1,

brtwr TYPE ekpo-brtwr,

lmein TYPE ekpo-lmein,

bpumz TYPE ekpo-bpumz,

bpumn TYPE ekpo-bpumn,

wemng TYPE eket-wemng,

inv(35),

date(35),

sup(35),

END OF ty_final.

*Internal tables and workareas

DATA: it_ekko TYPE TABLE OF ty_ekko,

wa_ekko TYPE ty_ekko.

DATA: it_ekpo TYPE TABLE OF ty_ekpo,

wa_ekpo TYPE ty_ekpo.

DATA: it_eket TYPE TABLE OF ty_eket,

wa_eket TYPE ty_eket.

DATA: it_lfa1 TYPE TABLE OF ty_lfa1,

wa_lfa1 TYPE ty_lfa1.

DATA: it_final TYPE TABLE OF ty_final,

wa_final TYPE ty_final.

*selection screen

SELECT-OPTIONS:s_ekgrp FOR ekko-ekgrp OBLIGATORY,

s_ebeln FOR ekpo-ebeln,

s_lifnr FOR ekko-lifnr,

s_dat FOR ekko-bedat NO-EXTENSION OBLIGATORY.

*Start of selection

START-OF-SELECTION.

PERFORM get_data1.

*Merage information into single table to display

LOOP AT it_ekpo INTO wa_ekpo.

READ TABLE it_ekko INTO wa_ekko WITH KEY ebeln = wa_ekpo-ebeln.

CHECK sy-subrc = 0.

MOVE-CORRESPONDING wa_ekpo TO wa_final.

wa_final-lifnr = wa_ekko-lifnr.

wa_final-name1 = wa_ekko-name1.

wa_final-ekgrp = wa_ekko-ekgrp.

READ TABLE it_eket INTO wa_eket WITH KEY ebeln = wa_ekpo-ebeln ebelp = wa_ekpo-ebelp.

CHECK sy-subrc = 0.

wa_final-eindt = wa_eket-eindt.

wa_final-wemng = wa_eket-wemng.

PERFORM read_text.

IF wa_final-meins NE wa_final-lmein.

wa_final-menge = ( wa_final-menge / wa_final-bpumn ) * wa_final-bpumz.

wa_final-wemng = ( wa_final-wemng / wa_final-bpumn ) * wa_final-bpumz.

ENDIF.

APPEND wa_final TO it_final.

CLEAR wa_final.

ENDLOOP.

  • End of selection

END-OF-SELECTION.

PERFORM fieldcatalog.

PERFORM eventsbuild.

PERFORM alv_display.

DEFINE mac1.

clear lwa_fieldcatalog.

lwa_fieldcatalog-fieldname = &1.

lwa_fieldcatalog-seltext_m = &2.

append lwa_fieldcatalog to wa_gt_fieldcat.

END-OF-DEFINITION.

&----


*& Form fieldcatalog

&----


  • text

----


FORM fieldcatalog.

DATA : lwa_fieldcatalog TYPE LINE OF slis_t_fieldcat_alv.

mac1 'EKGRP' text-001.

mac1 'LIFNR' text-002.

mac1 'NAME1' text-003.

mac1 'WERKS' text-004.

mac1 'MATNR' text-005.

mac1 'TXZ01' text-006.

mac1 'EBELN' text-007.

*mac1 'EBELP' text-008.

lwa_fieldcatalog-fieldname = 'MENGE'.

lwa_fieldcatalog-seltext_m = text-009.

lwa_fieldcatalog-qfieldname = 'LMEIN'.

lwa_fieldcatalog-do_sum = 'X'.

APPEND lwa_fieldcatalog TO wa_gt_fieldcat.

CLEAR lwa_fieldcatalog.

lwa_fieldcatalog-fieldname = 'WEMNG'.

lwa_fieldcatalog-seltext_m = text-010.

lwa_fieldcatalog-qfieldname = 'LMEIN'.

lwa_fieldcatalog-do_sum = 'X'.

APPEND lwa_fieldcatalog TO wa_gt_fieldcat.

CLEAR lwa_fieldcatalog.

mac1 'LMEIN' text-016.

lwa_fieldcatalog-fieldname = 'BRTWR'.

lwa_fieldcatalog-seltext_m = text-011.

lwa_fieldcatalog-do_sum = 'X'.

lwa_fieldcatalog-outputlen = 15.

APPEND lwa_fieldcatalog TO wa_gt_fieldcat.

CLEAR lwa_fieldcatalog.

mac1 'EINDT' text-012.

mac1 'INV' text-013.

mac1 'DATE' text-014.

mac1 'SUP' text-015.

ENDFORM. "fieldcatalog

&----


*& Form alv_display

&----


  • text

----


FORM alv_display .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

is_layout = wa_gs_layout

it_fieldcat = wa_gt_fieldcat[]

it_events = wa_gt_events[]

it_sort = it_sort[]

TABLES

t_outtab = it_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. " alv_display

&----


*& Form eventsbuild

&----


  • text

----


FORM eventsbuild.

DATA: ls_event TYPE slis_alv_event. " alv event

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = wa_gt_events.

READ TABLE wa_gt_events WITH KEY name = slis_ev_top_of_page

INTO ls_event.

IF sy-subrc = 0.

MOVE 'TOP_OF_PAGE' TO ls_event-form.

APPEND ls_event TO wa_gt_events.

ENDIF.

wa_sort-fieldname = 'EKGRP'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'LIFNR'.

wa_sort-up = 'X'.

wa_sort-subtot = 'X'.

APPEND wa_sort TO it_sort.

CLEAR wa_sort.

wa_sort-fieldname = 'NAME1'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'WERKS'.

wa_sort-up = 'X'.

wa_sort-subtot = 'X'.

APPEND wa_sort TO it_sort.

wa_sort-fieldname = 'MATNR'.

wa_sort-up = 'X'.

wa_sort-subtot = 'X'.

APPEND wa_sort TO it_sort.

CLEAR wa_sort.

wa_sort-fieldname = 'TXZ01'.

wa_sort-up = 'X'.

APPEND wa_sort TO it_sort.

wa_gs_layout-colwidth_optimize = 'X'.

ENDFORM. " eventsbuild

&----


*& Form top_of_page

&----


  • text

----


FORM top_of_page. "#EC CALLED

DATA w_gt_list_top_of_page TYPE slis_t_listheader.

DATA: ls_line TYPE slis_listheader. " list header

ls_line-typ = 'H'.

ls_line-info = text-020.

APPEND ls_line TO w_gt_list_top_of_page.

READ TABLE s_dat INDEX 1.

ls_line-typ = 'S'.

ls_line-key = text-021.

SELECT SINGLE ltx FROM t247 INTO ls_line-info WHERE spras = 'EN' AND mnr = s_dat-low+4(2).

CONCATENATE s_dat-low6(2) ls_line-info0(3) s_dat-low+0(4) INTO ls_line-info SEPARATED BY '-'.

APPEND ls_line TO w_gt_list_top_of_page.

ls_line-typ = 'S'.

ls_line-key = text-022.

SELECT SINGLE ltx FROM t247 INTO ls_line-info WHERE spras = 'EN' AND mnr = s_dat-high+4(2).

CONCATENATE s_dat-high6(2) ls_line-info0(3) s_dat-high+0(4) INTO ls_line-info SEPARATED BY '-'.

APPEND ls_line TO w_gt_list_top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = w_gt_list_top_of_page.

ENDFORM. "TOP_OF_PAGE

&----


*& Form get_data1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data1 .

SELECT ebeln ekgrp ekko~lifnr name1 INTO TABLE it_ekko

FROM ekko

inner join lfa1 on ekkolifnr = lfa1lifnr

WHERE ekgrp IN s_ekgrp AND ebeln IN s_ebeln AND ekko~lifnr IN s_lifnr.

SELECT ebeln ebelp eindt wemng FROM eket INTO TABLE it_eket

FOR ALL ENTRIES IN it_ekko

WHERE eindt IN s_dat AND ebeln = it_ekko-ebeln.

SELECT ebeln ebelp werks matnr txz01 menge meins brtwr lmein bpumz bpumn FROM ekpo INTO CORRESPONDING FIELDS OF TABLE it_ekpo

FOR ALL ENTRIES IN it_ekko

WHERE ebeln = it_ekko-ebeln AND matkl = 'FFTP'.

ENDFORM. " get_data1

&----


*& Form read_text

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM read_text .

DATA: wa_name TYPE thead-tdname,

wa_id TYPE thead-tdid VALUE 'F01',

wa_lan TYPE thead-tdspras VALUE 'E',

wa_obj TYPE thead-tdobject VALUE 'EKPO',

it_lines TYPE TABLE OF tline,

wa_lines TYPE tline.

CONCATENATE wa_final-ebeln wa_final-ebelp INTO wa_name.

CALL FUNCTION 'READ_TEXT'

EXPORTING

id = wa_id

language = wa_lan

name = wa_name

object = wa_obj

TABLES

lines = it_lines

EXCEPTIONS

id = 1

language = 2

name = 3

not_found = 4

object = 5

reference_check = 6

wrong_access_to_archive = 7

OTHERS = 8.

CHECK sy-subrc EQ 0.

LOOP AT it_lines INTO wa_lines.

IF sy-tabix = 1.

wa_final-inv = wa_lines-tdline.

ELSEIF sy-tabix = 2.

wa_final-date = wa_lines-tdline.

ELSEIF sy-tabix = 3.

wa_final-sup = wa_lines-tdline.

ENDIF.

ENDLOOP.

ENDFORM. " read_text