SAP系统中的报表,有时候会运行很久,几十分钟,甚至几个小时的都有。而User在等待的过程中并不知道报表运行到哪一步,甚至不知道报表是否已经断掉。如何让User直到报表运行的状态和进度呢?下面是SAP提供的一个函数,可以在运行过程中,在屏幕下方的状态栏上显示文本和百分比进度状态等。
Function group:SGUI (SAPgui interface)
Function Module: SAPGUI_PROGRESS_INDICATOR(Display progress indicatorin current window)
示例:
*&------------------------------------------------------------------*
*& Form SHOW_TIMER_BAR
*&------------------------------------------------------------------*
* --> P_TABIX
* --> P_RECORDS
* --> P_STRING
*-------------------------------------------------------------------*
FORM show_timer_bar USING p_tabix
p_records
p_string.
DATA: l_percent TYPE p DECIMALS 2,
l_str_status TYPE string,
l_str_tabix TYPE string,
l_str_records TYPE string.
IF p_tabix = 0 AND p_records = 0.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = '1'
text = p_string.
EXIT.
ENDIF.
CLEAR: l_percent, l_str_tabix, l_str_records, l_str_status.
IF p_records NE 0.
l_percent = ( p_tabix / p_records ) * 100.
ENDIF.
l_str_tabix = p_tabix.
l_str_records = p_records.
CONCATENATE p_string l_str_tabix '/' l_str_records
INTO l_str_status SEPARATED BY space.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
percentage = l_percent
text = l_str_status.
ENDFORM. "show_timer_bar