ABAP程序的基本结构:
程序类型:
executable programs: 1, Module pools: M; Function groups: F, Class pools: K, Interface pools: J, Subroutine pools: S, Type groups: 无, Include programs: I
程序元素中的"文本元素"可以在程序初始界面中输入程序名称后选择Text elements项编辑,也可以在程序源码编辑中在菜单中选Goto->Text elements -> Text Symbols
sap内存管理:
程序相互调用可以采用:
_________________________________
功能 报表调用语句 事务调用语句
无返回调用 Submit Leave to Transaction
调用并返回 Submit and Return Call Transaction _________________________________
那么程序之间数据的传递:
1.每一个会话都有一个自己的ABAP内存,可以通过Export To Memory和Import To Memory语句在该内存的程序堆栈之间进行数据传递.
2.每一个客户端有一个sap内存区域,数据可以在各个会话之间传递.可以采用Set Parameter和Get Parameter语句访问SAP内存中存储的SPA/GPA参数.
程序中的数据对象:
long_sentence = 'This is ' &
'a very long ' &
CONSTANT: const(len) TYPE type|LIKE dobj [DECIMALS dec] [VALUE val].
系统日期sy-datum, 系统时间: sy-uzeit.
在程序运行期间内,有时需要查明数据对象的数据类型,长度等技术参数,可以采用DESCRIBE得到
DESCRIBE FIELD f [LENGTH l] [TYPE t] [OUTPUT-LENGTH o] [DECIMALS d] [EDIT MASK m] [HELP-ID h].
数值运算:
类似于Move-Corresponding,可以使两个结构体的同名字段之间可以整体进行算术运算.Add-Corresponding, Subtract-Corresponding, Multiply-Corresponding, Divide-Corresponding.
数学函数ABS, SIGN, TRUNC, FRAC, CEIL, FLOOR, COS, SIN, TAN, ACOS, ASIN, ATAN, COSH, SINH, TANH, EXP, LOG, LOG10, SQRT
基本输出格式:
WRITE, ULINE, FORMAT, SKIP
逻辑表达:
在ABAP中,除了一般的逻辑表达运算符外还有专门的表达运算符如CO, CN等用来判断两个字符型操作数之间的种种包含关系是否成立.比较结束后返回逻辑值,同时系统字段sy-fdpos还给出位置信息.
IS操作, f IS INITIAL字段是否为初始值,f IS ASSIGNED字段符号是否被分配,IS [SUPPLIED|REQUESTED]参数是否被实参填充
f1 BETWEEN f2 AND f3
f IN seltab 采用DATA seltab LIKE RANGE OF f或SELECT-OPTIONS seltab FOR f生成选择表.
采用一般的逻辑表达比较内表时,主要比较内表的包含的函数,行数月多内表就越大.
结构控制语句:
循环控制中DO语句采用EXIT, STOP, REJECT语句强制结束循环,而WHILE用EXIT,sy-index记录每个循环的循环次数.CONTINUE无条件终止当前循环,CHECK有条件终止当前循环,EXIT无条件终止循环.
字符数据操作:
CONCATENATE s1 ... sn INTO s_dest [SEPARATED BY sep]
SPLIT s_source AT sep INTO s1 ... sn
SPLIT s_source AT sep INTO TABLE itab,采用内表来将分隔的结果存入内表中.
SEARCH c FOR str. str搜索str并忽略尾部空格,.str.搜索str但不忽略尾部空格,*str搜索以str结尾的单词. sy-fdpos返回查找到的位置,如果不成功sy-subrc为4,sy-fdpos为0.
REPLACE str1 WITH str2 INTO s_dest [LENGTH len]
STRLEN( str )字符串str长度.
SHIFT 将字符串整体或字串进行位移
CONDENSE删除字符串多余的空格
TRANSLATE字符大小写转换
CONVERT TEXT创建一个可以排序的格式
OVERLAY用一个字符串覆盖另一个字符串
字符数据比较:
_________________________________
运算符 含义
s1 CO s2 如果s1仅包含s2中的字符,为真
s1 CN s2 如果s1还包含s2中的字符,为真
s1 CA s2 如果s1包含s2中任何一个字符,为真
s1 NA s2 如果s1不包含s2中任何一个字符,为真
s1 CS s2 如果s1包含s2,为真
s1 NS s2 如果s1不包含s2,为真
s1 CP s2 如果s1包含模式s2,为真
s1 NP s2 如果s1不包含模式s2,为真
_________________________________
模式字符串中可以使用通配符"+","*", 和转码字符"#"
定位字符串可以采用s[+o][(l)],o为偏移量,l为长度,