zoukankan      html  css  js  c++  java
  • 在SAP中设计自动刷新的报表代码 (又一例)

    REPORT z_alv_auto_refresh.
    *>*********************************************************************
    * This report displays User's info (SM04) using the FM :              *
    * REUSE_ALV_LIST_DISPLAY                                              *
    * The list is auto-refreshed (refresh time : 5 seconds)               *
    *---------------------------------------------------------------------*

    TYPE-POOLS: slis.                      " ALV Global Types

    DATA :
      gt_user LIKE uinfo OCCURS 0 WITH HEADER LINE. " User info in SM04

    *---------------------------------------------------------------------*
    START-OF-SELECTION.

      PERFORM f_read_data.

      PERFORM f_display_data.

    *---------------------------------------------------------------------*
    *       Form  F_LIRE_DATA
    *---------------------------------------------------------------------*
    FORM f_read_data.

      REFRESH gt_user.

    * Get User's info
      CALL FUNCTION 'THUSRINFO'
           TABLES
                usr_tabl = gt_user.

    * Wait in a task
      PERFORM f_call_rfc_wait.

    ENDFORM.                               " F_READ_DATA
    *---------------------------------------------------------------------*
    *      Form  F_DISPLAY_DATA
    *---------------------------------------------------------------------*
    FORM f_display_data.

      DEFINE m_sort.
        add 1 to ls_sort-spos.
        ls_sort-fieldname = &1.
        append ls_sort to lt_sort.
      END-OF-DEFINITION.

      DEFINE m_event_exit.
        clear ls_event_exit.
        ls_event_exit-ucomm = &1.
        ls_event_exit-after = 'X'.
        append ls_event_exit to lt_event_exit.
      END-OF-DEFINITION.

      DATA :
        ls_layout     TYPE slis_layout_alv,
        lt_sort       TYPE slis_t_sortinfo_alv,
        ls_sort       TYPE slis_sortinfo_alv,
        lt_event_exit TYPE slis_t_event_exit,
        ls_event_exit TYPE slis_event_exit.

    * Build Sort Table
      m_sort 'ZEIT'.

    * Build Event Exit Table
      m_event_exit '&NTE'.                 " Refresh

      ls_layout-zebra = 'X'.
      ls_layout-colwidth_optimize = 'X'.

      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
           EXPORTING
                i_callback_program      = sy-cprog
                i_callback_user_command = 'USER_COMMAND'
                is_layout               = ls_layout
                i_structure_name        = 'UINFO'
                it_sort                 = lt_sort
                it_event_exit           = lt_event_exit
           TABLES
                t_outtab                = gt_user.

    ENDFORM.                               " F_DISPLAY_DATA
    *---------------------------------------------------------------------*
    *       FORM USER_COMMAND                                             *
    *---------------------------------------------------------------------*
    FORM user_command USING i_ucomm     TYPE syucomm
                            is_selfield TYPE slis_selfield.     "#EC CALLED

      CASE i_ucomm.
        WHEN '&NTE'.
          PERFORM f_read_data.
          is_selfield-refresh = 'X'.
          SET USER-COMMAND '&OPT'.         " Optimize columns width
      ENDCASE.

    ENDFORM.                               " USER_COMMAND
    *---------------------------------------------------------------------*
    *      Form  F_CALL_RFC_WAIT
    *---------------------------------------------------------------------*
    FORM f_call_rfc_wait.

      DATA lv_mssg(80).                                         "#EC NEEDED

    * Wait in a task
      CALL FUNCTION 'RFC_PING_AND_WAIT' STARTING NEW TASK '001'
        PERFORMING f_task_end ON END OF TASK
        EXPORTING
          seconds               = 5        " Refresh time
          busy_waiting          = space
        EXCEPTIONS
          RESOURCE_FAILURE      = 1
          communication_failure = 2  MESSAGE lv_mssg
          system_failure        = 3  MESSAGE lv_mssg
          OTHERS                = 4.

    ENDFORM.                               " F_CALL_RFC_WAIT
    *---------------------------------------------------------------------*
    *      Form  F_TASK_END
    *---------------------------------------------------------------------*
    FORM f_task_end USING u_taskname.

      DATA lv_mssg(80).                                         "#EC NEEDED

    * Receiving task results
      RECEIVE RESULTS FROM FUNCTION 'RFC_PING_AND_WAIT'
        EXCEPTIONS
          RESOURCE_FAILURE      = 1
          communication_failure = 2  MESSAGE lv_mssg
          system_failure        = 3  MESSAGE lv_mssg
          OTHERS                = 4.

      CHECK sy-subrc EQ 0.
      SET USER-COMMAND '&NTE'.             " Refresh

    ENDFORM.                               " F_TASK_END
    *************** END OF PROGRAM Z_ALV_AUTO_REFRESH ********************* 

    相关连接:http://blog.csdn.net/CompassButton/archive/2006/09/09/1198709.aspx
    来源:http://www.sap-basis-abap.com/abap/auto-refresh-alv-list.htm

  • 相关阅读:
    2019 春第1次课程设计实验报告
    2019春第十二周作业
    2019春第十一周作业
    2019春第十周作业
    关于Vmvare虚拟机中Linux系统不能全屏的问题
    My algorithmic road
    段错误
    python人生如初见之初见yield
    网络爬虫requests-bs4-re-1
    The First Python man in Github
  • 原文地址:https://www.cnblogs.com/xiaomaohai/p/6157444.html
Copyright © 2011-2022 走看看