ALV中下拉框设置
2014-11-24 15:59
295 查看
*&---------------------------------------------------------------------*
*& Report ZALV_DROPLIST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zalv_droplist.
TYPE-POOLS: slis.
TABLES mara.
TYPES: BEGIN OF typ_alv,
matnr LIKE makt-matnr,
maktx LIKE makt-maktx,
spras LIKE makt-spras,
dd_handle TYPE int4,
END OF typ_alv.
DATA: it_fieldcatalog TYPE lvc_t_fcat.
DATA: wa_fieldcatalog TYPE lvc_s_fcat.
DATA:
**--定义存储下拉列表的数据
it_ddval TYPE lvc_t_drop,
wa_ddval TYPE lvc_s_drop.
DATA: it_events TYPE slis_t_event,
wa_events TYPE slis_alv_event.
DATA: it_alv TYPE TABLE OF typ_alv WITH HEADER LINE.
SELECT-OPTIONS: s_matnr FOR mara-matnr.
START-OF-SELECTION.
SELECT matnr
maktx
spras
INTO CORRESPONDING FIELDS OF TABLE it_alv
FROM makt
WHERE matnr IN s_matnr
AND spras = '1'.
END-OF-SELECTION.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'MATNR'.
wa_fieldcatalog-ref_field = 'MATNR'.
wa_fieldcatalog-ref_table = 'MAKT'.
* wa_fieldcatalog-edit = 'X'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'MAKTX'.
wa_fieldcatalog-ref_field = 'MAKTX'.
wa_fieldcatalog-ref_table = 'MAKT'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'SPRAS'.
wa_fieldcatalog-outputlen = '7'.
* wa_fieldcatalog-dd_outlen = '7'.
* wa_fieldcatalog-intlen = '2'.
* wa_fieldcatalog-inttype = 'C'.
wa_fieldcatalog-coltext = 'Language'.
* wa_fieldcatalog-tooltip = 'Language'.
* wa_fieldcatalog-seltext = 'Language'.
wa_fieldcatalog-drdn_field = 'DD_HANDLE'.
wa_fieldcatalog-edit = 'X'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
DATA: l_spras TYPE makt-spras,
l_count TYPE i.
LOOP AT it_alv.
l_count = l_count + 1.
SELECT spras
INTO l_spras
FROM makt
WHERE matnr = it_alv-matnr.
wa_ddval-handle = l_count.
wa_ddval-value = l_spras.
APPEND wa_ddval TO it_ddval.
CLEAR wa_ddval.
ENDSELECT.
wa_ddval-handle = l_count.
wa_ddval-value = ''.
APPEND wa_ddval TO it_ddval.
CLEAR wa_ddval.
*设置对应
it_alv-dd_handle = l_count.
MODIFY it_alv.
ENDLOOP.
wa_events-name = 'CALLER_EXIT'.
wa_events-form = 'CALLER_EXIT'.
APPEND wa_events TO it_events.
CLEAR wa_events.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
it_fieldcat_lvc = it_fieldcatalog
it_events = it_events
TABLES
t_outtab = it_alv.
*---------------------------------------------------------------------*
*设置下拉列表,使Grid和内表能链接上
*---------------------------------------------------------------------*
FORM caller_exit USING ls_data TYPE slis_data_caller_exit.
DATA: l_alv TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = l_alv.
CALL METHOD l_alv->set_drop_down_table
EXPORTING
it_drop_down = it_ddval.
ENDFORM. "CALLER_EXIT
*&---------------------------------------------------------------------*
*& Report ZALV_DROPLIST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zalv_droplist.
TYPE-POOLS: slis.
TABLES mara.
TYPES: BEGIN OF typ_alv,
matnr LIKE makt-matnr,
maktx LIKE makt-maktx,
spras LIKE makt-spras,
dd_handle TYPE int4,
END OF typ_alv.
DATA: it_fieldcatalog TYPE lvc_t_fcat.
DATA: wa_fieldcatalog TYPE lvc_s_fcat.
DATA:
**--定义存储下拉列表的数据
it_ddval TYPE lvc_t_drop,
wa_ddval TYPE lvc_s_drop.
DATA: it_events TYPE slis_t_event,
wa_events TYPE slis_alv_event.
DATA: it_alv TYPE TABLE OF typ_alv WITH HEADER LINE.
SELECT-OPTIONS: s_matnr FOR mara-matnr.
START-OF-SELECTION.
SELECT matnr
maktx
spras
INTO CORRESPONDING FIELDS OF TABLE it_alv
FROM makt
WHERE matnr IN s_matnr
AND spras = '1'.
END-OF-SELECTION.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'MATNR'.
wa_fieldcatalog-ref_field = 'MATNR'.
wa_fieldcatalog-ref_table = 'MAKT'.
* wa_fieldcatalog-edit = 'X'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'MAKTX'.
wa_fieldcatalog-ref_field = 'MAKTX'.
wa_fieldcatalog-ref_table = 'MAKT'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
CLEAR wa_fieldcatalog.
wa_fieldcatalog-fieldname = 'SPRAS'.
wa_fieldcatalog-outputlen = '7'.
* wa_fieldcatalog-dd_outlen = '7'.
* wa_fieldcatalog-intlen = '2'.
* wa_fieldcatalog-inttype = 'C'.
wa_fieldcatalog-coltext = 'Language'.
* wa_fieldcatalog-tooltip = 'Language'.
* wa_fieldcatalog-seltext = 'Language'.
wa_fieldcatalog-drdn_field = 'DD_HANDLE'.
wa_fieldcatalog-edit = 'X'.
APPEND wa_fieldcatalog TO it_fieldcatalog.
CLEAR wa_fieldcatalog.
DATA: l_spras TYPE makt-spras,
l_count TYPE i.
LOOP AT it_alv.
l_count = l_count + 1.
SELECT spras
INTO l_spras
FROM makt
WHERE matnr = it_alv-matnr.
wa_ddval-handle = l_count.
wa_ddval-value = l_spras.
APPEND wa_ddval TO it_ddval.
CLEAR wa_ddval.
ENDSELECT.
wa_ddval-handle = l_count.
wa_ddval-value = ''.
APPEND wa_ddval TO it_ddval.
CLEAR wa_ddval.
*设置对应
it_alv-dd_handle = l_count.
MODIFY it_alv.
ENDLOOP.
wa_events-name = 'CALLER_EXIT'.
wa_events-form = 'CALLER_EXIT'.
APPEND wa_events TO it_events.
CLEAR wa_events.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
it_fieldcat_lvc = it_fieldcatalog
it_events = it_events
TABLES
t_outtab = it_alv.
*---------------------------------------------------------------------*
*设置下拉列表,使Grid和内表能链接上
*---------------------------------------------------------------------*
FORM caller_exit USING ls_data TYPE slis_data_caller_exit.
DATA: l_alv TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = l_alv.
CALL METHOD l_alv->set_drop_down_table
EXPORTING
it_drop_down = it_ddval.
ENDFORM. "CALLER_EXIT
相关文章推荐
- 转 ALV下拉框的设置
- 设置ALV单元格可编辑状态
- JQuery获取和设置select下拉框的值
- JQuery获取和设置select下拉框的值
- 关于TYPE-POOLS SLIS的ALV设置
- JSP下拉框设置动态默认值
- 如何设置'REUSE_ALV_GRID_DISPLAY'的单个单元格的颜色
- 如何设置REUSE_ALV_GRID_DISPLAY'的单个单元格的是否可以输入
- ALV报表中设置可修改字段
- ALV2:ALV列、行、单元格颜色设置
- select下拉框设置只读
- 设置WEB ALV 每个cell的读写属性
- QCombobox设置下拉框的宽度
- 下拉框的比较全面的设置(资源)
- 调用函数的ALV、面向对象的ALV设置带选择列
- 如何设置comboBox下拉框的大小,并在下拉框中画上类式excel的表格???
- EXCEL中单元格下拉框的设置
- 给select下拉框设置高度!
- select change下拉框改变事件 设置选定项,禁用select
- 设置下拉框选中的值