加载中…
个人资料
SAP_拖拉机
SAP_拖拉机
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,164
  • 关注人气:14
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

alv 下拉菜单 及回车事件相应方法

(2015-07-14 11:15:02)
标签:

下拉菜单

回车事件响应

分类: alv

定义alv显示结构 下拉菜单和alv事件

  DATA  gt_fieldcatalog TYPE  lvc_t_fcat ,
        gw_fieldcatalog  TYPE  lvc_s_fcat ,
        gwa_layout      TYPE  lvc_s_layo ,
 

        "---for call function  'REUSE_ALV_GRID_DISPLAY_LVC' .

        gt_ddval     TYPE  lvc_t_drop ,
        gw_ddval     TYPE  lvc_s_drop ,

 

          g_repid     TYPE sy-repid  VALUE sy-repid ,
        gt_events   TYPE   slis_t_event ,
        gw_events   TYPE   slis_alv_event .

显示数据结构 新增

  DATABEGIN OF gwa_modify_data ,
     dd_ddval TYPE   "保存alv单元格所对应的编号 = gt_ddval 对应的编号 

     zwswj(8) ,          "要创建下拉菜单的列名

end of  gwa_modify_data . 

设置下拉菜单对应数据 :

  FORM create_dropdown_values .
  DATA:l_line1  TYPE  VALUE .

    DESCRIBE TABLE gt_modify_data LINES  l_psjb .

   LOOP AT gt_modify_data .
  l_line1 l_line1 .

  "---微生物检验结果下拉选项
  gw_ddval-handle l_line1 .
  gw_ddval-value  '合格'.
  APPEND gw_ddval TO gt_ddval .
  CLEAR gw_ddval .
  gw_ddval-handle l_line1 .
  gw_ddval-value  '不合格'.
  APPEND  gw_ddval TO gt_ddval .
  gt_modify_data-dd_zwswj l_line1 .

    MODIFY gt_modify_data .
ENDLOOP .

声明事件 ;

  FORM create_event_exits .
  gw_events-name 'CALLER_EXIT'.
  gw_events-form 'CALLER_EXIT'.
  APPEND gw_events TO gt_events.
ENDFORM.

注册下拉菜单事件

  FORM caller_exit USING ls_data TYPE slis_data_caller_exit.
 "alv 的底层是通过oo实现的, 通过调用上述方法获得alv句柄.
  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.
 "注册回车事件 .
  CALL method  l_ref_alv->register_edit_event
    exporting
       i_event_id cl_gui_alv_grid=>mc_evt_enter
    exceptions
        error   1
        others  .

 create object  gt_event_receiver .
 set handler gt_event_receiver->handle_modify for l_ref_alv .

ENDFORM  

*--------------------------------------------------------------------------------------------------

回车响应

  DATAg_grid TYPE REF TO cl_gui_alv_grid.   保存alv句柄

  DATAl_ref_alv TYPE REF TO cl_gui_alv_grid.

创建响应事件的类及类实现
 生命类及定义方法类处理date_changed_finished 事件
class  lcl_event_receiver definition .
  public section .
   methods handle_modify  for event data_changed_finished of  cl_gui_alv_grid
   importing  e_modified  et_good_cells .
endclass .

class  lcl_event_receiver implementation .
 定义 method 方法
  method handle_modify .

  datastb1 type lvc_s_stbl .
  datatmp type  .
  loop at gt_modify_data  into gwa_modify_data  .
    /////添加对行数据的处理内容    

     modify gt_modify_data from gwa_modify_data.
  endloop .


  "稳定刷新.
  stb1-row 'X'   "基于行的稳定刷新
  stb1-col 'X'   "基于列的稳定刷新.
  CALL method l_ref_alv->refresh_table_display
   exporting
       is_stable  stb1 .
  endmethod .
endclass .

DATA gt_event_receiver TYPE REF TO lcl_event_receiver.
  " 类对象声明

注册事件 参见alv 下拉菜单显示

 

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有