AS400调用程序时如何传递数字参数

作者:公众号 约 5 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

**问题**

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

**提问** :AS400 调用RPG程序时,数字参数如何传送?

首先,简单介绍一下AS400和RPG。

AS/400( iSeries) 是当今世界上最流行的中小型、多用户商业计算机系统,在多用户服务器领域里,始终保持着最畅销的地位。AS/400

在全球的装机量已超过 75 万套,覆盖 150 多个国家,支持 40 多种语言,有近 1 万个商业伙伴和独立软件商, 3

万多个商业应用。广泛应用于流通、金融证券、制造、运输,安防等各个行业。

RPG (Report program generator报表程序生成器)

IBM的AS/400小型机上的高级语言(REPORT PROGRAM GENERATOR),程序运行效率很高,是AS/400(

iSeries)操作系统上非常流行的编程语言。RPG IV(也称为ILE RPG)是RPG的最新版本,它是一种为AS400

RPG程序员提供高度启用编程环境的工具。

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

**答案**

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

AS400 调用RPG程序时,数字参数都是以P类型传送。

数据类型:压缩十进制(P)

有效长度:1-31位数字

占有的存贮字节数:(数字的个数/2)+1(取整)

※系统执行算术操作时,使用压缩十进制效率高,占用空间小。

设程序 TESTPGMA 有参数 PARM1, PARM2

**传递参数为奇数** :

1\. PARM1 (9P 0) = 1234, PARM2(9P 2) = 56.78

传递方式:CALL TESTPGMA PARM( X'000001234F' X'000005678F')

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

实行结果:

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

2\. PARM1 (9P 0) = -3456, PARM2(9P 2) = -77.88

传递方式:CALL TESTPGMA PARM( X'000003456B' X'000007788B')

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

实行结果:

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

**传递参数为偶数** :

3\. PARM1 (8P 0) = 9876, PARM2(8P 2) = 11.22

传递方式:CALL TESTPGMA PARM( X'F00009876F' X'F00001122F')

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

实行结果:

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

4\. PARM1 (8P 0) = -5566, PARM2(8P 2) = -33.44

传递方式:CALL TESTPGMA PARM( X'F00005566B' X'F00003344B')

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

实行结果:

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

**总结** :对于P类型的参数,需要在字符串前加 X。如果长度为奇数,字符串后缀加 F ;如果长度为偶数,字符串的前后缀都加

F。如果传递参数是负数,字符串后缀应由F变为B。(X表示按16进制取值,由于P类型的数据存储方式是半个字节存储一个数字,所以需要在前后加其它的字母补齐空位。)

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

【END】

AS400调用程序时如何传递数字参数 - 封面图
AS400调用程序时如何传递数字参数 - 封面图

作者:蒋林杰

审核:梁 超

编辑:王 锐

公众号

关于作者:公众号

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「AS400调用程序时如何传递数字参数.md」整理生成,仅用于内部技术分享与学习交流。