*---------------------------------------------------------------------*
* FORM PROGRESS_INDICATOR *
*---------------------------------------------------------------------*
form progress_indicator
using value(v_text) type c "输出文本
value(v_processed) like sy-tabix "处理计数
value(v_total) like sy-tabix "总计数
value(v_new) type c.
statics: s_time_next like sy-uzeit,
s_date_next like sy-datum.
data: l_percentage type i,
l_text(72) type c.
get time.
if v_new is initial.
check s_date_next < sy-datum
or s_date_next = sy-datum and s_time_next <= sy-uzeit.
endif.
l_percentage = ( v_processed * 100 ) div v_total.
if l_percentage > 0.
write l_percentage to l_text.
condense l_text.
concatenate l_text '%' into l_text.
condense l_text.
endif.
concatenate l_text v_text into l_text separated by space.
condense l_text.
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
percentage = l_percentage
text = l_text.
s_date_next = sy-datum.
s_time_next = sy-uzeit + 10.
if s_time_next < sy-uzeit.
add 1 to s_date_next.
endif.
endform. "PROGRESS_INDICATOR
*----------------------------------------------------------------------*
* Form WRITE_SAPGUI_TEXT
*----------------------------------------------------------------------*
* write a progress message on the GUI
*----------------------------------------------------------------------*
FORM write_sapgui_text USING p_text.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = p_text.
ENDFORM. " WRITE_SAPGUI_TEXT
*----------------------------------------------------------------------*
* Form WRITE_SAPGUI_PERC
*----------------------------------------------------------------------*
* write a progress message on the GUI
*----------------------------------------------------------------------*
FORM write_sapgui_perc USING p_text p_perc.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = p_text
percentage = p_perc.
ENDFORM. " WRITE_SAPGUI_PERC