‎2021 Apr 11 11:04 AM
Hi Experts,
How to show the short description (custom) name in ALV.
Ie., Here i have field name ZWM1 - Power generation , ZWM2 - Power consumed , ZWM3 - Power rate and also.
I have the set_column method and displayed the "short_text" but it displaying the "standared name from Database.
Please see the program attached and output as below.
Regards,
Senthil.G.
*&---------------------------------------------------------------------*
*& Report ZCG_R_BILLREPORT_WILDMILL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zcg_r_billreport_wildmill.
TABLES: vbrk , vbrp.
SELECTION-SCREEN BEGIN OF BLOCK s1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:
s_vbeln FOR vbrk-vbeln, "Billing Number
s_vkorg FOR vbrk-vkorg, "
s_vtweg FOR vbrk-vtweg,
s_fkdat FOR vbrk-fkdat,
s_kunag FOR vbrk-kunag,
s_spart FOR vbrk-spart.
SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS:
s_matnr FOR vbrp-matnr.
SELECTION-SCREEN END OF BLOCK s1.
CLASS lvl_class DEFINITION.
PUBLIC SECTION.
TYPES:BEGIN OF ty_vbrk,
vbeln TYPE vbrk-vbeln, "Billing Document.
vkorg TYPE vbrk-vkorg, "Sales Organization
vtweg TYPE vbrk-vtweg, "Distribution Channel
knumv TYPE vbrk-knumv, "Doc Condition.
fkdat TYPE vbrk-fkdat, "Billing date for billing ,
kunag TYPE vbrk-kunag, "Sold-to party
spart TYPE vbrk-spart, "Division
END OF ty_vbrk.
TYPES: BEGIN OF ty_vbrp,
vbeln TYPE vbrp-vbeln, "Billing Document.
posnr TYPE vbrp-posnr, "Billing Document.
matnr TYPE vbrp-matnr, "Material Number.
END OF ty_vbrp.
TYPES: BEGIN OF ty_konv,
knumv TYPE konv-knumv,
kschl TYPE konv-kschl,
kbetr TYPE konv-kbetr,
END OF ty_konv.
TYPES: BEGIN OF ty_last,
vbeln TYPE vbrk-vbeln, "Billing Document.
vkorg TYPE vbrk-vkorg, "Sales Organization
vtweg TYPE vbrk-vtweg, "Distribution Channel
fkdat TYPE vbrk-fkdat, "Billing date for billing ,
kunag TYPE vbrk-kunag, "Sold-to party
spart TYPE vbrk-spart, "Division
matnr TYPE vbrp-matnr, "Material Number.
zwm1 TYPE konv-kbetr,
zwm2 TYPE konv-kbetr,
zwm3 TYPE konv-kbetr,
zwm4 TYPE konv-kbetr,
zwm5 TYPE konv-kbetr,
zwm6 TYPE konv-kbetr,
zwm7 TYPE konv-kbetr,
zwm8 TYPE konv-kbetr,
zwmr TYPE konv-kbetr,
zwec TYPE konv-kbetr,
zdif TYPE konv-kbetr,
END OF ty_last.
METHODS: get_data,
output_data,
toolbar_data,
set_column CHANGING co_alv TYPE REF TO cl_salv_table.
DATA: gt_vbrk TYPE TABLE OF ty_vbrk,
gs_vbrk TYPE ty_vbrk,
gt_vbrp TYPE TABLE OF ty_vbrp,
gs_vbrp TYPE ty_vbrp,
gt_konv TYPE TABLE OF ty_konv,
gs_konv TYPE ty_konv,
gt_last TYPE TABLE OF ty_last,
gs_last TYPE ty_last.
DATA: alv_table TYPE REF TO cl_salv_table.
ENDCLASS.
CLASS lvl_class IMPLEMENTATION.
METHOD get_data.
* BREAK-POINT.
SELECT vbeln vkorg vtweg knumv fkdat kunag spart INTO TABLE gt_vbrk FROM vbrk WHERE
vbeln IN s_vbeln AND
vkorg IN s_vkorg AND
vtweg IN s_vtweg AND
spart IN s_spart AND
kunag IN s_kunag AND
fkdat IN s_fkdat.
IF gt_vbrk IS NOT INITIAL.
SELECT vbeln posnr matnr INTO TABLE gt_vbrp FROM vbrp FOR ALL ENTRIES IN gt_vbrk WHERE
vbeln = gt_vbrk-vbeln AND
matnr IN s_matnr.
SELECT knumv kschl kbetr INTO TABLE gt_konv FROM konv FOR ALL ENTRIES IN gt_vbrk WHERE
knumv = gt_vbrk-knumv AND
kschl IN ('ZWM1','ZWM2','ZWM3','ZWM4','ZWM5','ZWM6','ZWM7','ZWM8','ZWMR','ZWEC','ZDIF').
ENDIF.
* break clss01.
LOOP AT gt_vbrp INTO gs_vbrp.
READ TABLE gt_vbrk INTO gs_vbrk WITH KEY vbeln = gs_vbrp-vbeln BINARY SEARCH.
IF sy-subrc = 0.
LOOP AT gt_konv INTO gs_konv WHERE knumv = gs_vbrk-knumv.
IF gs_konv-kschl = 'ZWM1'.
gs_last-zwm1 = gs_konv-kbetr.
ENDIF.
IF gs_konv-kschl = 'ZWM2'.
gs_last-zwm2 = gs_konv-kbetr.
ENDIF.
IF gs_konv-kschl = 'ZWM3'.
gs_last-zwm3 = gs_konv-kbetr.
ENDIF.
IF gs_konv-kschl = 'ZWM4'.
gs_last-zwm4 = gs_konv-kbetr.
ENDIF.
IF gs_konv-kschl = 'ZWM5'.
gs_last-zwm5 = gs_konv-kbetr.
ENDIF.
IF gs_konv-kschl = 'ZWM6'.
gs_last-zwm6 = gs_konv-kbetr.
ENDIF.
IF gs_konv-kschl = 'ZWM7'.
gs_last-zwm7 = gs_konv-kbetr.
ENDIF.
IF gs_konv-kschl = 'ZWM8'.
gs_last-zwm8 = gs_konv-kbetr.
ENDIF.
IF gs_konv-kschl = 'ZWMR'.
gs_last-zwm8 = gs_konv-kbetr.
ENDIF.
IF gs_konv-kschl = 'ZWEC'.
gs_last-zwm8 = gs_konv-kbetr.
ENDIF.
IF gs_konv-kschl = 'ZDIF'.
gs_last-zwm8 = gs_konv-kbetr.
ENDIF.
ENDLOOP.
gs_last-vbeln = gs_vbrk-vbeln.
gs_last-vkorg = gs_vbrk-vkorg.
gs_last-vtweg = gs_vbrk-vtweg.
gs_last-fkdat = gs_vbrk-fkdat.
gs_last-kunag = gs_vbrk-kunag.
gs_last-spart = gs_vbrk-spart.
gs_last-matnr = gs_vbrp-matnr.
APPEND gs_last TO gt_last.
CLEAR: gs_last.
ENDIF..
ENDLOOP.
ENDMETHOD.
METHOD output_data.
DATA: error_message TYPE REF TO cx_salv_msg, " Through an error if there in OP
alv_column TYPE REF TO cl_salv_columns_table. "Display an colunm
* DATA: lo_cols TYPE REF TO cl_salv_columns.
* set the Column optimization
* lo_cols->set_optimize( 'X' ).
TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = alv_table
CHANGING
t_table = gt_last.
CATCH cx_salv_msg INTO error_message .
ENDTRY.
CALL METHOD toolbar_data( ).
alv_table->display( ).
ENDMETHOD.
METHOD toolbar_data.
DATA: alv_toolbar TYPE REF TO cl_salv_functions_list.
alv_toolbar = alv_table->get_functions( ).
CALL METHOD alv_toolbar->set_all
EXPORTING
value = if_salv_c_bool_sap=>true.
ENDMETHOD.
METHOD set_column.
* * Get all the Columns
DATA: lo_cols TYPE REF TO cl_salv_columns.
lo_cols = alv_table->get_columns( ).
*
* set the Column optimization
lo_cols->set_optimize( 'X' ).
*
DATA: lo_column TYPE REF TO cl_salv_column.
TRY .
lo_column = lo_cols->get_column( 'VBELN' ).
* lo_column->set_long_text( 'Billing Document' ).
* lo_column->set_medium_text( 'Billing Document' ).
lo_column->set_output_length( 25 ).
lo_column = lo_cols->get_column( 'VKORG' ).
* lo_column->set_long_text( 'Sales Organization' ).
* lo_column->set_medium_text( 'Sales Organization' ).
lo_column->set_output_length( 25 ).
lo_column = lo_cols->get_column( 'VTWEG' ).
* lo_column->set_long_text( 'Distribution Channel' ).
* lo_column->set_medium_text( 'Distribution Channel' ).
lo_column->set_output_length( 30 ).
lo_column = lo_cols->get_column( 'FKDAT' ).
* lo_column->set_long_text( 'Billing Date' ).
* lo_column->set_medium_text( 'Billing Date' ).
lo_column->set_output_length( 20 ).
lo_column = lo_cols->get_column( 'KUNAG' ).
* lo_column->set_long_text( 'Sold-Party' ).
* lo_column->set_medium_text( 'Sold-Party' ).
lo_column->set_output_length( 15 ).
lo_column = lo_cols->get_column( 'SPART' ).
* lo_column->set_long_text( 'Division' ).
* lo_column->set_medium_text( 'Division' ).
lo_column->set_output_length( 5 ).
lo_column = lo_cols->get_column( 'MATNR' ).
lo_column->set_long_text( 'Material Number' ).
* lo_column->set_medium_text( 'Material Number' ).
lo_column->set_output_length( 10 ).
lo_column = lo_cols->get_column( 'ZWM1' ).
* lo_column->set_long_text( 'Material Number' ).
lo_column->set_medium_text( 'Power Generation' ).
lo_column->set_output_length( 10 ).
CATCH cx_salv_not_found.
ENDTRY.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA: obj TYPE REF TO lvl_class.
CREATE OBJECT obj.
CALL METHOD obj->get_data.
CALL METHOD obj->output_data.
‎2021 Apr 11 4:42 PM
Hello divsmart
There is a method called SET_SHORT_TEXT which is used to set short label for the column.
lo_column->set_short_text( 'some label' ). " max 10 charactersKind regards,‎2021 Apr 11 11:06 AM
‎2021 Apr 11 4:42 PM
Hello divsmart
There is a method called SET_SHORT_TEXT which is used to set short label for the column.
lo_column->set_short_text( 'some label' ). " max 10 charactersKind regards,‎2021 Apr 11 6:50 PM
Hi Mateusz,
I Provided as below but gives as error message 'The literal "'Power Gener'" is not type-compatible with the formal parameter "VALUE".'
lo_column = lo_cols->get_column( 'ZWM1' ).
* lo_column->set_long_text( 'Material Number' ).
lo_column->set_short_text( 'Power Gener' ).
lo_column->set_output_length( 10 ).
Regards,
Senthil G.
‎2021 Apr 11 7:22 PM
That's because "Power Gener" has 11 characters.
Kind regards,
Mateusz
‎2021 Apr 12 7:14 AM
‎2021 Apr 12 6:28 AM
Hi Senthil,
please try using set_fixed_header_text.
lo_column = lo_cols->get_column( 'ZWM1' ).
lo_column->set_fixed_header_text( 'L' ).
lo_column->set_long_text( 'Power Generation' ).
lo_column->set_output_length( 10 ).
For further reference, have a look here: Working with width of columns in CL_SALV_TABLE | SAP Blogs
Regards.
‎2021 Apr 16 5:42 PM
‎2021 Apr 12 7:55 AM
Seems like you are not calling method set_column in your code. It is missing(?).