ABAP:利用SAP定时器自动刷新LIST
来源:互联网 发布:方鸿渐和小姐 知乎 编辑:程序博客网 时间:2024/05/12 11:39
上篇文章(利用SAP定时器自动刷新ALV)中介绍了类cl_gui_timer的使用,这里继续使用该类来演示对LIST的自动刷新,以与网上通行的使用函数RFC_PING_AND_WAIT的刷新方法作个对比。
代码如下,需要说明的是,由于cl_gui_timer是SAPGUI的一个控件,必须使用CALL METHOD cl_gui_cfw=>set_new_ok_code来触发USER-COMMAND事件,而不是SET USER-COMMAND语句,大家不妨试下。
REPORT z04_gui_timer.
CLASS lcl_event_handler DEFINITION DEFERRED.
DATA: go_timer TYPE REF TO cl_gui_timer,
go_evt_hndl TYPE REF TO lcl_event_handler,
gt_spfli TYPE TABLE OF spfli WITH HEADER LINE.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
SELECT * INTO TABLE gt_spfli
FROM spfli UP TO 30 ROWS.
DATA: go_timer TYPE REF TO cl_gui_timer,
go_evt_hndl TYPE REF TO lcl_event_handler,
gt_spfli TYPE TABLE OF spfli WITH HEADER LINE.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
SELECT * INTO TABLE gt_spfli
FROM spfli UP TO 30 ROWS.
PERFORM list_output.
PERFORM init_timer.
*&---------------------------------------------------------------------*
*& USER-COMMAND
*&---------------------------------------------------------------------*
AT USER-COMMAND.
IF sy-ucomm = 'RFSH'.
sy-lsind = sy-lsind - 1.
PERFORM list_output.
ENDIF.
*&---------------------------------------------------------------------*
*& Form LIST_OUTPUT
*&---------------------------------------------------------------------*
FORM list_output.
DATA: ls_spfli LIKE LINE OF gt_spfli.
NEW-PAGE WITH-TITLE LINE-SIZE 60.
WRITE: /5 'CARRID', AT 30 'CONNID'.
LOOP AT gt_spfli.
WRITE: / gt_spfli-carrid UNDER 'CARRID',
gt_spfli-connid UNDER 'CONNID'.
ENDLOOP.
ENDFORM. " LIST_OUTPUT
*&---------------------------------------------------------------------*
*& 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.
PERFORM init_timer.
*&---------------------------------------------------------------------*
*& USER-COMMAND
*&---------------------------------------------------------------------*
AT USER-COMMAND.
IF sy-ucomm = 'RFSH'.
sy-lsind = sy-lsind - 1.
PERFORM list_output.
ENDIF.
*&---------------------------------------------------------------------*
*& Form LIST_OUTPUT
*&---------------------------------------------------------------------*
FORM list_output.
DATA: ls_spfli LIKE LINE OF gt_spfli.
NEW-PAGE WITH-TITLE LINE-SIZE 60.
WRITE: /5 'CARRID', AT 30 'CONNID'.
LOOP AT gt_spfli.
WRITE: / gt_spfli-carrid UNDER 'CARRID',
gt_spfli-connid UNDER 'CONNID'.
ENDLOOP.
ENDFORM. " LIST_OUTPUT
*&---------------------------------------------------------------------*
*& 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.
* SET USER-COMMAND 'RFSH'.
CALL METHOD cl_gui_cfw=>set_new_ok_code
EXPORTING
new_code = 'RFSH'.
CALL METHOD go_timer->run "必须重新激活定时器
EXCEPTIONS
OTHERS = 9.
ENDMETHOD. "handle_timer
ENDCLASS. "lcl_event_handler IMPLEMENTATION
*&---------------------------------------------------------------------*
*& Form INIT_TIMER
*&---------------------------------------------------------------------*
FORM init_timer.
CALL METHOD cl_gui_cfw=>set_new_ok_code
EXPORTING
new_code = 'RFSH'.
CALL METHOD go_timer->run "必须重新激活定时器
EXCEPTIONS
OTHERS = 9.
ENDMETHOD. "handle_timer
ENDCLASS. "lcl_event_handler IMPLEMENTATION
*&---------------------------------------------------------------------*
*& Form INIT_TIMER
*&---------------------------------------------------------------------*
FORM init_timer.
CHECK go_timer IS INITIAL.
CREATE OBJECT go_timer
EXCEPTIONS
OTHERS = 9.
CREATE OBJECT go_evt_hndl.
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_TIMER
CREATE OBJECT go_timer
EXCEPTIONS
OTHERS = 9.
CREATE OBJECT go_evt_hndl.
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_TIMER
- ABAP:利用SAP定时器自动刷新LIST
- ABAP:利用SAP定时器自动刷新LIST
- ABAP:利用SAP定时器自动刷新ALV
- ABAP:利用SAP定时器自动刷新ALV
- ABAP:利用SAP定时器自动刷新ALV
- ABAP Function RFC_PING_AND_WAIT 定时器 自动刷新
- ABAP--利用客户端定时器制作自动刷新数据报表代码样例
- ABAP--在SAP中设计自动刷新的报表代码
- ABAP--在SAP中设计自动刷新的报表代码
- ABAP--在SAP中设计自动刷新的报表代码
- ABAP--在SAP中设计自动刷新的报表代码
- ABAP实现自动刷新
- sap abap alv画面项目编辑设值之后,自动刷新编辑值到alv画面
- ABAP自动刷新ALV列表
- SAP ABAP exporting list to memory
- sap 如何利用记事本DEBUG abap程序
- SAP ABAP SQL 自动查询工具
- SAP ABAP编程 ALV--按钮响应与刷新
- POJ 1703 并查集
- Delphi的内存管理及内存泄露问题
- kmalloc详解
- ABAP算法:找出递归的物料
- cat /proc/meminfo
- ABAP:利用SAP定时器自动刷新LIST
- 在WPF中读写config配置文件
- Direct3D win32框架(显示每秒帧率)
- ABAP:利用SAP定时器自动刷新ALV
- HTML <frameset> 标签的使用
- 很多浮云,实质的很少
- SAP中的文档维护
- Android 支持的媒体格式(音频,视频,图片)
- SEO初学者需要了解的相关知识