在ABAP/4中参数的传递可分成
1. Call By Reference:
传参数时将资料的存放地址(address)传至参数中, 也就是子程序中的参数变量与外部实际变量共享地址内的值, 又称为 Call By Address, 若在子程序中地址中的值改变了, 外部实际变量的值也会跟着改变.
语法:
PERFORM <subr> [USING <f1> <f2>…] [CHANGING <f1>…]
FORM <subr> [USING <f1> <f2>…] [CHANGING <f1>…]
Using 之后接在子程序中不会改变的变量, CHANGING接会改变值的变量
但实际上USING之后的参数在子程序中也可将值改变
Example:
SUM = 0.
NUM1 = 100. NUM2=200.
PERFORM ADD
USING NUM1 NUM2 CHANGING SUM.
WRITE: / NUM1,NUM2,SUM “SUM 由 0 变成 300
FORM ADD
USING NUM1 NUM2 CHANGING SUM.
SUM = NUM1 + NUM2.
ENDFORM.
执行结果: 100 200 300
2. Call By Value
传参数时将数据的值复制一份至另一地址中, 所以在子程序中参数变量值改变, 并不会影响外部实际变量的值.
语法:
PERFORM <subr> USING <f1>
FORM <subr> USING VALUE(<f1>…)
使用 VALUE(<f1>)表示 <f1>是 Call By Value的传递
Example:
SUM = 0.
NUM1 = 5.
PERFORM MULTI
USING NUM1 CHANGING SUM.
WRITE: / NUM1,SUM “NUM1值还是5, SUM 由 0 变成 120
FORM MULTI
USING VALUE(NUM1) CHANGING SUM.
SUM = 1.
WHILE NUM1 > 1
SUM = SUM * NUM1.
NUM1 = NUM1 – 1.
ENDWHILE.
ENDFORM.
执行结果: 5 120
3. Call By Value and Return Result
传入参数值的方式同Call By Value, 但在子程序结束执行时会将传入的参数值复制一份传回给外部实际变量.
语法:
PERFORM …. CHANGING …. <f1>
FORM ….. CHANGING VALUE(<f1>)
Example:
SUM = 0.
NUM1 = 100. NUM2=200.
PERFORM ADD
USING NUM1 NUM2 CHANGING SUM.
WRITE: / NUM1,NUM2,SUM “SUM 由 0 变成 300
FORM ADD
USING NUM1 NUM2 CHANGING VALUE(S).
S = NUM1 + NUM2.
WRITE: / NUM1,NUM2,SUM “得到结果为 100 200 0
ENDFORM.
执行结果: 100 200 0 “在子程序中 SUM值尚未改变
100 200 300 “返回程序时, 将变量 S的值复制给 SUM
“所以 SUM值变成 300
分享到:
相关推荐
### ABAP简单递归算法解析 #### 一、引言 ABAP(Advanced Business ...通过上述分析,我们不仅了解了递归算法的工作机制,也熟悉了ABAP中递归函数的实现方法,这对于进一步学习和应用ABAP编程具有重要意义。
- **ABAP Dictionary 定义**:学习如何定义和使用 ABAP 字典中的数据元素、结构、表格类型等。 - **更新 ABAP Dictionary 透明表的操作**:掌握如何更新 ABAP Dictionary 中的透明表,并了解其应用场景。 通过这些...
在 ABAP 中,可以使用 TYPES 和 DATA 语句定义内表。内表是一种数据结构,可以存储大量数据。下面是定义内表的示例代码: ```ABAP TYPES: BEGIN OF TY_ITAB, YEAR_MONTH LIKE ZSDFL_ALL-YEAR_MONTH, "结算期间 ...
在ABAP中,可以使用`DESCRIBE TABLE`命令来获取内表的结构和大小信息。此命令通常用于在运行时动态地确定表的类型和其他特性。 **示例代码**: ```abap DATA: MTYPEN. DESCRIBE TABLE i_qals LINES M. ``` **解释**...
- **文件对话框**:使用`CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG`方法打开文件保存对话框,让用户选择文件保存的位置和名称。 - **文件下载**:通过`CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'`函数从文件服务器上...
(其中 USING 可换成 CHANGING) ``` #### 十一、其他实用工具 - **输出下划线**: ```abap ULINE. // 输出下划线。 ``` - **错误查看**: ```abap ST22. // 打开错误日志查看器。 ``` - **程序打包发布**: ...
根据给定的信息,本文...通过上述ABAP程序的介绍,我们可以看到,即使是在没有安装Solution Manager的情况下,也能通过编写简单的ABAP程序来生成所需的Solution Manager Key,这极大地简化了SAP系统安装和配置的过程。
通过上述分析可以看出,这份文件覆盖了ABAP编程中的多个关键知识点,包括循环结构、数据类型定义、控制流、字符串操作、变量赋值与函数调用、系统架构、内存管理和参数传递以及全局数据管理等方面。对于准备参加ABAP...
子程序可以通过`USING`、`CHANGING`或`VALUE`关键字来传递参数,以控制数据的传递方式。 - **值调用**:在调用时创建参数副本,子程序中的更改不会影响原始参数。 - **值和结果调用**:类似于值调用,但在正常...
5. 配置输入(import)、输出(export)、更改(changing)参数和表格长度(tablelen)。 6. 在源代码视图中编写功能模块的代码。 7. 完成编码后,激活功能模块并进行调试。 8. 调用功能模块时,使用CALL FUNCTION...
### SAP SLM KEY生成程序详解 ...对于SAP系统的安装和维护来说,掌握SLM KEY的生成方法是非常重要的。此外,通过对SLM KEY的理解和使用,还可以帮助BASIS顾问更好地管理整个SAP系统环境,确保系统的稳定运行。
- **Using Boxes, Lines, and Shading**:使用边框、线条和阴影来增强视觉效果的方法。 #### 四、SAP Script 控制命令 控制命令是SAP Script中用于控制打印输出流程的关键指令,主要包括以下几类: ##### 1. ...
为了更好地理解SAPscript的实际应用,可以参考文档中的完整示例,该示例详细展示了如何使用SAPscript创建一个实际的报表,并运用上述提到的各种技术和命令。 通过以上介绍,我们可以看出SAPscript提供了丰富的工具...
### SAP BAPI:构建与应用详解 #### 一、引言 在SAP系统中,BAPI(Business API)作为一...这种基于BAPI的方法使得SAP系统与其他外部系统之间的集成变得简单而高效。希望本指南能帮助您更好地理解和应用SAP BAPI技术。