ABAP学习笔记-jlzhu

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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循环按次数循环(不常用)

相关文档
最新文档