转载非原创:修改BB 的内容,回车后修改CC 的值
原文 http://blog.csdn.net/iamah/article/details/8438981
修改BB 的内容,回车后修改CC 的值
步骤:
1. 注册类为对类CL_GUI_ALV_GRID的事件DATA_CHANGED_FINISHED定义一个方法,创建对象gt_evnet_receiver
2. 调用FM 'REUSE_ALV_GRID_DISPLAY_LVC'时要调用事件 slis_ev_caller_exit_at_start来获取ALV对象并给其注册回车事件及处理方法.
*&---------------------------------------------------------------------*
DATA: gt_event TYPE slis_t_event WITH HEADER LINE.
DATA: ref_grid TYPE REF TO cl_gui_alv_grid.
"声明类及定义方法来处理data_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. "LCL_EVENT_RECEIVER DEFINITION
*----------------------------------------------------------------------*
* CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_modify.
* PERFORM refresh.
DATA stbl TYPE lvc_s_stbl.
LOOP AT gt_itab INTO wa_itab.
wa_itab-cc = wa_itab-bb * 2 .
MODIFY gt_itab FROM wa_itab.
ENDLOOP.
* 稳定刷新
stbl-row = 'X'." 基于行的稳定刷新
stbl-col = 'X'." 基于列稳定刷新
CALL METHOD ref_grid->refresh_table_display
EXPORTING
is_stable = stbl.
ENDMETHOD. "HANDLE_MODIFY
ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION
DATA gt_event_receiver TYPE REF TO lcl_event_receiver .
*&---------------------------------------------------------------------*
gt_event-name = 'CALLER_EXIT'. "slis_ev_caller_exit_at_start事件调用来获取ALV对象并注册回车事件
gt_event-FORM = 'FM_BUTTON'.
APPEND gt_event .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
* i_callback_user_command = 'USER_COMMAND'
* i_grid_settings = gs_grid
is_layout_lvc = gs_layo
it_fieldcat_lvc = pt_fcat[]
it_events = gt_event[]
* it_event_exit = gt_event_exit[]
TABLES
t_outtab = pt_tab
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
*&---------------------------------------------------------------------*
FORM fm_button USING e_grid TYPE slis_data_caller_exit.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
* EXPORTING
* IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
* ET_EXCLUDING =
* E_REPID =
* E_CALLBACK_PROGRAM =
* E_CALLBACK_ROUTINE =
e_grid = ref_grid
* ET_FIELDCAT_LVC =
* ER_TRACE =
* E_FLG_NO_HTML =
* ES_LAYOUT_KKBLO =
* ES_SEL_HIDE =
* ET_EVENT_EXIT =
* ER_FORM_TOL =
* ER_FORM_EOL =
.
* CALL METHOD ref_grid->check_changed_data.
* 设置enter事件
CALL METHOD ref_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter
EXCEPTIONS
error = 1
OTHERS = 2.
CREATE OBJECT gt_event_receiver.
SET HANDLER gt_event_receiver->handle_modify FOR ref_grid.
ENDFORM. "FM_BUTTON
.
*&---------------------------------------------------------------------*
***************************************************************************************************************
***************************************************************************************************************
***************************************************************************************************************
完整代码,可执行
***************************************************************************************************************
***************************************************************************************************************
***************************************************************************************************************
*&---------------------------------------------------------------------*
*& Report ZFELIX_ALV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zfelix_alv.
TYPE-POOLS: slis.
DATA: gs_fcat TYPE lvc_s_fcat,
gt_fcat TYPE lvc_t_fcat,
gs_layo TYPE lvc_s_layo,
gs_grid TYPE lvc_s_glay.
DATA: gt_event TYPE slis_t_event WITH HEADER LINE,
gt_event_exit TYPE slis_t_event_exit WITH HEADER LINE.
DATA: ref_grid TYPE REF TO cl_gui_alv_grid..
DATA: BEGIN OF gt_itab OCCURS 0,
aa TYPE c,
bb TYPE i,
cc TYPE p,
style TYPE lvc_t_styl,
END OF gt_itab.
DATA: wa_itab LIKE gt_itab.
*----------------------------------------------------------------------*
* CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
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. "LCL_EVENT_RECEIVER DEFINITION
*----------------------------------------------------------------------*
* CLASS LCL_EVENT_RECEIVER IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_modify.
* PERFORM refresh.
DATA stbl TYPE lvc_s_stbl.
LOOP AT gt_itab INTO wa_itab.
wa_itab-cc = wa_itab-bb * 2 .
MODIFY gt_itab FROM wa_itab.
ENDLOOP.
* 稳定刷新
stbl-row = 'X'." 基于行的稳定刷新
stbl-col = 'X'." 基于列稳定刷新
CALL METHOD ref_grid->refresh_table_display
EXPORTING
is_stable = stbl.
ENDMETHOD. "HANDLE_MODIFY
ENDCLASS. "LCL_EVENT_RECEIVER IMPLEMENTATION
DATA gt_event_receiver TYPE REF TO lcl_event_receiver .
START-OF-SELECTION.
gt_itab-aa = 'aa'.
gt_itab-bb = 1.
gt_itab-cc = '1.2'.
APPEND gt_itab.
gt_itab-aa = 'aa'.
gt_itab-bb = 1.
gt_itab-cc = '1.2'.
APPEND gt_itab.
gt_itab-aa = 'aa'.
gt_itab-bb = 1.
gt_itab-cc = '1.2'.
APPEND gt_itab.
PERFORM display_data .
*&---------------------------------------------------------------------*
*& Form display_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM display_data .
PERFORM set_fcat.
PERFORM set_layout.
* gt_event-form = 'DATA_CHANGED'.
* gt_event-name = slis_ev_data_changed.
* APPEND gt_event.
* gt_event_exit-ucomm = 'ENTR'. "Enter = 'ENTR' & '/00' & ' '
* APPEND gt_event_exit.
* gt_event_exit-ucomm = '/00'.
* APPEND gt_event_exit.
*
* gt_event_exit-ucomm = ' '.
* APPEND gt_event_exit.
*
* gt_event_exit-ucomm = '&DATA_SAVE'.
* APPEND gt_event_exit.
*
* gt_event_exit-ucomm = '&F03'. "Back
* APPEND gt_event_exit.
* gt_event_exit-ucomm = '&F15'.
* APPEND gt_event_exit.
* gt_event_exit-ucomm = '&F12'.
* APPEND gt_event_exit .
PERFORM show_alv TABLES gt_fcat gt_itab[]
USING gs_layo.
ENDFORM. " DISPLAY_DATA
*&---------------------------------------------------------------------*
FORM set_fcat .
PERFORM csalv_set_fcat USING:
" 'Field' 'Text' 'Edit' 'Zero' 'Type' 'Qfieldname' 'Key' 'Hostspot' 'Emphasize' 'Checkbox'
'AA' 'AA' '' '' '' '' '' '' '' '',
'BB' 'BB' 'X' '' '' '' '' '' '' '',
'CC' 'CC' '' '' '' '' '' '' '' ''.
* 'DD' 'DD' 'X' '' '' '' '' 'X' '' 'X',
* 'EE' 'EE' '' '' '' '' '' '' '' 'X' .
ENDFORM. " SET_FCAT
*&---------------------------------------------------------------------*
FORM set_layout .
gs_layo-zebra = 'X'.
* gs_layout-stylefname = 'FIELD_STYLE'.
* gs_layo-CWIDTH_OPT = 'X'.
ENDFORM. " SET_LAYOUT
*&---------------------------------------------------------------------*
FORM csalv_set_fcat USING p_name
p_text
p_edit
p_zero
p_type
p_qfieldname
p_key
p_hotspot
p_emphasize
p_checkbox.
gs_fcat-fieldname = p_name.
* gs_fcat-reptext_l =
* gs_fcat-selddictxt =
gs_fcat-reptext = p_text.
gs_fcat-edit = p_edit.
gs_fcat-no_zero = p_zero.
gs_fcat-datatype = p_type.
gs_fcat-qfieldname = p_qfieldname.
gs_fcat-key = p_key.
gs_fcat-hotspot = p_hotspot.
gs_fcat-emphasize = p_emphasize.
gs_fcat-checkbox = p_checkbox.
APPEND gs_fcat TO gt_fcat.
ENDFORM. "csalv_set_fcat
*&---------------------------------------------------------------------*
FORM show_alv TABLES pt_fcat
pt_tab
USING ps_layout.
* gs_grid-edt_cll_cb = 'X'.
gt_event-name = 'CALLER_EXIT'. "slis_ev_caller_exit_at_start事件
gt_event-FORM = 'FM_BUTTON'.
APPEND gt_event .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
* i_callback_user_command = 'USER_COMMAND'
* i_grid_settings = gs_grid
is_layout_lvc = gs_layo
it_fieldcat_lvc = pt_fcat[]
it_events = gt_event[]
* it_event_exit = gt_event_exit[]
TABLES
t_outtab = pt_tab
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
ENDFORM. "csalv_set_fcat
*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_UCOMM text
* -->PS_SELFIELD text
*----------------------------------------------------------------------*
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&DATA_SAVE'.
WHEN ' ' .
WHEN OTHERS.
ENDCASE.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Form SET_PF_STATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->RT_EXTAB text
*----------------------------------------------------------------------*
FORM set_pf_status USING rt_extab TYPE slis_t_extab..
* SET PF-STATUS '100'.
ENDFORM. "SET_PF_STATUS
*&---------------------------------------------------------------------*
*& Form fm_button
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->E_GRID text
*----------------------------------------------------------------------*
FORM fm_button USING e_grid TYPE slis_data_caller_exit.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
* EXPORTING
* IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
* ET_EXCLUDING =
* E_REPID =
* E_CALLBACK_PROGRAM =
* E_CALLBACK_ROUTINE =
e_grid = ref_grid
* ET_FIELDCAT_LVC =
* ER_TRACE =
* E_FLG_NO_HTML =
* ES_LAYOUT_KKBLO =
* ES_SEL_HIDE =
* ET_EVENT_EXIT =
* ER_FORM_TOL =
* ER_FORM_EOL =
.
* CALL METHOD ref_grid->check_changed_data.
* 设置enter事件
CALL METHOD ref_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter
EXCEPTIONS
error = 1
OTHERS = 2.
CREATE OBJECT gt_event_receiver.
SET HANDLER gt_event_receiver->handle_modify FOR ref_grid.
ENDFORM. "FM_BUTTON
转载于:https://www.cnblogs.com/springzt/p/4371700.html
转载非原创:修改BB 的内容,回车后修改CC 的值相关推荐
- (淘宝无限适配)移动手机端rem布局详解(转载非原创)
https://www.cnblogs.com/well-nice/p/5509589.html (淘宝无限适配)手机端rem布局详解(转载非原创) 从网易与淘宝的font-size思考前端设计稿与工 ...
- 向程序输入数据12345M678并回车后,x的值为123,y的值为45.000000
int x; float y;scanf("%3d%f",&x,&y); 向程序输入数据:12345M678并回车后,x的值为123,y的值为45.000000 总 ...
- (淘宝无限适配)手机端rem布局详解(转载非原创)
从网易与淘宝的font-size思考前端设计稿与工作流 本文结合自己对网易与淘宝移动端首页html元素上的font-size这个属性的思考与学习,讨论html5设计稿尺寸以及前端与设计之间协作流程的问 ...
- 转载非原创-- 一个APP的前世和今生
(1)前言 从今天开始,我会用一个系列的小文写一个我在2010年底开始进行的一个旅游App产品的开发经历.这个产品现在还在苹果的软件商店里,Apple AppStore,他有近7000的下载量.绝大多 ...
- (淘宝无限适配)手机端rem布局详解(转载非原创) 1
从网易与淘宝的font-size思考前端设计稿与工作流 本文结合自己对网易与淘宝移动端首页html元素上的font-size这个属性的思考与学习,讨论html5设计稿尺寸以及前端与设计之间协作流程的问 ...
- linux修改程序文件内容,linux 批量修改文件内容
如果有批量修改文件内容的需求,可参考下面这些方法 1.批量查找某个目下文件的包含的内容,例如: # grep -rn或l "要找查找的文本" 路径或文件 rn表示匹配查找字符 ...
- bandizip修改压缩文件内容_如何修改压缩文件的编码?
使用系统自带的那个"发送到-压缩文件夹"?那么就是压缩为zip格式了.而这种格式,确实要考虑文件名编码的问题--你在日语系统下压缩,使用了本地编码Shift-JIS,显示正常的文件 ...
- webbrowser设置html内容,delphi 修改WebBrowser的内容
很多方法都可以修改WebBrowser的内容.比如说修改innerHTML.以流方式修改. 以流方式就不说了,网上很多代码.直接修改innerHTML的方法很简单,但是有个缺点,修改后没保存,最近在做 ...
- Keil MDK5中(1)汉字注释显示转向,字体显示朝左旋转90°(2)汉字注释显示为问号(3)按回车后光标缩进距离太大的解决办法
这是目录0.0 前言 第一个问题:汉字注释显示转向,字体显示朝左旋转90°解决办法: 第二个问题:注释中的汉字变成了问号,显示不出来,如下图所示: 第三个问题:按回车后光标缩进距离太大,如下图所示: ...
最新文章
- 【.NET Core项目实战-统一认证平台】第四章 网关篇-数据库存储配置(2)
- 最全面的linux信号量解析
- js将百度坐标转为wgs84
- (68)SPI工作模式有哪些?分为几种极性模式。
- PHP 大文件下载(方式3 支持断点续传)
- php清空session值_php注销session变量和销毁session详细分析
- Revit二次开发——一个简单的插件
- [Python黑帽] 二.Python能做什么攻击?正则表达式、网络爬虫和套接字通信入门
- 浙江工大学计算机学院保研,浙江工业大学计算机学院保研初试名单
- 从零开始学习node.js
- dlib实现人脸识别方法
- C语言—字符串函数和内存函数
- 启动时出现 r8169 0000:02:00.0: firmware: agent loaded rtl_nic/rtl8168e-3.fw into memory
- 手机端的日期选择的插件
- Java、JSP大阳电动车销售系统的设计与实现
- 用Rest assured作API自动化集成测试
- URL Extractor 4 for Mac(URL资源地址抓取器)特别版
- std::forward理解
- FICO 里面的替代和校验 以及调试
- Linux中命令行查找文件
热门文章
- Linux下如何实现用户的集中管理(NIS服务器的高级配置)
- vivado烧录flash过程
- Python作为目前的大势,有哪些优势?
- 美国本科计算机专业,美国本科计算机专业的最新排名介绍
- 分布式 java 应用:基础与实践_西研技术大讲堂第二期FRCS应用情况介绍及分布式技术平台能力应用实践...
- 无线ap软件_无线WLAN网络的优化技术
- 云计算的7种变化方式
- jfinal js 拦截_jfinal全局数据拦截器
- HDU2112(SPFA算法)
- java操作跨页的word cell,利用itext 生成pdf,处理cell 跨页问题 [转]