abap的子程序参数 USING 和 CHANGING 使用问题
1、参数引用传递(Parameters Passed byReference)
使用USING或CHANGING不带value关键字来声明参数引用传递。代码样例:
FORM subrUSING p1[{TYPE type}|{LIKE field}]
p2 [{TYPE type}|{LIKE field}]
...
CHANGING p1 [{TYPE type}|{LIKE field}]
p2 [{TYPE type}|{LIKE field}]
...
在引用传递的方式,参数不在堆中占有内存,传入的是变量的地址,在子程序中对变量的修改实际上是对实际参数的修改。在这种方式using和changing是等价的。
2、输入参数传值传递(Input Parameters That PassValues)
使用USING带value关键字来声明输入参数传值传递。代码样例:
FORM subrUSING value(p1) [{TYPE type}|{LIKE field}]
value(p2) [{TYPE type}|{LIKE field}]
...
在输入参数传值传递的方式,参数在堆中占有内存,传入的是变量的值,在子程序中对变量的修改不会对实际参数的造成修改。
3、输出参数传值传递(Output Parameters That PassValues)
使用CHANGING带value关键字来声明输入参数传值传递。代码样例:
FORM subrCHANGING value(p1) [{TYPE type}|{LIKE field}]
value(p2) [{TYPE type}|{LIKE field}]
...
在输出参数传值传递的方式,形式参数在堆中占有内存,传入的是变量的值,在子程序中对变量的修改只有正常结束(Endform,CHECK,EXIT等语句结束)时才会有形式参数拷贝到对实际参数,如果是错误消息退出则不会影响实际参数。
abap的子程序参数 USING 和 CHANGING 使用问题相关推荐
- ABAP中 PERFORM USING与CHANGING的用法
ABAP中FORM参数的传递有以下几种方式. 1.引用传递(CALL BY REFERENCE) 传递参数时将参数的地址(ADDRESS)传至子程序中,也就是子程序中的参数变量与外部程序的参数变量共享 ...
- ABAP的子程序参数注意点
1.参数引用传递(Parameters Passed by Reference) 使用USING或CHANGING不带value关键字来声明参数引用传递.代码样例: FORM subr USING ...
- ABAP中USING与CHANGING的用法
在ABAP/4中参数的传递可分成 1. Call By Reference: 传参数时将资料的存放地址(address)传至参数中, 也就是子程序中的参数变量与外部实际变量共享地址内的值, 又称为 ...
- ABAP using与changing超详解 传值 技巧 使用习惯
PERFORM 提示:运用PERFORM 子程序,常用的是USING CHANGING, 用来传值,涉及到传值的变化,但还有些两个一起用,这里作出细致的解释 文章目录 PERFORM 前言 一.关于U ...
- ABAP 关键字(1)
1.定义DATA ,TYPES TYPES关键字用于创建自定义数据类型,就像JAVA里面创建类一样,用TYPES创建的数据类型可以被其它变量引用(类似于实例化对象),而本身不能直接引用或者赋值. DA ...
- 使用ABAP编程实现对微软Office Word文档的操作
SAP ABAP里提供了一个标准的类CL_DOCX_DOCUMENT,提供了本地以".docx"结尾的微软Office word文档的读和写操作. 本文介绍了ABAP类CL_DOC ...
- ABAP实现粘贴板的操作,复制粘贴
ABAP可以实现复制粘贴的操作 自己玩儿 项目里暂时用不到 在ABAP中的 CLASS :CL_GUI_FRONTEND_SERVICES中提供了两个方法来控制与剪贴板内容的导入导出, 分别是:CLI ...
- ABAP:ALV List报表
ALV List是SAP中的一种报表方式,一般的ALV报表有一个表头,再加上表内容.对报表的设置有排序,分类汇总和合计等预设置. ALV报表显示方式有2种,一种是Grid方式,一种是List方式,分别 ...
- 【ABAP】 屏幕图片显示Demo
在ABAP屏幕容器中显示图片用到的类是"CL_GUI_PICTURE",下面则以一个简单的小例子说明其用法,个人学习收藏使用,不代表任何意义. [效果图] [样例代码] REPOR ...
最新文章
- 怎么控制table的大小java_如何查询Table占用空间的大小
- 服务器如何删除所有磁盘信息,关于怎样删除EFI分区,简单省事,很多换下来的硬盘都有这个分区...
- tensorflow笔记
- [转]memset用法详解
- Loadrunner通过ssh连接linux进行hadoop基准测试
- 并发编程之多进程3 (生产者与消费者模型) 回调函数
- SAP BRF+ ruleset里维护多条rule,每条rule逐一执行
- 《那些年啊,那些事——一个程序员的奋斗史》——122
- Manjaro oh-my-zsh安装配置
- Linux查看磁盘块大小
- kafka 消费者API操作入门
- 数字货币交易系统_区块链交易所开发,数字货币平台功能与安全
- 《暗黑破坏神2》关于d2loader的使用说明
- python人狗大战游戏_6.5 人狗大战.py
- java对redis的基本操作 - edisonfeng
- android 图片闪光动画_闪烁android图片
- 用python绘制高光谱图像的光谱曲线图
- IEEE 802.15介绍
- ath9k驱动内的数据发送过程
- 发散性测试用例设计题
热门文章
- 代表中国为世界做出探索,杭州城市大脑获IDC亚太区智慧城市大奖
- 实际部署遇到的一些问题
- 《易学C++(第2版)》——1.10 习题
- C++一维数组和指针的关系总结
- iOS个人中心渐变动画、微信对话框、标签选择器、自定义导航栏、短信验证输入框等源码...
- The application server could not be contacted
- Linux深入理解Socket异常
- day41——多进程的消息队列、消息队列pipe
- 【云上ELK系列】Logstash迁移Elasticsearch数据方法解读
- Linux系统安装中文环境,中文帮助,中文输入法的实现