abap实现进度条

 

 

系统函数 2008-08-01 10:33:19 阅读41 评论1   字号: 订阅

 

SAPGUI_PROGRESS_INDICATOR

帮助

 

功能:显示进度

  参数:

    Import:

      PERCENTAGE:进度的百分数,>0,<100.

      TEXT:文本

说明:在运行时间很长的程序中可以选择使用,这样保证了程序不会中止。当然也可以在rz10里面设置程序运行时间,不过比较麻烦。

使用实例1:显示进度

REPORT Z_DEMO1.

DATA: A LIKE SY-UCOMM. 

DO 100 TIMES.

  DO 300 TIMES.   “做个时间延迟

    GET TIME.

  ENDDO.

  A(3) = SY-INDEX.A+3 = '%'.  “取得进度的百分数

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

            PERCENTAGE = SY-INDEX

            TEXT       = A.

ENDDO.

使用实例2:显示滑动字符流

REPORT  Z_DEMO2                               .

DATA: MESSAGE(30) VALUE '   Waiting for an answer'.

DO 100 TIMES.

  DO 300 TIMES.

    GET TIME.

  ENDDO.

  SHIFT MESSAGE CIRCULAR RIGHT.

  CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

       EXPORTING

            PERCENTAGE = ''

            TEXT       = MESSAGE.

ENDDO.

 

小弟在做一个项目时用户提出程序运行时显示进度条的问题,加之本人以前也碰到这种需要求,所以按以前在WIN32下的编程经验,设计了一个进度条显示INCLUDE程序。这个程序可以显示条状进度条以及进度百份比,并可以显示注释,现将代码COPY如下:

*&---------------------------------------------------------------------*
*& Include ZSHOWMES *
*&---------------------------------------------------------------------*
*& Author : wuping *
*& Create Date : 2006-05-17 *
*& Program Type : Report *
*& SAP Release : 4.7C *
*& Description : 用来做信息类型 *
*&---------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*& Form. SCHEDULE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form. schedule using
c_message type c
i_percent type i.
data: c_sche(204).

if i_percent <= 0 or i_percent > 100 .
c_sche = '百分比错误!!!'.
else.
data: c_percent(4),
c_block(6) type c value '■■',
i_blocklen type i,
i_count type i,
i_col type i,
i_len type i,
i_temp type i value 0,
i_mod type i.
i_blocklen = strlen( c_block ).
c_percent = i_percent.
condense c_percent.
c_percent+3(1) = '%'.
c_sche = c_percent.
i_count = i_percent / 4.
do i_count times.
i_col = ( i_temp * i_blocklen ) + 4.
c_sche+i_col(i_blocklen) = c_block.
i_temp = i_temp + 1.
enddo.
i_len = strlen( c_message ).
i_mod = i_len mod 2.
if i_mod = 1.
i_len = i_len + 1.
endif.
if i_len > 0.
c_sche+4(i_len) = c_message.
endif.
i_len = strlen( c_sche ).
endif.
call function 'SAPGUI_PROGRESS_INDICATOR'
exporting
percentage = 0
text = c_sche
exceptions
others = 1.
endform. " SCHEDULE


以下是调用这个INCLUDE的示例程序:
*&---------------------------------------------------------------------*
*& Report ZTEMP_8 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*

report ztemp_8 .
include zshowmes.
data: i_prog type i,
i_prog2 type i.

START-OF-SELECTION.
do 100 times .
do 100000 times.
i_prog2 = i_prog2 + 1.
enddo.
i_prog = i_prog + 1.
write: / '第' no-gap , i_prog no-gap , '次运行:',i_prog2.
perform. schedule using '' i_prog. "调用上面的INCLUDE显示进度
enddo.

 

原文出自http://space.itpub.net/332542/spacelist-file

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值