abap语法

abap语法

ABAP

1 了解ABAP

2 ABAP语法概述

3 ABAP语言的数据类型

4 ABAP的语法格式

5 结构类型和结构体

6 内表

7 数据库操作

ABAP(Advanced business application program),是一种高级企业应用编程语言,它支持封装性和继承性,封装性是面向对象的基础,而继承性是建立在封装性基础上的重要特性。它适合生成报表,支持对数据库的操作,如:Sqlserver,Oracle,DB2等主流数据库系统。

语法概述

ABAP基本语法特点

由各自独立的语句构成。

每个语句的第一个单词必须是ABAP关键字。

单词之间至少要用一个空格分隔。

每个语句结束必须要用句号。

一个语句可以跨多行,只要不遇到句号,就认为是一个延续的语句。

可以把多个语句放在一行。

ABAP不区分大小写,关键字和用户操作数都一样,为了便于阅读,一般把关键字大写,而操作数小写。

如果连续多行的第一个关键字相同,可以使用链语句方式减少输入 data: id type I.

data: name type c.

可写为:

data: id type I , name type c.

注释:

注释行由第一列的星号(*)开头,并且必须写在第一列,前面不能有空格。

在行末的注释用双引号(”)作为前导。

data: id type i. “ 定义一个对象num数据类型为I

ABAP的命名规则

使用至少1个但不超过8个字符。

不要使用下列字符:

句点(.);

逗号(,);

空格( );

括号‘(’‘)’;

单引号(‘);

双引号(“);

等号(=);

星号(*);

百分号(%);

ABAP数据类型

(八种基本数据类型)

D :日期类型,格式为YYYYMMDD,长度为8

T :时间类型,格式为HHMMSS,长度为6

I :整数类型,默认长度为4,初始值为0

F :浮点类型,默认长度为8,初始值为0,常用于计算

C :字符串类型,定义变量时指定字符个数

N :数字字符串类型,定义变量时指定数值字符个数

X :字节序列类型,定义变量时指定字节数

P(压缩号) :允许的长度为1 到16 个字节,系统会指定默认值8 个字节(也就是15 位数字)和0 个小数位常用:大小,长度,重量,货币等单

位的场合. 定义方法:

[f1] type I.

[f2] type p decimals [num].

[f3] type f.

如:

DATA number(10) type p value '9.876543210' decimals 9.

输出:9.876543210

如果decimals 8 输出: 9.87654321

ABAP运算

数值运算(在ABAP中数学表达式可以任意多层嵌套)

算术运算

二元操作符包括:

–+ :加法

– - :减法

–* :乘法

–/ :除法

–** :乘方

–DIV :整除忽略余数

–MOD :取模

需要注意,圆括号和操作符都是关键字,需要跟操作数之间至少

用一个空格分开。 (1+2)*3 应该写成( 1 + 2 ) * 3

注:ABAP中不能使用”&”或”+”做连接(详参见computer语句的关键字文档

数学函数

时间日期运算

逻辑表达式

通用逻辑运算符

EQ( = ) NE( < > ) LT( < ) LE( <= ) GT( > ) GE( >= )

IS操作符

IS INITIAL 检查字段是否为初始值 IS ASSIGNED 检查字段是否被分配

BETWEEN操作符

组合逻辑表达式

AND 与 OR 或 NOT 非

ABAP程序的关健字

关健字是语句的第一个词,它决定整个语句的意义,有四种不同类型的关健字1.说明性关健字

TYPES,DATA,TABLES,这些关健字说明定义数据类型或者说明程序可以访问的数据对象

2.事件关健字

AT SELECTION SCREEN,

START-OF-SELECTION

End-of-selection

这些关健字在ABAP中定义处理块,处理块是当特定事件发生时进行处理的语句组

3.控制关健字

IF ,WHILE,CASE

4.操作关健字

WRITE,MOVE,ADD 用于处理数据

语法格式

在声明语句中定义对象的数据类型有两种

直接的: type

可直接将数据类型分配给已声明的数据对象

DATA number type I.

间接的: like

将另一个数据对象的数据类型分配给当前声明的对象,间接引用

DATA num like number.

Constants语句:用于创建常量

Tables语句:用于创建表工作区

Types语句: 1.用于创建用户自定义的数据类型

2.结构化数据类型

3.一个内表形式的数据类型

DATA语句:

1.用于创建一个简单类型的变量

2.定义一个结构化的数据对象

3.定义内表

定义数据对象

DATA name TYPE type_name

例: DATA number TYPE I.

DATA num TYPE I value 18.

TYPES:address TYPE C.

注:TYPES语句用来创建用户定义的基本数据类型和结构化的数据类

型,通过TYPES定义的类型不能直接使用,需要通过DATA进行定义其

对应的变量后才可使用

如: DATA:address1 TYPE address

语法格式-赋值

可以使用MOVE 关键字来对数据对象赋值,下面两个语句具有相同的功效。

DATA: var1 type I value 18,

var2 type I.

MOVE var1 TO var2.

var2 = var1.

把var1的值赋给var2,如果var1 和var2 的数据类型不同,就存在类型冲突的可能性,这时候如果存在转换规则,则会进行自动类型转换? 关于类型冲突和自动转换,可以查MOVE 的帮助。

CLEAR 语句根据类型清除数据对象,恢复成默认值。

打印输出格式(WRITE) WRITE 'First line.'.

WRITE 'Still first line.'

WRITE / 'Second line.'

WRITE /13 'Third line.?

这在屏幕上生成如下输出:

First Line. Still first line.

Second line.

Third line.

分支结构(IF,CASE)

使用IF的条件分支

IF .

< statement block >

ELSEIF .

< statement block >

ELSEIF .

< statement block >

.....

ELSE.

< statement block >

ENDIF.

使用CASE的条件分支

基本语法:

CASE .

WHEN .

WHEN .

WHEN .

WHEN ...

......

WHEN OTHERS.

ENDCASE. 循环结构(DO,WHILE)

使用DO的无条件循环

DO

[TIMES]

[VARYING FROM NEXT ].

ENDDO.

TIMES 循环次数,

可以是数字或变量。如果是0或负数,系统不执行该循环

VARYING选项在每次循环中给变量重新赋值.第一次循环中,将分配给,第二次循环中,将分配给,以此类推。可以在一个DO 语句中使用多个VARYING选项。

使用 DO 语句时要避免死循环。如果不使用 TIMES 选项,则在语句块中至少应包含一个 EXIT、 STOP 或 REJECT 语句,以便系统能够退出循环。

使用WHILE的条件循环

语法:

WHILE [VARY FROM NEXT ].

ENDWHILE.

只要是真,或系统没有发现EXIT、STOP或REJECT语句,系统将继续执行由WHILE语句引导、ENDWHILE结束的语句块,

VARY选项与DO循环的VARYING选项工作方式一样

循环终止(CONTINUE,CHECK,EXIT)

无条件终止循环:CONTINUE

有条件终止循环:CHECK

完全终止循环:EXIT

事件关健字

这些关健字在ABAP中定义处理块,处理块是当特定事件发生时进行处理的语句组

AT SELECTION SCREEN: 其实就像一个FORM,所以在这个事件里声明的变量都是局部变量。

用户在选择屏幕中执行某些功能后被触发。多用于权限判断,给出

警告信息

START-OF-SELECTION:

报表程序必须执行的事件,在进入第二屏幕之前触发。选择开始事件,如果报表中含有选择屏幕,则在选择屏幕的处理结束后触发,

是报表程序的默认事件块;

End-of-selection:

第二屏幕显示完毕,结束处理。选择结束事件,如果程序中使用逻辑数据库,则在所有逻辑数据库处理结束后触发,一般在该事件之

中输出列表。

结构类型和结构体

结构类型由多个数据元素作为组件构成

参照结构类型生成的数据对象称为结构体

定义方式

TYPES|DATA: BEGIN OF structure,

k1 [TYPE type | LIKE dobj] …,

k2 [TYPE type | LIKE dobj] …,

kn [TYPE type | LIKE dobj] …,

END OF structure.

组件通过取组件运算符” - ”进行访问

structure-k1

Demo:

TYPES: BEGIN OF address,

name TYPE string,

street(30) TYPE C,

city TYPE String,

END OF address.

合集下载

abap 中type用法

abap 中type用法

ABAP中type的用法

介绍

ABAP(Advanced Business Application Programming)是一种用于SAP系统开发的编程语言。在ABAP中,type是一个非常重要的关键字,用于定义数据类型和数据对象。本文将详细介绍ABAP中type的用法,包括类型定义、基本类型、结构体和内表。

类型定义

在ABAP中,可以通过type关键字定义各种类型。type关键字的语法如下:

TYPES: TYPE .

其中,是自定义的类型名称,是所需的数据类型。下面是一些常见的数据类型:

• C:字符型

• N:数字型

• D:日期型

• T:时间型

• X:十六进制数型

我们可以定义一个叫做lv_name的字符变量:

TYPES: ty_name TYPE c LENGTH 20.

基本类型

ABAP提供了一些基本数据类型,可直接使用而无需自定义。下面是一些常见的基本数据类型:

• I:整数型

• F:浮点数型

• P:小数点数型

• STRING:字符串型

我们可以声明一个整数变量lv_age:

DATA: lv_age TYPE i. 结构体

结构体是一种复合数据类型,在ABAP中使用type关键字来定义。结构体由多个字段组成,每个字段都有自己的数据类型。下面是一个结构体的定义示例:

TYPES: BEGIN OF ty_person,

first_name TYPE c LENGTH 20,

last_name TYPE c LENGTH 20,

age TYPE i,

END OF ty_person.

在上面的示例中,我们定义了一个结构体ty_person,它包含了first_name、last_name和age三个字段。

可以使用结构体来定义表格行类型或者函数的参数类型。我们可以声明一个内表,并指定其行类型为刚刚定义的结构体:

SAPABAP基本语法介绍

SAPABAP基本语法介绍

SAPABAP基本语法介绍

SAP ABAP(Advanced Business Application Programming)是SAP提供的一种编程解决方案,它是最基本的编程语言,用于创建SAP的标准应用程序,以及对现有应用程序进行定制。本文介绍SAP ABAP的基本语法,包括SAP ABAP语句,函数,表达式,算术和逻辑运算符,数据类型,字符串函数等。

1.SAPABAP语句

SAPABAP提供了很多关键字可用于编写程序,它们一般来说可以分为两类,一类是控制语句,控制语句可用于控制程序的执行流程;另一类是普通语句,普通语句包括输入/输出语句,数据定义语句,变量定义语句,字符串处理语句等。

2.SAPABAP函数

3.SAPABAP表达式

4.SAPABAP算术和逻辑运算符

5.SAPABAP数据类型

abap loop group用法 -回复

abap loop group用法 -回复

abap loop group用法 -回复

ABAP LOOP GROUP是SAP ABAP语言中的一个重要循环语句,用于对内部表进行分组循环操作。本文将详细介绍ABAP LOOP GROUP的用法,从基本语法和运行机制到实际应用场景,逐步回答读者对该主题的疑问。

第一部分: ABAP LOOP GROUP基本语法

在ABAP语言中,LOOP GROUP语句用于对内部表进行分组循环。其基本语法如下:

LOOP AT internal_table INTO GROUP BY .

"循环内部表操作

ENDLOOP.

其中,internal_table是需要进行循环操作的内部表,是内部表中用于存储当前记录的工作区,是一个或多个字段名,用于指定按照哪些字段进行分组。

第二部分: ABAP LOOP GROUP运行机制

ABAP LOOP GROUP语句通过按照指定字段对内部表进行排序和分组,然后在循环时只处理分组后的每一个组别。具体运行机制如下:

1. 首先,根据指定的字段,对内部表进行排序和分组。内部表中的记录按照字段值的升序或降序排列,并将相同字段值的记录归为一组。

2. 然后,循环开始。首先设置第一组记录为当前记录,并进行相应的处理。随着循环的进行,系统会自动将当前记录依次置为同一分组的下一个记录。

3. 在循环内部,可以通过来访问当前记录的字段值。可以根据需要,在循环内部进行各种操作,例如条件判断、字段赋值和计算等。

4. 当处理完当前组的最后一条记录后,循环会自动跳转到下一组的第一条记录进行处理。在循环内部可以使用AT GROUP语句来检测当前组是否发生了改变。

5. 当所有组都遍历完毕后,循环结束。

第三部分: ABAP LOOP GROUP的实际应用场景

ABAP LOOP GROUP语句在实际开发中有广泛应用的场景,以下是一些常见的应用场景:

1. 分组统计:可以使用ABAP LOOP GROUP来对内部表进行统计分析。例如,对某个字段进行分组,并统计每个组的记录数、平均值等。

abap内外部单位转换新语法

abap内外部单位转换新语法

abap内外部单位转换新语法

ABAP(Advanced Business Application Programming)是一种高级商务应用程序编程语言,主要用于 SAP 系统的开发。在 ABAP 中,内外部单位转换是一种常见的操作,用于将内部单位(例如日期、时间、货币等)转换为外部单位(例如字符型、数值型等)。本文将介绍 ABAP 内外部单位转换的新语法。

一、日期转换

在 ABAP 中,日期转换是一种常见的内外部单位转换。以前,我们通常使用函数模块 CONVERT_DATE_TO_EXTERNAL 将内部日期转换为外部日期。而现在,ABAP 提供了更便捷的方法,即使用关键词

`CONVERT` 进行转换。

例如,我们有一个内部日期 `ld_date`,我们想将其转换为外部日期字符串。可以使用如下代码:

```

DATA(ld_date) = sy-datum. " 内部日期

DATA(ld_date_ext) TYPE string. " 外部日期

CONVERT DATE ld_date INTO ld_date_ext. " 转换为外部日期字符串

```

二、时间转换

类似于日期转换,时间转换也是一种常见的内外部单位转换。以前,我们通常使用函数模块 CONVERT_TIME_TO_EXTERNAL 将内部时间转换为外部时间。现在,ABAP 提供了更简洁的语法,即使用关键词

`CONVERT` 进行转换。

例如,我们有一个内部时间 `lt_time`,我们想将其转换为外部时间字符串。可以使用如下代码:

```

DATA(lt_time) = sy-uzeit. " 内部时间

DATA(lt_time_ext) TYPE string. " 外部时间

CONVERT TIME lt_time INTO lt_time_ext. " 转换为外部时间字符串

```

三、货币转换

abap loop at的用法

abap loop at的用法

abap loop at的用法

ABAP LOOP AT的用法

• 简介

• 基本语法

• 循环中的条件判断

• 循环嵌套

• EXIT和CONTINUE

• 总结

简介

ABAP是一种面向SAP系统的编程语言,LOOP AT语句是其中的一个重要语法结构,用于在内部表中进行循环操作。本文将介绍LOOP AT的基本用法以及一些常用的扩展技巧。

基本语法

LOOP AT语句的基本语法如下:

LOOP AT [INTO ] [WHERE

].

" 循环体

ENDLOOP. 其中,代表要遍历的内部表名,代表在每次循环开始前要赋值的工作区,代表一个可选的条件表达式,用于筛选符合条件的记录。

循环中的条件判断

在循环体内部,我们可以使用IF语句对每个记录进行条件判断,根据不同的情况执行相应的逻辑。

示例代码:

LOOP AT lt_table INTO ls_table.

IF ls_table-field = 'ABC'.

WRITE: / '该记录的字段值为ABC' .

ELSEIF ls_table-field = 'DEF'.

WRITE: / '该记录的字段值为DEF' .

ELSE.

WRITE: / '该记录的字段值既不是ABC也不是DEF' .

ENDIF.

ENDLOOP.

循环嵌套

有时候我们需要对多个内部表进行嵌套循环,以实现更复杂的逻辑。

示例代码:

LOOP AT lt_table1 INTO ls_table1.

LOOP AT lt_table2 INTO ls_table2. IF ls_table1-field = ls_table2-field.

WRITE: / '找到匹配的记录' .

EXIT.

ENDIF.

ENDLOOP.

ENDLOOP.

上述代码中,我们先遍历lt_table1,然后在每次循环内部再遍历lt_table2,当找到匹配的记录时就退出内部循环。

abap call function用法

abap call function用法

- 1 - abap call function用法

ABAP(AdvancedBusinessApplicationProgramming)是一种企业级应用程序开发语言,广泛应用于SAP系统中。在ABAP中,我们可以通过调用函数来实现复杂的业务逻辑。本文将介绍ABAP中call

function函数的用法。

call function函数是ABAP语言中非常重要的一种函数,它可以调用其他函数或方法。call function函数的语法如下:

call function func_name

exporting

parameter1 = value1

parameter2 = value2

importing

parameter3 = value3

parameter4 = value4.

其中,func_name是需要调用的函数名,parameter1、parameter2是该函数所需的输入参数,value1、value2是对应的参数值。importing子句是该函数返回的输出值,parameter3、parameter4是输出参数,value3、value4是对应的输出值。

下面是一段示例代码,演示了如何使用call function函数调用一个名为“addition”的函数,该函数将两个数相加并返回结果:

data: num1 type i value 10,

num2 type i value 20, - 2 - result type i.

call function 'addition'

exporting

num1 = num1

num2 = num2

importing

result = result.

write: / 'The result is: ', result.

abap select exists原理 -回复

abap select exists原理 -回复

ABAP SELECT EXISTS是一种在ABAP语言中经常使用的数据查询方法。它用于检查给定条件下是否存在满足要求的数据记录。在这篇文章中,我们将详细介绍ABAP SELECT EXISTS的原理,并逐步回答与其有关的问题。

首先,让我们了解ABAP SELECT EXISTS的语法结构。它的通用格式如下:

SELECT (fields)

INTO TABLE (table)

FROM (database table)

WHERE (condition)

EXISTS (subquery).

其中,fields表示要从数据库表中选择的字段列表;table表示目标内表,用于存储查询结果;database table表示要查询的数据库表;condition是一个可选项,用于指定查询条件;subquery是用于检查是否存在满足条件的记录的子查询。

现在,让我们深入了解ABAP SELECT EXISTS的原理。当执行SELECT

EXISTS语句时,ABAP会执行以下步骤:

1. ABAP解析语句:ABAP解析SELECT EXISTS语句,并根据语法规则检查其正确性。

2. 查询优化:ABAP优化器会对查询进行优化,选择最有效的执行计划。它会考虑索引、表的大小和结构等因素,以尽可能快地完成查询操作。 3. 执行子查询:ABAP首先执行子查询,以确定是否存在满足条件的记录。子查询可以是一个简单的SELECT语句,也可以是一个复杂的JOIN操作。

4. 检查结果:如果子查询返回了至少一条记录,ABAP会将SELECT

EXISTS语句判定为真(TRUE),表示存在满足条件的记录。否则,它将判定为假(FALSE),表示不存在满足条件的记录。

5. 返回结果:根据SELECT EXISTS语句的判定结果,ABAP会执行适当的操作。例如,它可以根据判定结果决定是否执行某个代码块,或者在程序中做出相应的处理。

abap message的用法

abap message的用法

ABAP Message的用法

ABAP Message是SAP系统中常用的一种消息提示方式,可以在程序中输出各种类型的消息,如信息、警告、错误等。在SAP系统中,ABAP Message可以用于向用户提供程序执行的状态信息,也可以用于向用户提示程序执行过程中的异常情况。

ABAP Message的语法格式如下:

MESSAGE {type} {msgno} {msgv1} {msgv2} {msgv3} {msgv4}.

其中,type表示消息的类型,包括以下几种:

- I:信息消息

- W:警告消息

- E:错误消息

- A:中断消息

msgno表示消息的编号,通常是一个四位数字,用于标识不同的消息。msgv1、msgv2、msgv3、msgv4表示消息的参数,用于向用户提供更详细的信息。

下面是一个简单的ABAP Message的例子:

DATA: lv_num TYPE i.

lv_num = 10.

IF lv_num > 5.

MESSAGE 'The number is greater than 5.' TYPE 'I'.

ELSE.

MESSAGE 'The number is less than or equal to 5.' TYPE 'W'.

ENDIF.

在上面的例子中,如果lv_num大于5,则输出一条信息消息,否则输出一条警告消息。

除了直接在程序中使用ABAP Message外,还可以通过SE91事务代码来管理ABAP Message。在SE91中,可以创建、修改和删除ABAP Message,也可以查看系统中已有的ABAP Message。

总之,ABAP Message是SAP系统中非常重要的一种消息提示方式,可以帮助用户更好地理解程序执行的状态和异常情况。在编写SAP程序时,应该充分利用ABAP Message来提高程序的可读性和可维护性。

ABAP语法讲解七(ORDERBY语句)

ORDER BY clause

Variants:

1. ... ORDER BY PRIMARY KEY

2. ... ORDER BY f1 ... fn

3. ... ORDER BY (itab)

Effect

Orders the records in a SELECT statement. Without the ORDER-BY clause, the order in which

the selected lines are supplied is undefined. This means that two similar SELECT statements

may produce lines in a different order.

Variant 1

...ORDER BY PRIMARY KEY

Effect

Sorts the selected lines in ascending order by the primary key of the database table. This

variant is only permitted for SELECT * ....

Example

Output the passenger list for the Lufthansa flight 0400 on 28.02.1995:

DATA WA_BOOK TYPE SBOOK.

SELECT * FROM SBOOK INTO WA_SBOOK

WHERE

CARRID = 'LH ' AND

CONNID = '0400' AND

FLDATE = '19950228'

ORDER BY PRIMARY KEY.

abap update的用法

abap update的用法

在ABAP中,UPDATE语句用于更新数据库表中的数据。它可以用来修改一个或多个表行的特定字段值。

UPDATE的一般语法如下:

UPDATE table_name

SET field1 = value1, field2 = value2, ...

WHERE condition.

- table_name 是要更新数据的表名。

- field1, field2, ... 是要更新的字段名。

- value1, value2, ... 是要更新的字段的新值。

- WHERE条件用于指定要更新的数据行,只有满足条件的行才会被更新。

以下是一个更新表数据的示例:

abap

DATA: lv_new_value TYPE table_name-field1.

lv_new_value = 'New Value'.

UPDATE table_name

SET field1 = lv_new_value

WHERE condition.

该示例将在满足给定条件的行中更新表中的field1字段的值为"New Value"。

注意:在使用UPDATE语句之前,需要对数据库表进行修改的权限。此外,在更新数据之前,最好先进行必要的数据验证和错误处理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档