cancel
Showing results for 
Search instead for 
Did you mean: 

setting the column labels in webdynpro abap alv report

former_member192818
Active Participant
0 Kudos

Hello,

Right now I have programmed an ALV report. The selection criterion and the display of the report all work.

However, there is an issue with the labels of columns in the ALV report. The report takes the field names of the structure I am using in the ALV report as the labels of the report. I have been trying to play around with the ALV class model to see if something will change the labels of the fields but to no avail. Would you guys know of some code or way to change the labels of the columns in the ALV report.

Thank you for your help in advance.

Sumit.

Here is some of the code I tried but does no work in the wdInit() method. It does not change the label. Any suggestions???


METHOD wddoinit .
* instantiate used component from wizard
DATA lo_cmp_usage TYPE REF TO if_wd_component_usage.

lo_cmp_usage =   wd_this->wd_cpuse_alv( ).
IF lo_cmp_usage->has_active_component( ) IS INITIAL.
  lo_cmp_usage->create_component( ).
ENDIF.



* call a method in the used component from wizard
  DATA lo_interfacecontroller TYPE REF TO iwci_salv_wd_table .
  lo_interfacecontroller =   wd_this->wd_cpifc_alv( ).

    DATA lo_value TYPE REF TO cl_salv_wd_config_table.
    lo_value = lo_interfacecontroller->get_model(
    ).

DATA: lr_field TYPE REF TO cl_salv_wd_field.
lr_field = lo_value->if_salv_wd_field_settings~get_field( 'CUSTOMER_NUMBER' ).

* change the label of the report.
DATA: lr_CUSTOMER_NUMBER TYPE REF TO cl_salv_wd_column.

            CALL METHOD lo_value->if_salv_wd_column_settings~get_column
              EXPORTING
                id     = 'CUSTOMER_NUMBER'   receiving value  = LR_CUSTOMER_NUMBER.


* SET THE LABEL OF THE COLUMN
DATA: HR_CUSTOMER_NUMBER TYPE REF TO CL_SALV_WD_COLUMN_HEADER.
CALL METHOD lr_customer_number->get_header
  receiving
    value  = HR_CUSTOMER_NUMBER.

***** set the text of the column
CALL METHOD hr_customer_number->set_text
  EXPORTING
    value  = 'Customer1 Number1'.

ENDMETHOD.

Accepted Solutions (1)

Accepted Solutions (1)

thomas_jung
Developer Advocate
Developer Advocate
0 Kudos

You have to disable the DDic binding on the column before your override text will show up:

data: l_ref_cmp_usage type ref to if_wd_component_usage.
  l_ref_cmp_usage =   wd_this->wd_cpuse_alv( ).
  if l_ref_cmp_usage->has_active_component( ) is initial.
    l_ref_cmp_usage->create_component( ).
  endif.

  data l_salv_wd_table type ref to iwci_salv_wd_table.
  l_salv_wd_table = wd_this->wd_cpifc_alv( ).
  data l_table type ref to cl_salv_wd_config_table.
  l_table = l_salv_wd_table->get_model( ).

  data l_column type ref to cl_salv_wd_column.
  l_column = l_table->if_salv_wd_column_settings~get_column( 'POSTING_DATE' ).
  data l_header type ref to cl_salv_wd_column_header.
  l_header = l_column->get_header( ).
  l_header->set_prop_ddic_binding_field(
    property =  if_salv_wd_c_ddic_binding=>bind_prop_text
    value = if_salv_wd_c_ddic_binding=>ddic_bind_none ).
  l_header->set_text( `Posting Date` ).

former_member192818
Active Participant
0 Kudos

Thank you Thomas. You are the best.

Answers (1)

Answers (1)

uday_gubbala2
Active Contributor
0 Kudos

Hi Sumit,

You have to keep in mind to clear the current text assignments, otherwise the data dictionary texts would override any texts that you supply.

l_column = l_table->if_salv_wd_column_settings~get_column( 'POSTING_DATE' ).
  data l_header type ref to cl_salv_wd_column_header.
  l_header = l_column->get_header( ).
  l_header->set_prop_ddic_binding_field(
    property =  if_salv_wd_c_ddic_binding=>bind_prop_text
    value = if_salv_wd_c_ddic_binding=>ddic_bind_none ).
  l_header->set_text( `Posting Date` ).

Regards,

Uday

former_member192818
Active Participant
0 Kudos

Thanks Uday. That solved the problem