1.定义DATA
,TYPES
< !--[if
!supportLineBreakNewLine]-->
TYPES关键字用于创建自定义数据类型,就像JAVA里面创建类一样,用TYPES创建的数据类型可以被其它变量引用(类似于实例化对象),而本身不能直接引用或者赋值。
DATA关键字用于定义结构体,可以自定义结构体或者参考某一个自定义类型创建对象,我把它称为实例化对象。
< !--[endif]-->
之前看到别人这么说的:
TYPES: 定义的是取款机, 不能直接用以写入数据,还需再定义内表;另TYPES不用于定义单个变量,
DATA: 定义的是人民币,可以直接用以写入数据;单个变量一般用data 定义;
如 data:l_matnr,临时用来记录料号。
系统变量SY-INDEX与SY-TABIX是用来记录循环的次数或者索引的,
不同的是SY-INDEX在DO....ENDDO中是有效的,
而SY-TABIX在LOOP....ENDLOOP中及READ内表时获取相应的索引。
传递参数时将参数的地址(ADDRESS)传至子程序汇中,也就是子程序中的参数变量与外部程序的参数变量共享地主内的值。又叫CALL BY ADDRESS,若子程序中的参数变量的值发生了变化,那么,外部程序的实际变量的值也发生改变。
[Syntax]
FORM <subform> [USING <f1> <f2>...]
[CHANGING <fr1> <fr2>...]
PERFORM <subform> [USING
<f1> <f2>...] [CHANGING <fr1>
< fr2>...]
USING
之后跟随着不会发生变化的子程序参数,CHANGING后面的参数按引用传递,值会随着子程序内的变化而变化。
待续...
朋友们有类似知识的期待交流分享.
原文:http://www.cnblogs.com/rainysblog/p/3559339.html