前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SAP ABAP cl_gui_timer的用法

SAP ABAP cl_gui_timer的用法

作者头像
matinal
发布2023-10-13 14:34:58
1850
发布2023-10-13 14:34:58
举报
文章被收录于专栏:SAP TechnicalSAP Technical

直接上代码

代码语言:javascript
复制
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、复制标准工具栏请参考另一篇文章 2、一定要定义成动态功能文本,GV_TEXT 

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档