天天看點

abap動态進度條

*&---------------------------------------------------------------------*

*& Include ZSHOWMES *

*&---------------------------------------------------------------------*

*& Author : jackxiong

*& Create Date : 2009-09-28*

*& 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.

繼續閱讀