abap实现进度条

    技术2022-05-20  49

     

    操作服务器端文件

     

    sap and ftp

    系统函数 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 usingc_message type ci_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'exportingpercentage = 0text = c_scheexceptionsothers = 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)