转:在ABAP中实现进度条的例子

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

小弟在做一个项目时用户提出程序运行时显示进度条的问题,加之本人以前也碰到这种需要求,所以按以前在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
* *----------------------------------------------------------------------*
form schedule using
c_message type c
i_percent type i.
data: c_sche(204).

if 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.
希望各位ABAP同仁能提出更好的实现方法

原文:http://www.itpub.net/570329.html
目录
相关文章
|
SQL 设计模式 前端开发
【置顶】SAP ABAP开发实战——从入门到精通系列目录
本文章为SAP ABAP开发实战——从入门到精通系列的目录以及关于该教程的后续写作计划表
3047 0
【置顶】SAP ABAP开发实战——从入门到精通系列目录
开发语言漫谈-ABAP
ABAP是SAP公司专门用于SAP软件环境的专门语言
|
BI
SAP ABAP在线预览文档对象的开发实现
应用场景:有些定制化开发(报表/功能增强等)完成之后,客户需要将其操作手册或者相关文档放在某个报表的初始画面,供实际操作者在线查阅,当然这个功能也同样类似于模板的下载,这里就以在线预览(直接打开)为例进行说明。
498 0
|
前端开发 JavaScript 数据库
如何使用 Restful ABAP Programming 编程模型开发一个支持增删改查的 Fiori 应用(二)
Restful ABAP Programming 编程模式是 ABAP 这门编程语言在不断向前进化的过程中,诞生的一门新的编程模型,简称为RAP模型。
354 0
如何使用 Restful ABAP Programming 编程模型开发一个支持增删改查的 Fiori 应用(二)
|
程序员 BI
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
abap开发function module时使用tables传递参数报错过时的解决方法
如下图,我写了一个Function Module我要在tables中添加一个参数TABLES参数已过时不管怎么点击保存按钮,一直报错,怎么办呢?不管是不是过时,狂点回车,就保存了
2015 0
ABAP开发基础知识:10)数据流控制
在SAP业务处理中,存在许许多多数据流,分别管控着不同的业务模式。下面介绍如何通过ABAP语法来实现数据流程管控。     1)使用IF语句实现分支       [Syntax]      IF .
1438 0
|
小程序
ABAP开发基础知识:11)子程序的建立与调用
ABAP子程序(Subrouting)是包含在程序中的一段具有一定功能的代码,能够将某个功能作为一个小程序包含在主程序中,以方便程序分析及阅读。特别是一此程序中多次用到的功能,可以简化代码,增加程序的可读性且便于维护。
1621 0
|
索引 机器学习/深度学习
ABAP开发基础知识:12)ABAP宏的应用
宏(Macros)是一段独立的代码,能实现数据的运算与输出,功能与子程序类似,主要应用于同一程序中某些重复的运算,以简化代码,其定义语法如下:        DEFINE INCREMENT.    "INCREMENT为自定义宏的名称。
1049 0
ABAP开发基础知识:1) ABAP基础程序类型(ABAP Elementary Data Types)
ABAP程序共包含8种基本数据类型定义,下表 数据类型名称 描述 属性 C Character Text(字符类型) 默认长度=1,默认值=blank,最大长度无限制 N Numeric Text(数字类型) 默认长度=1,默认值=“0.
1021 0