ABAP报表进度提示
Posted SAP剑客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP报表进度提示相关的知识,希望对你有一定的参考价值。
报表进度提示
有些报表逻辑处理比较复杂,查询处理会占用一些时间,用户建议做个进度提示,可以看到进行到哪个环节了,比如我们常用的MB5B报表就有类似的功能。
主要逻辑就是划分功能块,按流程显示进度。另外一种情况就是列表进度,可以让用户看到总记录数及当前处理到第几条。
【核心代码】
METHOD SAPGUI_PROGRESS.
DATA: LV_TEXT TYPE CHAR80,
LV_PER(3) TYPE N,
LV_CURRENT TYPE CHAR10,
LV_TOTAL TYPE CHAR10.
IF PERCENTAGE IS NOT INITIAL OR TEXT IS NOT INITIAL.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = PERCENTAGE
TEXT = TEXT.
ELSEIF CURRENT IS NOT INITIAL AND TOTAL IS NOT INITIAL .
LV_PER = CURRENT / TOTAL.
LV_CURRENT = CURRENT.CONDENSE LV_CURRENT.
LV_TOTAL = TOTAL. CONDENSE LV_TOTAL.
CONCATENATE LV_CURRENT '/' LV_TOTAL TEXT-003 INTO LV_TEXT SEPARATED BY SPACE.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = LV_PER
TEXT = LV_TEXT.
ENDIF.
ENDMETHOD.
*** 功能块进度提示
SAPGUI_PROGRESS( TEXT = ’读取数据A...’ ).
SAPGUI_PROGRESS( TEXT = ’读取数据B...’ ).
*** 列表处理进度提示
DATA: LV_CURRENT TYPE I,
LV_TOTAL TYPE I.
LV_TOTAL = LINES( GT_ITAB ).
LOOP AT GT_ITAB ASSIGNING <itab>.
LV_CURRENT = SY-TABIX.
SAPGUI_PROGRESS( CURRENT = LV_CURRENT TOTAL = LV_TOTAL ).
ENDLOOP.
以上是关于ABAP报表进度提示的主要内容,如果未能解决你的问题,请参考以下文章