2014 Mar 10 3:38 PM
I'm using the REUSE_ALV_GRID_DISPLAY function to display my data. However, the ALV toolbar is not displaying the buttons that I would like. Here is the way the toolbar is displayed:
Here is what I would like:
Here is my application code... not sure what I'm missing:
REPORT ZPM_WO_OPEN_COMMIT.
TABLES: ekko,
ekpo,
lfa1,
eket,
ekkn,
aufk.
TYPES: begin of ty_data,
ebeln like EKKO-EBELN,
ernam like EKKO-ERNAM,
lifnr like EKKO-LIFNR,
ekgrp like EKKO-EKGRP,
bedat like EKKO-BEDAT,
waers like EKKO-WAERS,
bukrs like EKKO-BUKRS,
bsart like EKKO-BSART,
ekorg like EKKO-EKORG,
name1 like LFA1-NAME1,
"lifnr_lfa1 like LFA1-LIFNR,
ebelp like EKPO-EBELP,
txz01 like EKPO-TXZ01,
matnr like EKPO-MATNR,
menge like EKPO-MENGE,
meins like EKPO-MEINS,
netpr like EKPO-NETPR,
brtwr like EKPO-BRTWR,
elikz like EKPO-ELIKZ,
loekz like EKPO-LOEKZ,
"ebeln_ekpo like EKPO-EBELN,
eindt like EKET-EINDT,
"ebeln_eket like EKET-EBELN,
"ebelp_eket like EKET-EBELP,
aufnr like EKKN-AUFNR,
"ebeln_ekkn like EKKN-EBELN,
"ebelp_ekkn like EKKN-EBELP,
ktext like AUFK-KTEXT,
"aufnr_aufk like AUFK-AUFNR,
end of ty_data.
DATA: gt_data TYPE TABLE OF ty_data,
gt_fieldcat TYPE slis_t_fieldcat_alv.
********************** Selection Screen Parameters *********************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS so_bukrs FOR ekko-bukrs.
SELECT-OPTIONS so_bsart FOR ekko-bsart.
SELECT-OPTIONS so_ekorg FOR ekko-ekorg.
SELECT-OPTIONS so_ekgrp FOR ekko-ekgrp.
SELECT-OPTIONS so_bedat FOR ekko-bedat.
SELECT-OPTIONS so_loekz FOR ekpo-loekz.
SELECT-OPTIONS so_elikz FOR ekpo-elikz.
SELECT-OPTIONS so_aufnr FOR ekkn-aufnr.
SELECTION-SCREEN END OF BLOCK b1.
********************** Data selection screen events ********************
AT SELECTION-SCREEN.
END-of-SELECTION.
********************** Retrieve and process data ***********************
perform get_data.
perform build_field_catalog.
perform display_alv.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* Retrieve the report data based on the input.
*----------------------------------------------------------------------*
FORM GET_DATA .
select EKKO~EBELN EKKO~ERNAM EKKO~LIFNR EKKO~EKGRP EKKO~BEDAT
EKKO~WAERS EKKO~BUKRS EKKO~BSART EKKO~EKORG LFA1~NAME1
"LFA1~LIFNR as lfa1_lifnr
EKPO~EBELP EKPO~TXZ01 EKPO~MATNR
EKPO~MENGE EKPO~MEINS EKPO~NETPR EKPO~BRTWR EKPO~ELIKZ
EKPO~LOEKZ
"EKPO~EBELN as ebeln_ekpo
EKET~EINDT
"EKET~EBELN as ebeln_eket EKET~EBELP as ebelp_eket
EKKN~AUFNR
"EKKN~EBELN as ebeln_ekkn EKKN~EBELP as ebelp_ekkn
AUFK~KTEXT
"AUFK~AUFNR as aufnr_aufk
into CORRESPONDING FIELDS OF TABLE gt_data
from ( EKKO
inner join LFA1
on LFA1~LIFNR = EKKO~LIFNR
inner join EKPO
on EKPO~EBELN = EKKO~EBELN
and EKPO~EBELP = EKKO~LPONR
inner join EKET
on EKET~EBELN = EKPO~EBELN
and EKET~EBELP = EKPO~EBELP
inner join EKKN
on EKKN~EBELN = EKPO~EBELN
and EKKN~EBELP = EKPO~EBELP
inner join AUFK
on AUFK~AUFNR = EKKN~AUFNR )
where EKKO~BUKRS in so_bukrs
and EKKO~BSART in so_bsart
and EKKO~EKORG in so_ekorg
and EKKO~EKGRP in so_ekgrp
and EKKO~BEDAT in so_bedat
and EKPO~LOEKZ in so_loekz
and EKPO~ELIKZ in so_elikz
and EKKN~AUFNR in so_aufnr.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form BUILD_FIELD_CATALOG
*&---------------------------------------------------------------------*
* Builds the list of fields to be used for display in ALV grid.
*----------------------------------------------------------------------*
FORM BUILD_FIELD_CATALOG .
data: wa_fieldcat type slis_fieldcat_alv.
wa_fieldcat-fieldname = 'EBELN'. " Fieldname in the data table.
wa_fieldcat-REF_TABNAME = 'EKKO'. " Table ref. Needed for column header.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'ERNAM'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'LIFNR'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'EKGRP'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'BEDAT'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-ref_tabname = 'LFA1'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'EBELP'.
wa_fieldcat-ref_tabname = 'EKPO'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'TXZ01'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'MATNR'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'MENGE'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-qfieldname = 'MEINS'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-do_sum = ''.
wa_fieldcat-qfieldname = ''.
wa_fieldcat-fieldname = 'MEINS'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'NETPR'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-cfieldname = 'WAERS'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-do_sum = ''.
wa_fieldcat-fieldname = 'WAERS'.
wa_fieldcat-ref_tabname = 'EKKO'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'BRTWR'.
wa_fieldcat-ref_tabname = 'EKPO'.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-do_sum = ''.
wa_fieldcat-fieldname = 'WAERS'.
wa_fieldcat-ref_tabname = 'EKKO'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'ELIKZ'.
wa_fieldcat-ref_tabname = 'EKPO'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'EINDT'.
wa_fieldcat-ref_tabname = 'EKET'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'AUFNR'.
wa_fieldcat-ref_tabname = 'EKKN'.
APPEND wa_fieldcat TO gt_fieldcat.
wa_fieldcat-fieldname = 'KTEXT'.
wa_fieldcat-ref_tabname = 'AUFK'.
APPEND wa_fieldcat TO gt_fieldcat.
ENDFORM. " BUILD_FIELD_CATALOG
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV
*&---------------------------------------------------------------------*
* Display the results to the user.
*----------------------------------------------------------------------*
FORM DISPLAY_ALV.
data: is_layout TYPE slis_layout_alv.
is_layout-COLWIDTH_OPTIMIZE = 'X'.
*Pass data and field catalog to ALV function module to display ALV list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = gt_fieldcat
I_GRID_TITLE = 'Work Order Open Commitment Summary'
IS_LAYOUT = is_layout
TABLES
t_outtab = gt_data
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " DISPLAY_ALV
2014 Mar 10 3:59 PM
2014 Mar 10 3:59 PM
2014 Mar 10 4:39 PM
It often is not easy enough to rewrite an existing program to OO-concept. Try looking at the SALV function group and it's STANDARD status. Once you need other icons in your case, you can use those pre-fabricated from that status.
But if you are heading to the button choice (button with multiple functions underneath it), you can only achieve this using the OO concept.