ABAP在ALV工具栏显示一个计时器
2017-06-29 08:43
330 查看
其实就是调用一个类,刷新不断ALV界面,下面是来自Sariel的一段代码: *&---------------------------------------------------------------------* |
*&---------------------------------------------------------------------*
TYPE-POOLS slis.
CLASS lcl_timer_receiver DEFINITION DEFERRED.
DATA: BEGIN OF gt_data OCCURS 0,
flag TYPE string,
END OF gt_data.
DATA: gv_text TYPE smp_dyntxt.
DATA: go_timer TYPE REF TO cl_gui_timer,
go_timer_event TYPE REF TO lcl_timer_receiver.
*----------------------------------------------------------------------*
* CLASS lcl_timer_receiver DEFINITION
*----------------------------------------------------------------------*
CLASS lcl_timer_receiver DEFINITION.
PUBLIC SECTION.
METHODS handle_finished FOR EVENT finished OF cl_gui_timer.
PRIVATE SECTION.
DATA: lv_mod TYPE i,
lv_int TYPE i,
lv_hh TYPE numc2,
lv_mm TYPE numc2,
lv_ss TYPE numc2.
ENDCLASS. "lcl_timer_receiver DEFINITION
*----------------------------------------------------------------------*
* CLASS lc_timer_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_timer_receiver IMPLEMENTATION.
METHOD handle_finished.
CALL METHOD go_timer->run.
lv_int = lv_int + 1.
lv_ss = lv_int MOD 60.
IF lv_int MOD 60 EQ 0.
lv_mm = lv_mm + 1.
lv_ss = 0.
ENDIF.
IF lv_int MOD 3600 EQ 0 .
lv_hh = lv_hh + 1.
lv_mm = 0.
lv_ss = 0.
ENDIF.
gv_text-text = lv_hh && ':' && lv_mm && ':' && lv_ss.
ENDMETHOD. "HANDLE_FINISHED
ENDCLASS. "lc_timer_receiver IMPLEMENTATION
*&---------------------------------------------------------------------*
*& Event INITIALIZATION
*&---------------------------------------------------------------------*
INITIALIZATION.
gv_text-text = '00:00:00'.
*&---------------------------------------------------------------------*
*& Event START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM frm_dsp_alv.
*&---------------------------------------------------------------------*
*& Form FRM_DSP_ALV
*&---------------------------------------------------------------------*
FORM frm_dsp_alv .
DATA: lt_fcat TYPE slis_t_fieldcat_alv,
ls_fcat TYPE slis_fieldcat_alv,
ls_layo TYPE slis_layout_alv,
lt_events TYPE slis_t_event,
ls_events TYPE slis_alv_event.
gt_data-flag = 'SAP顾问圈'.
APPEND gt_data.
gt_data-flag = 'bbs.sapclub.cc'.
APPEND gt_data.
ls_fcat-fieldname = ls_fcat-seltext_s = 'FLAG'.
APPEND ls_fcat TO lt_fcat.
ls_events-name = slis_ev_caller_exit_at_start. "= CALLER_EXIT
ls_events-form = slis_ev_caller_exit_at_start.
APPEND ls_events TO lt_events.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = slis_ev_pf_status_set "= PF_STATUS_SET
is_layout = ls_layo
it_fieldcat = lt_fcat
it_events = lt_events
TABLES
t_outtab = gt_data
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " FRM_DSP_ALV
*&---------------------------------------------------------------------*
*& Form CALLER_EXIT
*&---------------------------------------------------------------------*
FORM caller_exit USING u_exit TYPE slis_data_caller_exit.
CREATE OBJECT: go_timer, go_timer_event.
SET HANDLER go_timer_event->handle_finished FOR go_timer.
go_timer->interval = 1.
ENDFORM. "CALLER_EXIT
*&---------------------------------------------------------------------*
*& Form SET_PF_STATUS
*&---------------------------------------------------------------------*
FORM pf_status_set USING t_extab TYPE slis_t_extab.
CALL METHOD go_timer->run.
SET PF-STATUS 'PFLIST' EXCLUDING t_extab.
ENDFORM. " SET_PF_STATUS
ALV工具栏请注意:
1、复制标准工具栏请参考:ALV报表复制程序标准工具栏
2、一定要定义成动态功能文本,GV_TEXT
相关文章推荐
- 不显示删除回复显示所有回复显示星级回复显示得分回复 如何将工具栏按钮和菜单栏的选项关联起来执行同一个动作啊
- ABAP实践学习--灰色的ALV显示
- 【ABAP】ALV Tree demo(WBS元素分层显示)
- FCKeditor 工具栏不显示的一个可能性
- 一个显示图标的ABAP例子
- ABAP 屏幕容器ALV显示
- ABAP 类型导致ALV 报表筛选和导出到excel物料号显示不全
- ABAP多alv同时显示时的格式保存问题
- ABAP开发如何动态的实现任意表的ALV显示
- ABAP--如何将REUSE_ALV_GRID_DISPLAY的题头自适应居中显示
- ABAP中读取文本文件(TXT DOCUMENT)并用ALV显示
- ABAP中读取文本文件(TXT DOCUMENT)并用ALV显示
- SAP ABAP ALV(LVC)的一个自定义事件(F4帮助事件,回车ENTER按钮事件)的一个实例
- ABAP 动态的实现任意表的ALV显示
- 做一个计时器示例 在页面上有一个文本框和一个普通按钮 在状态栏上显示,单击按钮,开始计时的提示信息 单击按钮时,在文本框显示计数的过程,同时要求按钮上的字,显示为“单击暂停” 此时单击按钮,暂停计时,同时按钮上的字显示为“继续计时”,要求这两种状态来回切换,来完成计数器的功能
- ABAP--如何将REUSE_ALV_GRID_DISPLAY的题头自适应居中显示
- ABAP 动态的实现任意表的ALV显示
- 显示一个计时器
- ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW-(以运单号为单位显示ALV然后保存输出)
- 一个程序的ALV显示之后还可以进行数据操作。