‎2008 Mar 10 5:54 PM
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
‎2008 Mar 10 6:00 PM
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
‎2008 Mar 10 6:00 PM
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
‎2008 Mar 11 6:26 AM
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