如果LOOP的数据量较多,或计算时间较长,可以加入LOOP条目进度显示功能,让用户等待时可以看到计算进度。
注意,如果LOOP中有CONTINUE跳出的,建议在未跳出条件下才执行show_progressbar,避免增加无谓的执行时间。
*显示LOOP条目进度*
data:s_n type c length 20, s_i type c length 20 , t_msg type char80.
s_n = lines( gt_mkpf_mseg ). condense s_n.
LOOP AT.
s_i = SY-TABIX. condense s_i.
CONCATENATE '正在汇总信息........' s_i '/' s_n into t_msg .
PERFORM show_progressbar USING 70 t_msg.
ENDLOOP.
* 查询状态显示函数*
* PERFORM show_progressbar USING 10 '正在查询物料入库信息........'.
FORM show_progressbar USING upct TYPE i text TYPE char80.
cl_progress_indicator=>progress_indicate(
EXPORTING
i_text = | { upct }% { text } |
i_processed = upct
i_total = 100
i_output_immediately = abap_true
).
ENDFORM.