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报表进度提示的主要内容,如果未能解决你的问题,请参考以下文章

ABAP 报表

ABAP笔记

ABAP高手请进

ABAP 取标准报表测试程序

ABAP开发ALV报表如何实现,选中一列或很多列的效果?

ABAP供应商进项税额查询报表开发