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 

猜你喜欢

转载自lud35lud.iteye.com/blog/1361173
今日推荐