具备自动刷新功能的 SAP ABAP ALV 报表
生活随笔
收集整理的這篇文章主要介紹了
具备自动刷新功能的 SAP ABAP ALV 报表
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
該報(bào)表主要結(jié)構(gòu)如下,完整代碼見文末。
- f_call_rfc_wait: 發(fā)起異步調(diào)用,等待 1 秒鐘,來模擬每隔 1 秒刷新屏幕的效果。
- f_display_data: ALV 常規(guī)操作,調(diào)用函數(shù) REUSE_ALV_LIST_DISPLAY 顯示 ALV 數(shù)據(jù)。
- f_read_data: 調(diào)用函數(shù) THUSRINFO,返回的結(jié)果作為 ALV 的數(shù)據(jù)源。該函數(shù)返回當(dāng)前系統(tǒng)登錄的用戶名列表:
完整代碼:
REPORT ZALV_AUTO_REFRESH. 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 infoCALL FUNCTION 'THUSRINFO'TABLESusr_tabl = gt_user.* Wait in a taskPERFORM 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 Tablem_sort 'ZEIT'.* Build Event Exit Tablem_event_exit '&NTE'. " Refreshls_layout-zebra = 'X'.ls_layout-colwidth_optimize = 'X'.CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'EXPORTINGi_callback_program = sy-cprogi_callback_user_command = 'USER_COMMAND'is_layout = ls_layouti_structure_name = 'UINFO'it_sort = lt_sortit_event_exit = lt_event_exitTABLESt_outtab = gt_user.ENDFORM. " F_DISPLAY_DATA *---------------------------------------------------------------------* * FORM USER_COMMAND * *---------------------------------------------------------------------* FORM user_command USING i_ucomm TYPE syucommis_selfield TYPE slis_selfield. "#EC CALLEDCASE i_ucomm.WHEN '&NTE'.PERFORM f_read_data.is_selfield-refresh = 'X'.SET USER-COMMAND '&OPT'. " Optimize columns widthENDCASE.ENDFORM. " USER_COMMAND *---------------------------------------------------------------------* * Form F_CALL_RFC_WAIT *---------------------------------------------------------------------* FORM f_call_rfc_wait.DATA lv_mssg(80). "#EC NEEDED* Wait in a taskCALL FUNCTION 'RFC_PING_AND_WAIT' STARTING NEW TASK '001'PERFORMING f_task_end ON END OF TASKEXPORTINGseconds = 1 " Refresh timebusy_waiting = spaceEXCEPTIONSRESOURCE_FAILURE = 1communication_failure = 2 MESSAGE lv_mssgsystem_failure = 3 MESSAGE lv_mssgOTHERS = 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 resultsRECEIVE RESULTS FROM FUNCTION 'RFC_PING_AND_WAIT'EXCEPTIONSRESOURCE_FAILURE = 1communication_failure = 2 MESSAGE lv_mssgsystem_failure = 3 MESSAGE lv_mssgOTHERS = 4.CHECK sy-subrc EQ 0.SET USER-COMMAND '&NTE'. " RefreshENDFORM. " F_TASK_END *************** END OF PROGRAM Z_ALV_AUTO_REFRESH *********************更多Jerry的原創(chuàng)文章,盡在:“汪子熙”:
總結(jié)
以上是生活随笔為你收集整理的具备自动刷新功能的 SAP ABAP ALV 报表的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何使用 controllerExten
- 下一篇: ABAP 标准培训教程 BC400 学习