Reort中的底部进度条实现


*&---------------------------------------------------------------------*
*&      Form  F_SET_INDICATOR_PROC
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PV_PCT     Had been processed Percent
*      -->PV_TEXT    INDICATOR TEXT
*      -->PV_TABIN   The lines need to be processed
*----------------------------------------------------------------------*
FORM F_SET_INDICATOR_PROC USING PV_PCT    TYPE ANY
                                PV_TEXT   TYPE ANY
                                PV_TABIN  TYPE ANY.
  DATA : LV_INDEX(30),
         LV_KBETR(30),
         LV_TABIN(30),
         LV_KBETR_P0(16) TYPE P,                 "progress percent
         LV_KBETR_P(16)  TYPE P DECIMALS 2,      "progress percent
         LV_PCEN(5),
         LV_TEXT(100),
         LV_PRINDEX      TYPE I.

  IF PV_PCT IS INITIAL.
    LV_PRINDEX = LV_PRINDEX + 1.
    IF NOT PV_TABIN IS INITIAL.
      LV_KBETR_P = ( LV_PRINDEX / PV_TABIN ) * 100.
    ENDIF.

    IF LV_KBETR_P <> '10.00'  AND
       LV_KBETR_P <> '20.00'  AND
       LV_KBETR_P <> '30.00'  AND
       LV_KBETR_P <> '40.00'  AND
       LV_KBETR_P <> '50.00'  AND
       LV_KBETR_P <> '60.00'  AND
       LV_KBETR_P <> '70.00'  AND
       LV_KBETR_P <> '80.00'  AND
       LV_KBETR_P <> '90.00'  AND
       LV_KBETR_P <> '100.00'.

*>> At first,Print 1%
      IF LV_PRINDEX > 1.
        EXIT.
      ENDIF.
    ENDIF.

    LV_INDEX = LV_PRINDEX.

*>> Print decimal point
    IF LV_PRINDEX > 1.
      LV_KBETR_P0 = LV_KBETR_P.
      LV_KBETR = LV_KBETR_P0.
    ELSEIF LV_PRINDEX = 1.
      LV_KBETR = LV_PRINDEX.
    ENDIF.

    LV_TABIN = PV_TABIN.
    CONDENSE : LV_INDEX, LV_KBETR, LV_TABIN.

    IF PV_TEXT IS INITIAL.
      CONCATENATE LV_INDEX '/' LV_TABIN '=====>' LV_KBETR TEXT-001
             INTO LV_TEXT SEPARATED BY SPACE.
    ELSE.
      CONCATENATE LV_INDEX '/' LV_TABIN '=====>' LV_KBETR PV_TEXT
             INTO LV_TEXT SEPARATED BY SPACE.
    ENDIF.

    CONDENSE LV_KBETR.
    LV_PCEN = LV_KBETR.
  ELSE.
    LV_TEXT = PV_TEXT.
    LV_PCEN = PV_PCT.
  ENDIF.

*-- Display indicator
  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      PERCENTAGE = LV_PCEN
      TEXT       = LV_TEXT.


ENDFORM.                    " F_SET_INDICATOR_PROC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值