ABAP学习笔记-jlzhu
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ABAP 数据类型
内置数据类型,abap内置数据类型是指SAP运行时系统提供给程序的数据类型,它们在SAP内核中定义,可以直接使用.
文本类型
C类型
Data v1 (10) type c. 声明长度为10的字符串
Data v2 (1)type c.
Data v2 type c. 1位是默认的,什么都不写也是1
Data v2. C是默认的数据类型什么都不写也是 type c.
以上三条语句一样的效果
v 1 = ‘ abc’. “进行赋值
N类型
和C类型类似,但是只能存储数字,比如员工号码,手机号码,房间号,主要用于不能进行运算的数字
Data v1 (10)type n. “声明长度为10的数字”
V1 = ‘####1
数字类型
小数字符要用’’包围
V2 = ‘2 . 3’.
日期类型d, 是一个8位的字符串 YYYYMMDD
时间类型t,是一个6位字符串 HHMMSS
Data v1 type d.
Data v2 type t.
V1 = ‘20151231’
V2 = ‘153001’
这些内置类型只要分为两类:C,N,T,D,I,F,P,X定义的对象长度在运行期间不能改变,因此这八种类型称为定长类型。而String , Xstring生成的数据对象其长度无需指定,且在程序运行过程中可以随意改变,因而称为长度可变的数据类型. C,N,P,X 四种数据类型需要在程序里编码指定其长度,而T,D,I,F 不能也不需要指定长度,其使用的就是其默认长度. C,N,T,D 通称为字符类型,有类似的操作处理。
如果程序里不声明具体的类型,那么系统默认的类型是C
如: data: g_type.
那么g_type就被定义为长度是1的 c 类型变量.
I,P,F 通称为数值类型,均可用于算数运算。
I 类型可用于计数器,索引值等。
自定义数据类型
abap中使用types 语句定义数据类型,使用data语句声明变量,
一般自定义数据类型用ty开头。
系统内置数据对象
基本都是SY开头,有上百个.
输出字符串
data : v1 (20) type c.
data : v2 (10) type c.
v1 = ‘ 12345667’
v2 = ‘9876543’
write : v1 , v2 .
这里 V1 定义了长度20 所以 12345667后面跟了补全的空格
他是根据你定义的数据长度显示输出的,不是自动调整输出长度的。
输出日期类型
Currency 是按照哪个国家的货币输出,一般currency跟的是变量,很少用USD RMB之类的
输出换行
这里面的 at 21(20)的意思就是从第21个位置输出20个字符
Uline 是横线,vline是竖线
Sy-uline 是下横线 sy-vline右边的竖线
输出图标去SE80里面的edit----pattern
结构体
结构是一种数据类型(structure type)
结构包含若干个字段(field),每个字段都有自己的数据类型
用结构类型声明的数据对象,叫结构体(Structure),也叫工作区(Work Area)
结构体可以作为一个数据对象整体使用,每个字段也分别是一个数据对象,可以用-连接结构体和字段的名字。
结构体一般用?s_name命名,例如
--全局结构体 gs_name
--局部结构体 ls_name
--接口变量结构体 is_name
结构体与内表区别
两者是相互独立的,内表是你在REPORT中使用时放你自己的数据用的。结构体(structure)只是有栏位,或者理解成表头,是不会存具体内容的。
定义与使用结构体
右上角的图为当结构体只使用一次的时候可以考虑这么定义。
通常使用左上角的图自定义结构体
两种方法都可以达到目的。
结构体自定义方法由begin of 开始,END OF结束。
s_name_type为结构体名称。
结构体的赋值
可以通过三种方式对结构体赋值;
直接赋值:数据类型相同可以直接赋值,数据类型不同会产生意外情况。
第二种方法,用字段赋值;可以直接操作结构下面的字段,当作普通的数据对象赋值。
第三种赋值,SAP特有的
同名称字段赋值:只检测字段名称是否相同,不检测数据类型。
Move-corresponding可以把结构名称相同的赋值。它只能解析第一层下级,第二层解析不到
结构体的嵌套
结构的字段,不一定是简单的数据对象,也可以是结构,甚至可以是内表,使用嵌套的结构,可以描述我们常见的各种业务对象。
对于不存在嵌套情况的结构体,我们称为“扁平结构”(flat structure),最常见的扁平结构就是表格。
嵌套的结构,用多层次的“-”符号,访问字段内容。
使用字段名称匹配赋值时,只对结构的直接下属字段起作用,对更深层次的字段不起作用,名称匹配时要确保同名字段数据类型相同(否则会发生意外错误)。
结构体嵌套语法;
结构体的包含
包含和嵌套有什么区别,嵌套是一个层级的关系,一层套一层,而包含没有,
当你想用嵌套结构,但是由于一些原因用不了的时候,比如把数据存在表里的时候。
你必须得保证他是个扁平结构,不能是那种深层次的嵌套。这时候就要用包含。
一个结构体,可以“包含”另一个结构体的字段,包含进来的字段也是这个结构体的直接下级字段。
包含进来结构体后,原来的结构体仍然是扁平结构体。
包含结构体可以用来管理和维护一些被多个结构体公用的字段组合,降低管理成本,在编程时也可以使代码更加简洁,增强代码的可维护性。
流程控制语句
Do循环按次数循环(不常用)