1 建立一个新程序,代码如下:
REPORT zdrawer.
TABLES: trdir.
INCLUDE <icon>.
DATA: cc_drawer TYPE REF TO cl_gui_docking_container,
c_drawer TYPE REF TO cl_gui_container_bar,
c_container TYPE REF TO cl_gui_container,
l_caption TYPE sbptcaptn,
lt_captions TYPE sbptcaptns,
l_icon TYPE swd_icon,
lt_icons TYPE swd_icons,
ok_code TYPE sy-ucomm,
*
id TYPE i,
repid TYPE sy-repid,
dynnr TYPE sy-dynnr.
* Display data
TYPES: BEGIN OF ty_data ,
name LIKE trdir-name,
cnam LIKE trdir-cnam,
cdat LIKE trdir-cdat,
END OF ty_data.
DATA : g_alv_sd TYPE REF TO cl_gui_alv_grid,
g_alv_mm TYPE REF TO cl_gui_alv_grid,
g_alv_pp TYPE REF TO cl_gui_alv_grid,
g_alv_fi TYPE REF TO cl_gui_alv_grid,
g_alv_all TYPE REF TO cl_gui_alv_grid,
gs_data TYPE ty_data,
gt_data TYPE STANDARD TABLE OF ty_data.
CLASS lcl_application DEFINITION DEFERRED.
CLASS cl_gui_cfw DEFINITION LOAD.
DATA:
c_application TYPE REF TO lcl_application,
c_alv TYPE REF TO lcl_application.
*---------------------------------------------------------------------*
* CLASS lcl_application DEFINITION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS lcl_application DEFINITION.
PUBLIC SECTION.
METHODS:
on_click FOR EVENT clicked OF cl_gui_container_bar
IMPORTING
id
container,
on_hotspot_click FOR EVENT
hotspot_click OF cl_gui_alv_grid IMPORTING
e_row_id e_column_id.
ENDCLASS. "lcl_application DEFINITION
*---------------------------------------------------------------------*
* CLASS lcl_application IMPLEMENTATION
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
CLASS lcl_application IMPLEMENTATION.
METHOD on_click.
DATA: l_fcode TYPE ui_func,
l_link TYPE swd_htmlco,
l_quickinfo TYPE iconquick.
DATA:
lx_variant TYPE disvariant,
lt_alv_cat TYPE lvc_t_fcat,
lx_alv_cat TYPE lvc_s_fcat,
lx_alv_lay TYPE lvc_s_layo.
DEFINE m_fieldcat.
add 1 to lx_alv_cat-col_pos.
lx_alv_cat-fieldname = &1.
case lx_alv_cat-fieldname.
when 'NAME'.
lx_alv_cat-key = 'X'.
lx_alv_cat-hotspot = 'X'.
lx_alv_cat-scrtext_m = 'Program Name'.
lx_alv_cat-colddictxt = 'M'.
lx_alv_cat-tipddictxt = 'M'.
when 'CNAM'.
lx_alv_cat-key = ''.
lx_alv_cat-hotspot = ''.
lx_alv_cat-scrtext_m = 'Created By'.
lx_alv_cat-colddictxt = 'M'.
lx_alv_cat-tipddictxt = 'M'.
when 'CDAT'.
lx_alv_cat-key = ''.
lx_alv_cat-hotspot = ''.
lx_alv_cat-scrtext_m = 'Created On'.
lx_alv_cat-colddictxt = 'M'.
lx_alv_cat-tipddictxt = 'M'.
endcase.
lx_alv_cat-ref_field = &2.
lx_alv_cat-ref_table = &3.
append lx_alv_cat to lt_alv_cat.
END-OF-DEFINITION.
CASE id.
WHEN 1.
FREE : g_alv_sd.