复叶
ABAP总结-转载,好全啊
后续本⼈添加:
事件流(6个):
INITIALIZATION(初始化)
AT SELECTION-SCREEN(屏幕跳出前)
START-OF-SELECTION(取数据)
END-OF-SELECTION(展⽰数据)
TOP-OF-PAGE(普通报表输出页头)
END-OF-PAGE(普通报表输出页尾)
(来⾃互联⽹)
1. 引⽤类型z_ref数据对象myref在程序中的声明⽅式:
DATA myref TYPE z_ref.
CREATE DATA myref TYPE z_ref.
2. 参照数据字典中的表类型⽣成内表对象或结构体:
DATA mytable TYPE z_table,”数据字典表类型,声明内表.
myline TYPE LINE OF z_table.”表类型的⾏结构,声明结构体.
3. 取系统⽇期:SY-DATUM,
4. 取系统时间:SY-UZEIT.0
5. 系统字段定位:SY-FDPOS.字符⽐较结果为真时,此字段将给出偏移量信息.
6. 系统字段SY-FDPOS给出字符的位置信息.(P109)
鹿的简笔画7. 系统字段SY-INDEX记录循环语句中的循环次数
8. 操作内表⾏结束后系统字段SY-TABIX返回该⾏索引.对于所有⾏操作,如果操作成功,系统变量SY-SUBRC返回0,否则返回⾮0值.
9. 系统⽤户名:SY-UNAME.
企业游戏
10. SY-HOST?屏幕序号:sy-dynnr.
11. OK代码:SY-UCOMM或SYST-UCOMM
12. 屏幕组ID:SY-DYNGR.
13. 常量声明:CONSTANT const(len) TYPE type|LIKE dobj [DECIMALS dec] [VALUE val].
14. 确定数据对象属性:DESCRIBE FIELD f [LENGTH l] [TYPE t [CONPONENTS n]] [OUTPUT-LENGTH o] [DECIMALS d] [EDIT MASK m] [HELP-ID h].
15. 数据赋值:MOVE source TO destination.或destination = source.
16. 设定初始值:CLEAR F.
17. 检查字段是否为初始值:f IS INITIAL….
18. 检查字段是否被分配:fs IS ASSIGNED…..
19. 检查过程中的参数是否被实参填充:p IS [SUPPLIED|REQUESTED]….
20. 检查数据对象的值是否属于某范围之间:f1 BETWEEN f2 AND f3…..
21. 检查数据对象f的内容是否遵从某个选择表的逻辑条件:f in ltab….
22. WRITE: /10 g,”在10个空格后输出变量g
/(8) time using edit mask ‘__:__:__’.”输出的变量time保持8位的长度.
23. 将光标移动到下⼀⾏:SKIP.
24. 强制结束循环:EXIT,STOP或REJECT.
25. 循环的中⽌:CONTINUE⽆条件中⽌当前循环并开始下⼀轮循环,CHECK条件为真时循环,为假时结束本次循环并开始下⼀轮循
环,EXIT⽆条件中⽌并退出整个循环.
26. 将字符串左移:SHIFT string.
27. 连接字符串:CONCATENATE s1 s2 …..sn INTO s_dest [SEPARATED BY p].如果结果出现被截断的情况,将SY-SUBRC返
回4,否则返回0.符号&⽤于在字字符串换⾏时的连接.
28. 根据分隔符p拆分字符串:SPLIT s_source AT p INTO s1 s2 ……sn.使⽤内表操作可以避免被截断的情况:SPLIT s_source AT p INTO TABLE itab.此语句根据⼦串数⽬⽣成n⾏的内表.
29. 循环输出内表的每⼀⾏数据:LOOP AT itab INTO text.ENDLOOP.
30. 替换字段内容:REPLACE str1 WITH str2 INTO s_dest [LENGTH len]. 字段SY-SUBRC的返回值为0时表⽰⼰成功替换.
31. 确定字段长度:[COMPUTE] n = STRLEN( str ).
32. 删除字符串中的多余空格:CONDENSE
33. 字符转换,如将ABC转换为abc:TRANSLATE
34. 创建⼀个可以排序的格式:CONVERT TEXT.
严肃英文35. ⽤⼀个字符串覆盖另⼀个字符串:OVERLAY
36. WRITE TO赋值时将忽略数据对象的类型,⽽将其视为字符类型数据.
37. 字符串⽐较中的换码字符:#,⽤于转换⽐较时使⽤的通配符:*或+.及进⾏区分⼤⼩写,空格的⽐较,如#A表⽰⽐较⼤写的A.
38. 定位操作⼦串:strName[+0][(1)].强迫症的危害
39. 字段符号,数据引⽤:动态数据对象.
40. ⼦过程定义:FORM subroutine_name USING parameters1 parameters2…. ….ENDFORM.
41. ⼦程序调⽤:PERFORM subroutine_name USING actual_parameters1 p2…. (其中USING可换成CHANGING)
42. ULINE.输出下划线.
43. 错误查看:ST22
44. 程序打包relea:SE01:找到对应的程序,点开后点上⾯⼩汽车,再选中上⾯的后再点⼩汽车.点check.程序修改后需要重新打包.
45. 制作T-CODE:SE93,TCODE应按顺序编号:ZMF+流⽔号,我的程序名
46. 创建table:t-code:11,attributes:Delivery class:C.开发类别:ZFI,当⾃定义Field type时,名称需为Z+…..格式.->设置技术属
性(Technical Setting):Logical storage parameters中Data class:APPL1,Size category:4à创建function group:SE80,创建好后将创建的TABLE挂接到function grouph上去:⽤11查出table,点utilites->table maintenance generator:Authorization
groups:&NC&,Function group中填刚才创建的功能组名称->one step->overview screen中必须填未使⽤的number,此处screen number与table是⼀⼀对应的关系,也可让点系统上⾯的按钮:find screen number来⾃动搜索适合的scr. Number.->create,成功后,找到对应的function group中的screen number双击即可看到⽣成的代码.需要修改域名可在function group中的element list或layout中.--
>93创建t-code,start object选transaction with parameters(parameter transaction)->default values for->transantion:SM30->Default Values->name of screen field:viewname\update,value:table name\X.
47. field-sign:,field—option:,field-low:表⽰选择条件中起始值
长城的形容词48. 在where⼦句中如果只有⼀个表的话,可以不⽤指定表名.
49. 获取⽤户IP地址及⽤户名:
call function 'TH_USER_INFO' " Get ur IP,hostname
importing
hostaddr = iporg”转化前的IP地址
terminal = host”计算机名
exceptions
others = 1.
"Conv.IP addr to format 'x'
印尼面积
call function 'ZGJ_IPADR2STRING' "Conv.IP addr
exporting
ipadr = iporg”转化前的IP地址
importing
右脸长痘痘
string = ipdec.”转化后的最终需要的IP地址
50.删除内表中数据完全相同的⾏,只保留⼀⾏: delete adjacent duplicates from itab1 COMPARING <f1> <f2> / COMPARING ALL FIELDS.
51. spro:后台设定
52. 输出选择框write:/ itab1-flag as checkbox
第四章 ABAP基础
4.1.5 程序运⾏
1.程序内部调⽤,如下表:
功能报表调⽤语句事务调⽤语句
⽆返回调⽤SUBMIT LEAVE TO TRANSACTION
调⽤并返回SUBMIT AND RETURN CALL TRANSACTION
例:
REPORT z_calling_program.
START-OF-PROGRAM.
WRITE ‘This program calls another program.’.”此内容在输出界⾯看不到
SUBMIT z_simple_program.”上⾯的输出被此程序覆盖.
如果改⽤SUBMIT AND RETURN来调⽤则可以输出以上内容.
2.结束程序:LEAVE PROGRAM.可在任意点强制结束当前运⾏的程序.
4.1.6 内存管理
SAP程序同⼀个⽤户和系统可进⾏最多6个SAPGUI主会话.
4.2.1 数据定义
TYPES:BEGIN OF t_staff,
S_no(3) type n,
Name(20),
END OF t_staff.
DATA staff TYPE t_staff.
上例中定义了⼀个结构类型t_staff,并根据其声明了⼀个结构体对象staff.
数据类型中的扁平结构与纵深结构:
扁平类型:运⾏时长度固定的类型.
纵深类型:运⾏时长度可峦的类型.
4.2.2 ABAP内置基本数据类型:
数据
默认⼤⼩有效⼤⼩初始值说明⽰例类型
C11-65535SPACE⽂本字符(串)‘name’
N11-65535’00…0’数字⽂本‘0123’
T66‘000000’时间(HHMMSS)‘123010’
D88‘00000000’⽇期(YYYYMMDD)‘20080101’
I440整型(整数)99
F880浮点数5E+04
P81-160压缩数12.91
X11-65535X‘0’⼗六进制数‘3A’
String1⽆限定SPACE字符串(长度可峦)‘A String’
XString1⽆限定SPACE⼗六进制字符串‘A3FF’
注意:
1.其中C,N,T,D,I,F,P,X为定长类型,即在运⾏期间长度不能改变.
2.类型T,D,I,F的数据存储长度是固定的,不能指定参照其⽣成的数据对象占⽤的内存字节数.
3.基于类型C,N,P,X⽣成的数据对象需要在声明时指定其长度.否则取默认值.
4.如果在声明⼀个数据对象时未指明其数据类型,则该数据默认为C类型.
5.类型I的数值范围:-231到231-1的整数.如果运算时出现⾮整型结果则进⾏四舍五⼊取值.⽽不是截断⼩数.
6.类型P⽤于声明⼩数字固定的压缩数,其占据内存字节数和数值范围取决于定义时指定的整个数据的⼤⼩和⼩数点后位数,如果不指定⼩数字,则将其视为I类型数据.有效⼤⼩可以是从1~16字节的任意值,⼩数点后最多允许14个数字.
7,类型F为浮点数,浮点意思是数字在内存中以字节形式表⽰,数值范围:1*10-307到1*10308,因系统将F类型转换为⼆进制数,所以可能出现舍⼊误差,若⽤户要求较⾼精度且数值较⼤时,应使⽤P类型数据.
8.长度可峦的内置类型String, XString是通过引⽤实际动态的数据对象的固定内存地址来操作.
4.2.3 程序内部数据定义
参照⾃定义类型或内置类型⽣成数据的语法格式:
TYPES|DATA …TYPE l_type…
参照程序中已经声明的数据对象⽣成新数据语法:
TYPES|DATA …LIKE dobj…
3.结构类型和结构体
参照结构类型⽣成的数据对象称为结构体.
TYPES|DATA:BEGIN OF structure.
k1 [TYPE type |LIKE dobj]…,
k2 [TYPE type |LIKE dobj]…,
…
k n [TYPE type |LIKE dobj]…,