自动刷新ALV
转自http://blog.sina.com.cn/s/blog_701594f40100l8ms.html
ABAP:利用SAP定时器自动刷新ALV
曾于无意之中发现,SAP系统中有个名为CL_GUI_TIMER的类,测试下来发现还是挺好用的,比网上那些自动刷新的例子直观多了。这里我们就做个演示实例。
先做好准备工作:建立程序z04_gui_timer及其屏幕0100,屏幕上画个CUSTOM CONTAINER作为ALV的容器。顺便可以画个退出按钮用于退出界面,这样就省得SET PF-STATUS了。
下面就是我们的程序代码了,其实还是挺简单的:
REPORT z04_gui_timer.
CLASS lcl_event_handler DEFINITION DEFERRED.
DATA: ok_code LIKE sy-ucomm,
go_timer TYPE
REF TO cl_gui_timer,
go_evt_hndl TYPE REF TO
lcl_event_handler.
DATA: gt_spfli TYPE TABLE OF spfli,
go_grid
TYPE REF TO cl_gui_alv_grid,
go_container TYPE
REF TO cl_gui_custom_container.
START-OF-SELECTION.
CALL SCREEN 0100.
****** Module status_9000 OUTPUT
MODULE status_0100
OUTPUT.
DATA: g_init TYPE flag.
CLEAR ok_code.
IF
g_init IS INITIAL.
g_init = 'X'.
PERFORM init_0100.
ENDIF.
ENDMODULE.
" status_0100 OUTPUT
****** Module user_command_0100 INPUT
MODULE user_command_0100
INPUT.
CASE ok_code.
WHEN
'EXIT'.
LEAVE PROGRAM.
WHEN OTHERS.
ENDCASE.
ENDMODULE.
" user_command_0100 INPUT
****** CLASS lcl_event_handler DEFINITION
CLASS lcl_event_handler
DEFINITION.
PUBLIC SECTION.
METHODS:
handle_timer FOR EVENT finished OF
cl_gui_timer.
ENDCLASS.
"lcl_event_handler DEFINITION
****** CLASS lcl_event_handler IMPLEMENTATION
CLASS lcl_event_handler
IMPLEMENTATION.
METHOD handle_timer.
DELETE
gt_spfli INDEX 1.
CALL METHOD
go_grid->refresh_table_display.
* CALL METHOD
go_timer->cancel
*
EXCEPTIONS
* OTHERS =
9.
CALL METHOD go_timer->run
"必须重新激活定时器
EXCEPTIONS
OTHERS = 9.
ENDMETHOD.
"handle_timer
ENDCLASS.
"lcl_event_handler IMPLEMENTATION
****** Form init_0100
FORM init_0100.
SELECT * INTO TABLE
gt_spfli
FROM spfli UP TO 30 ROWS.
CREATE OBJECT
go_container
EXPORTING
container_name = 'CC_ALV'.
CREATE OBJECT go_grid
EXPORTING
i_parent = go_container.
CALL METHOD go_grid->set_table_for_first_display
EXPORTING
i_structure_name =
'SPFLI'
CHANGING
it_outtab = gt_spfli.
CREATE OBJECT go_evt_hndl.
CREATE OBJECT
go_timer
EXCEPTIONS
OTHERS = 9.
SET HANDLER go_evt_hndl->handle_timer FOR
go_timer.
go_timer->interval = 3. "设置间隔为3秒
CALL METHOD
go_timer->run
EXCEPTIONS
OTHERS =
9.
ENDFORM.
" init_0100
说明:
(1) lcl_event_handler是自定义的类,用于处理cl_gui_timer的EVENT ‘finished’;
(2) 定时器的用法与VC、DELPHI有所不同,上次定时事件处理完毕后,必须CALL METHOD
go_timer->run重新激活,如此循环;
(3) 定时器并不会自动触发PAI事件,如有必要则可以在handle_timer中CALL METHOD
cl_gui_cfw=>set_new_ok_code来触发;
(4) 虽然我们的例子是基于screen的,但是基于List也是完全可行的。
自动刷新ALV的更多相关文章
- 浏览器自动刷新——基于Nodejs的Gulp LiveReload与VisualStudio完美结合。
本文版权桂博客园和作者吴双共同所有,转载和爬虫请注明原文地址 http://www.cnblogs.com/tdws/p/6016055.html 写在前面 大家好我是博客园的蜗牛,博客园的蜗牛就是我 ...
- Sublime3和Chrome配置自动刷新网页【实测可用】
SublimeText2下的LiveReload在SublimeText3下无法正常使用,本文整理SublimeText3安装LiveReload的方法.win7下实测可用! 安装成功后,就不需要再手 ...
- gulp之压缩合并MD5清空替换加前缀以及自动编译自动刷新浏览器大全
gulp是基于流的前端构件化工具.目前比较火的前端构建化工具还是挺多的,grunt gulp fis3等等. 这个鬼东西有什么用?请参考https://www.zhihu.com/question/3 ...
- 更为简单的Ctrl+S自动刷新浏览器工具-LinrF5
一款自动刷新浏览器的小工具,它通过监听用户的按键,如果在键盘按下 Ctrl+S ,则自动刷新浏览器,操作十分简单,前端开发必备神器,快速提升工作效率,支持IE.火狐以及最新版的chrome33.之前我 ...
- SQL实现类似于自动刷新数据的功能
有时需要在SQL中,定时刷新某张表,比如说是要定时查询某张表的行数,通常做法就是手动的按F5去执行来刷新数据.但是如果这个定时查询历时较长,10分钟,或半小时,手动的话肯定是要崩溃了.貌似SQL没有像 ...
- Javascript实现页面加载完成后自动刷新一遍清除缓存文件
我们有些时候在加载页面时,会出现缓存文件对当前文件的表现效果有干扰,如有些缓存的样式文件会是页面效果发生改变,这时我们希望页面在加载时能自动刷新一遍清楚缓存文件. 但是由于跳转页面肯定会用到BOM部分 ...
- Notepad++自动刷新文本
现在的日志信息往往都是打印在硬盘上,而不是保存到线上,所以我们常常会使用notepad++来查看硬盘上的文本文件 这时往往会出现两个问题 (1)在notepad++长时间最小化后,再次打开会提示是否下 ...
- 简单配置webpack自动刷新浏览器
文档地址 http://webpack.github.io/docs/usage.html 首先全局安装webpack(我这里使用的是淘宝的cnpm) cnpm install webpack 检查 ...
- gruntJs篇之connect+watch自动刷新
grunt很强大,可以帮我我们解决很多繁琐的操作,虽然刚接触不久,但依然感受到其强大之处,这篇记录一下通过grunt.js实现事实刷新页面, 省去了编码 -> 保存 -> F5..F5.. ...
随机推荐
- 可以用WMI来获取磁盘及分区编号
{$APPTYPE CONSOLE} uses SysUtils, ActiveX, ComObj, Variants; function ListDrives : string; var FSWbe ...
- 【C语言学习】-05 二维数组、字符串数组、多维数组
⼆二维数组.字符串数组.多维数组
- SharePoint 2013 开发——获取用户配置文件属性内容(User Profile)
博客地址:http://blog.csdn.net/FoxDave 本篇我们应用SharePoint CSOM(.NET)来读取用户配置文件的信息,个人开始逐渐倾向于客户端模型,因为不用远程登录到 ...
- 移动设备和SharePoint 2013 - 第1部分:概述
博客地址:http://blog.csdn.net/foxdave 原文地址 在该系列文章中,作者展示了SharePoint 2013最显著的新功能概观--对移动设备的支持. 该系列文章: 移动设备和 ...
- SharePoint表单和工作流 - Nintex篇(一)
博客地址 http://blog.csdn.net/foxdave 本篇开始我将带大家去认识一个第三方的表单工作流工具--Nintex. 本篇将对该工具做一些简单的介绍. Nintex公司成立于200 ...
- Javascript计数器
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...
- C/C++整数除法以及保留小数位的问题
题目描述 Given two postive integers A and B, please calculate the maximum integer C that C*B≤A, and the ...
- hdu 2045
Ps:上课的时候用iPad做的...没有调试..一次AC机.就是简单的递推... 代码: #include "stdio.h"#include "math.h" ...
- 自己搭建Wifi Pineapple Mark V
创业搞得自己很累,不过一切都是值得的.抽空写下文章,确实好久未更新了. 前段时间由于项目需要,所以就折腾了下wifi pineapple.时间间隔有点久,根据回忆记录下. 淘宝货:TP-Link TL ...
- php大力力 [015节]兄弟连高洛峰php教程(土豆网栏目地址)
兄弟连高洛峰php教程 兄弟连高洛峰php教程(土豆网栏目地址) [2014]兄弟连高洛峰 PHP教程1.1.1 新版视频形式介绍 [2014]兄弟连高洛峰 PHP教程1.1.2 BS结构软件类型介绍 ...