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 Salv - display the custom output short description name

divsmart
Participant
0 Likes
3,480

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.

1 ACCEPTED SOLUTION
Read only

MateuszAdamus
Active Contributor
2,784

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 characters
Kind regards,
Mateusz
8 REPLIES 8
Read only

divsmart
Participant
0 Likes
2,784

op.jpg

Hi experts,

Output attachment.

Senthil.G .

Read only

MateuszAdamus
Active Contributor
2,785

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 characters
Kind regards,
Mateusz
Read only

0 Likes
2,784

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.

Read only

0 Likes
2,784

That's because "Power Gener" has 11 characters.

Kind regards,

Mateusz

Read only

2,784

Okay Adams.

Solved.

Read only

Marco_Flamm
Active Participant
0 Likes
2,784

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.

Read only

0 Likes
2,784

Thanks much help!!

Read only

tom_wan
Product and Topic Expert
Product and Topic Expert
0 Likes
2,784

Seems like you are not calling method set_column in your code. It is missing(?).