ABAP Dropdown List
2011年05月14日
http://hi.baidu.com/jiaoying7c/blog/item/e274f9c2c 2e989190ff477be.html http://wfly2004.blog.163.com/blog/static/117642720 0988114845276/ REPORT : Dropdown List 1. 在选择屏幕上添加下拉列表控件, 代码如下:
PARAMETERS: auart LIKE vapma-auart AS LISTBOX VISIBLE LENGTH 6
DEFAULT 'ZESC' OBLIGATORY.
2. 手工添加下拉列表数据, 代码如下:
*&------------------------------------------------ ---------------------*
*& Form fill_data_to_auart
*&------------------------------------------------ ---------------------*
* to fill data for combo auart.
*------------------------------------------------- ---------------------*
FORM fill_data_to_auart .
TYPE-POOLS: vrm . "存放combobox内容的type pool
DATA: name TYPE vrm_id, " list box的名称
list TYPE vrm_values, " list box的值
value LIKE LINE OF list . " list box的结构
REFRESH list .
DEFINE fill_list.
value-key = &1. "个就是变量P_LIST的值
value-text = &2. "这个是text
append value to list.
END-OF-DEFINITION.
fill_list 'ZESC' 'ZESC'.
fill_list 'ZESE' 'ZESE'.
fill_list 'ZEDN' 'ZEDN'.
fill_list 'ZEEN' 'ZEEN'.
fill_list 'ZPBB' 'ZPBB'.
fill_list 'ZPBE' 'ZPBE'.
fill_list 'ZPDN' 'ZPDN'.
fill_list 'ZPEN' 'ZPEN'.
fill_list 'ZOCS' 'ZOCS'.
fill_list 'ZASC' 'ZASC'.
fill_list 'ZASE' 'ZASE'.
fill_list 'ZADN' 'ZADN'.
fill_list 'ZAEN' 'ZAEN'.
"---〉调用函数显示listbox里面的值
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'AUART' " PARAMETERS's Name
values = list.
ENDFORM. " fill_data_to_auart
3. 在 AT SELECTION-SCREEN OUTPUT. 事件中填充数据,代码如下:
PERFORM fill_data_to_auart.
以上代码,ECC6环境下通过。
ALV 字段下拉列表
http://www.abaptech.com/2010/08/alv%e4%b8%89%e4%b8 %aa%e4%b8%8b%e6%8b%89%e5%88%97%e8%a1%a8%e5%88%97%e8 %81%94%e5%8a%a8/
http://blogold.chinaunix.net/u2/68743/showart_6892 92.html 代码如下:
REPORT.
************************************************** **********************
* DATEN DEFINITION *
************************************************** **********************
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 原文地址 http://blog.csdn.net/CompassButton/archive/2008/04 /26/2330532.aspx
2011年05月14日
http://hi.baidu.com/jiaoying7c/blog/item/e274f9c2c 2e989190ff477be.html http://wfly2004.blog.163.com/blog/static/117642720 0988114845276/ REPORT : Dropdown List 1. 在选择屏幕上添加下拉列表控件, 代码如下:
PARAMETERS: auart LIKE vapma-auart AS LISTBOX VISIBLE LENGTH 6
DEFAULT 'ZESC' OBLIGATORY.
2. 手工添加下拉列表数据, 代码如下:
*&------------------------------------------------ ---------------------*
*& Form fill_data_to_auart
*&------------------------------------------------ ---------------------*
* to fill data for combo auart.
*------------------------------------------------- ---------------------*
FORM fill_data_to_auart .
TYPE-POOLS: vrm . "存放combobox内容的type pool
DATA: name TYPE vrm_id, " list box的名称
list TYPE vrm_values, " list box的值
value LIKE LINE OF list . " list box的结构
REFRESH list .
DEFINE fill_list.
value-key = &1. "个就是变量P_LIST的值
value-text = &2. "这个是text
append value to list.
END-OF-DEFINITION.
fill_list 'ZESC' 'ZESC'.
fill_list 'ZESE' 'ZESE'.
fill_list 'ZEDN' 'ZEDN'.
fill_list 'ZEEN' 'ZEEN'.
fill_list 'ZPBB' 'ZPBB'.
fill_list 'ZPBE' 'ZPBE'.
fill_list 'ZPDN' 'ZPDN'.
fill_list 'ZPEN' 'ZPEN'.
fill_list 'ZOCS' 'ZOCS'.
fill_list 'ZASC' 'ZASC'.
fill_list 'ZASE' 'ZASE'.
fill_list 'ZADN' 'ZADN'.
fill_list 'ZAEN' 'ZAEN'.
"---〉调用函数显示listbox里面的值
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = 'AUART' " PARAMETERS's Name
values = list.
ENDFORM. " fill_data_to_auart
3. 在 AT SELECTION-SCREEN OUTPUT. 事件中填充数据,代码如下:
PERFORM fill_data_to_auart.
以上代码,ECC6环境下通过。
ALV 字段下拉列表
http://www.abaptech.com/2010/08/alv%e4%b8%89%e4%b8 %aa%e4%b8%8b%e6%8b%89%e5%88%97%e8%a1%a8%e5%88%97%e8 %81%94%e5%8a%a8/
http://blogold.chinaunix.net/u2/68743/showart_6892 92.html 代码如下:
REPORT.
************************************************** **********************
* DATEN DEFINITION *
************************************************** **********************
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 原文地址 http://blog.csdn.net/CompassButton/archive/2008/04 /26/2330532.aspx