ABAP Dropdown List

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值