fjptec-xm 发表于 2015-9-18 01:10:35

在 SAP GUI 的状态栏显示进度条

  SAP 标准的进度指示是通过调用函数模块 SAPGUI_PROGRESS_INDICATOR 实现的,表现为一个运行的时钟加上说明文字,但是有些用户认为时钟不好看,希望使用传统的 Windows 进度条,下面程序就是用字符模拟的进度条。不过本人认为,这个进度条还不如时钟好看 :-P。

  注意,由于模拟字符属于 Unicode 字符集,因此本程序只能在 Unicode 系统中显示进度条,在非 Unicode 系统中,这些字符都会显示成“#”。
  显示进度的程序基本封装在一个子程序里,您也可以自己把它封装到函数模块中,还可以添加其它用户消息。
  



Code
*&---------------------------------------------------------------------*
*& ReportZPROGRESSBAR
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORTzprogressbar.
DO 100 TIMES.
PERFORM show_progressbar USING sy-index.
WAIT UP TO 1 SECONDS.
ENDDO.
MESSAGE 'Finished!'(fin) TYPE 'S'.
*&---------------------------------------------------------------------*
*&      Formshow_progressbar
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PCT      text
*----------------------------------------------------------------------*
FORM show_progressbar USING upct TYPE i.
DATA: fbar TYPE c LENGTH 13,
      fmsg TYPE c LENGTH 70.
CONSTANTS: percent1 TYPE c VALUE '▏',
             percent2 TYPE c VALUE '▎',
             percent3 TYPE c VALUE '▍',
             percent4 TYPE c VALUE '▌',
             percent5 TYPE c VALUE '▋',
             percent6 TYPE c VALUE '▊',
             percent7 TYPE c VALUE '▉',
             percent8 TYPE c VALUE '█'.
DATA: fmod TYPE n,
      ftim TYPE i,
      ffield TYPE c LENGTH 10,
      fidx TYPE c LENGTH 3.
FIELD-SYMBOLS: <fs> TYPE c.
ftim = upct DIV 8.
fmod = upct MOD 8.
CLEAR: fbar.
DO ftim TIMES.
    CONCATENATE fbar percent8 INTO fbar.
ENDDO.
IF fmod NE 0.
    CONCATENATE 'percent' fmod INTO ffield.
    ASSIGN (ffield) TO <fs>.
    CONCATENATE fbar <fs> INTO fbar.
ENDIF.
fidx = sy-index.
CONCATENATE fbar fidx '%' INTO fmsg.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
    EXPORTING
      percentage = upct
      text       = fmsg.
.
ENDFORM.                  "show_progressbar
页: [1]
查看完整版本: 在 SAP GUI 的状态栏显示进度条