REPORT ZTEST.
TYPE-POOLS: SLIS.
TYPES:
BEGIN OF T_DATA,
MATNR TYPE MAKT-MATNR,
MAKTX TYPE MAKT-MAKTX,
SPRAS TYPE MAKT-SPRAS,
END OF T_DATA,
BEGIN OF T_ALV,
MATNR TYPE MAKT-MATNR,
MAKTX TYPE MAKT-MAKTX,
SPRAS TYPE MAKT-SPRAS,
DD_HANDLE TYPE INT4,
END OF T_ALV.
DATA:
GT_FIELDCATALOG TYPE LVC_T_FCAT,
GW_FIELDCATALOG TYPE LVC_S_FCAT,
*定义存储下拉列表的数据
GT_DDVAL TYPE LVC_T_DROP,
GW_DDVAL TYPE LVC_S_DROP,
GT_EVENTS TYPE SLIS_T_EVENT,
GW_EVENTS TYPE SLIS_ALV_EVENT,
GT_DATA TYPE TABLE OF T_DATA,
GW_DATA TYPE T_DATA,
GT_ALV TYPE TABLE OF T_ALV,
GW_ALV TYPE T_ALV,
G_REPID TYPE SY-REPID VALUE SY-REPID.
************************************************************************
* SELECTION SCREEN *
************************************************************************
SELECT-OPTIONS: S_MATNR FOR GW_DATA-MATNR .
************************************************************************
* START-OF-SELECTION *
************************************************************************
START-OF-SELECTION.
SELECT MATNR MAKTX SPRAS
INTO TABLE GT_DATA UP TO 50 ROWS
FROM MAKT
WHERE MATNR IN S_MATNR
AND SPRAS = 'EN'.
LOOP AT GT_DATA INTO GW_DATA.
MOVE-CORRESPONDING GW_DATA TO GW_ALV.
APPEND GW_ALV TO GT_ALV.
ENDLOOP.
PERFORM CREAT_FIELDCAT.
PERFORM CREAT_DROPDOWN_VALUES.
PERFORM CREAT_EVENT_EXITS.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
IT_FIELDCAT_LVC = GT_FIELDCATALOG
IT_EVENTS = GT_EVENTS
TABLES
T_OUTTAB = GT_ALV.
*---------------------------------------------------------------------*
* 设置输出字段的格式
*---------------------------------------------------------------------*
FORM CREAT_FIELDCAT.
CLEAR GW_FIELDCATALOG.
GW_FIELDCATALOG-FIELDNAME = 'MATNR'.
GW_FIELDCATALOG-REF_FIELD = 'MATNR'.
GW_FIELDCATALOG-REF_TABLE = 'MAKT'.
APPEND GW_FIELDCATALOG TO GT_FIELDCATALOG.
CLEAR GW_FIELDCATALOG.
GW_FIELDCATALOG-FIELDNAME = 'MAKTX'.
GW_FIELDCATALOG-REF_FIELD = 'MAKTX'.
GW_FIELDCATALOG-REF_TABLE = 'MAKT'.
APPEND GW_FIELDCATALOG TO GT_FIELDCATALOG.
CLEAR GW_FIELDCATALOG.
GW_FIELDCATALOG-FIELDNAME = 'SPRAS'.
GW_FIELDCATALOG-OUTPUTLEN = '7'.
GW_FIELDCATALOG-DD_OUTLEN = '7'.
GW_FIELDCATALOG-INTLEN = '2'.
GW_FIELDCATALOG-INTTYPE = 'C'.
GW_FIELDCATALOG-COLTEXT = 'Language'.
GW_FIELDCATALOG-TOOLTIP = 'Language'.
GW_FIELDCATALOG-SELTEXT = 'Language'.
GW_FIELDCATALOG-DRDN_FIELD = 'DD_HANDLE'.
GW_FIELDCATALOG-EDIT = 'X'.
APPEND GW_FIELDCATALOG TO GT_FIELDCATALOG.
ENDFORM. " creat_fieldcat
*---------------------------------------------------------------------*
*根据物料的所有的语言生成不同的生成下拉列表
*---------------------------------------------------------------------*
FORM CREAT_DROPDOWN_VALUES.
DATA: L_SPRAS TYPE MAKT-SPRAS,
L_COUNT TYPE I.
LOOP AT GT_ALV INTO GW_ALV.
ADD 1 TO L_COUNT.
SELECT SPRAS
INTO L_SPRAS
FROM MAKT
WHERE MATNR = GW_ALV-MATNR.
CLEAR GW_DDVAL.
GW_DDVAL-HANDLE = L_COUNT.
GW_DDVAL-VALUE = L_SPRAS.
APPEND GW_DDVAL TO GT_DDVAL.
ENDSELECT.
CLEAR GW_DDVAL.
GW_DDVAL-HANDLE = L_COUNT.
GW_DDVAL-VALUE = ' '.
APPEND GW_DDVAL TO GT_DDVAL.
*设置对应
GW_ALV-DD_HANDLE = L_COUNT.
MODIFY GT_ALV FROM GW_ALV.
ENDLOOP.
ENDFORM. " creat_dropdown_values
*---------------------------------------------------------------------*
* Form creat_event_exits
*---------------------------------------------------------------------*
FORM CREAT_EVENT_EXITS .
GW_EVENTS-NAME = 'CALLER_EXIT'.
GW_EVENTS-FORM = 'CALLER_EXIT'.
APPEND GW_EVENTS TO GT_EVENTS.
ENDFORM. " creat_event_exits
*---------------------------------------------------------------------*
*设置下拉列表,使Grid和内表能链接上
*---------------------------------------------------------------------*
FORM CALLER_EXIT USING LS_DATA TYPE SLIS_DATA_CALLER_EXIT.
DATA: L_REF_ALV TYPE REF TO CL_GUI_ALV_GRID.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = L_REF_ALV.
CALL METHOD L_REF_ALV->SET_DROP_DOWN_TABLE
EXPORTING
IT_DROP_DOWN = GT_DDVAL.
ENDFORM. "CALLER_EXIT
另一个例子:
**=====================================================================*
*& Report ZPS_FM_13
**=====================================================================*
REPORT zps_fm_13.
**=====================================================================*
* Program ID : ZPS_FM_13
* Program Description : 项目结算资料台账
* Functional Consultant :
* Process Spec ID :
* Created By : Liu Peng Peng
* Start Date : 17.02.2016
* End Date :
*======================================================================*
* Modify Log History.
*----------------------------------------------------------------------*
*
*No. Modified by Date Transport Description
*--- ----------- ---- --------- -----------
*M1
*======================================================================*
* Tables
*======================================================================*
TABLES:zps009.
*======================================================================*
* Constants
*======================================================================*
*======================================================================*
* Types
*======================================================================*
TYPE-POOLS : abap,slis,icon.
*======================================================================*
* Internal Tables/work areas
*======================================================================*
DATA:BEGIN OF gt_wd OCCURS 0,
wdbh LIKE zps011-wdbh, "文档编号
wdmc LIKE zps011-wdmc, "文档名称
checkbox TYPE c,
sel(1) TYPE c,
END OF gt_wd.
DATA:BEGIN OF gt_out OCCURS 0,
wdbh LIKE zps009-wdbh, "文档编号
wdmc LIKE zps009-wdmc, "文档名称
tjtime LIKE zps009-tjtime, "提交时间
tjry LIKE zps009-tjry, "提交人员
shry LIKE zps009-shry, "审核人员
shtime LIKE zps009-shtime, "审核时间
shqk LIKE zps009-shqk, "审核情况
bz LIKE zps009-bz, "备注
sel(1) TYPE c,
dd_handle TYPE int4,
END OF gt_out.
DATA:BEGIN OF gt_zzhtbm OCCURS 0,
zzhtbm TYPE zzhtbm,
zzhtms TYPE zzhtms,
END OF gt_zzhtbm.
DATA: fieldcat TYPE lvc_t_fcat WITH HEADER LINE.
DATA: fieldcat1 TYPE lvc_t_fcat WITH HEADER LINE.
*定义存储下拉列表的数据
DATA:gt_ddval TYPE lvc_t_drop,
gw_ddval TYPE lvc_s_drop.
*======================================================================*
* Data declarations
*======================================================================*
DATA: wa_layout TYPE lvc_s_layo,
gt_events TYPE slis_t_event,
gs_event LIKE LINE OF gt_events.
DATA: g_grid TYPE REF TO cl_gui_alv_grid.
DATA:is_variant LIKE disvariant.
*======================================================================*
* Definition
*======================================================================*
DEFINE fill_field.
CLEAR FIELDCAT.
FIELDCAT-FIELDNAME = &1.
FIELDCAT-SCRTEXT_L = &2.
FIELDCAT-CFIELDNAME = &3.
FIELDCAT-OUTPUTLEN = &4.
FIELDCAT-EDIT = &5.
APPEND FIELDCAT.
END-OF-DEFINITION.
DEFINE fill_field1.
CLEAR FIELDCAT1.
FIELDCAT1-FIELDNAME = &1.
FIELDCAT1-SCRTEXT_L = &2.<