*---------------------------------------------------------------------*
* 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
本文介绍了一个ABAP编程语言中实现进度条显示的具体示例。通过定义静态变量和局部变量来跟踪进度,并使用SAPGUI_PROGRESS_INDICATOR函数进行更新。此外,还提供了两种形式的子例程用于直接输出文本或带有百分比的进度消息。
681

被折叠的 条评论
为什么被折叠?



