搜档网
当前位置:搜档网 › ABAP基本语法

ABAP基本语法

ABAP基本语法
ABAP基本语法

ABAP基本语法

目录

1.表声明 (1)

2.定义变量 (1)

3.常用算术操作符: (1)

4.常用比较操作: (1)

5.赋值语句 (2)

6.IF语句 (2)

7.CASE语句 (2)

8.DO语句 (2)

9.WHILE语句 (2)

10.从数据库中取数据集 (2)

11.取出单行记录 (2)

12.WRITE语句 (3)

13.ULINE语句 (3)

14.SKIP语句 (3)

15.定义常量 (3)

16.定义结构 (3)

17.TYPES语句 (4)

18.LIKE语句 (4)

19.输入参数 (5)

20.分块语句 (5)

21.定义内表 (5)

22.往内表中添加记录 (6)

23.用LOOP读取内表数据 (6)

24.用READ读取内表数据 (6)

25.把数据库的记录读入内表 (6)

26.CLEAR清空表头和表记录 (6)

27.DELETE删除内表记录 (6)

28.REFRESH删除内表记录 (6)

29.FREE删除内表记录 (7)

30.在内表中插入记录 (7)

31.修改内表记录 (7)

32.对内表进行排序 (7)

33.内表的控制语句 (7)

34.循环跳转语句 (7)

35.常用系统变量 (8)

36.子程序的定义 (8)

37.子程序的调用 (8)

38.子程序的参数传递 (8)

39.常用事件 (9)

40.跳出事件的方法 (10)

ABAP/4:Advanced Business Application Programming

1.表声明

Tables: 表名[,表名]. 声明多个表时可用逗号分隔

当你声明了一个数据表的同时,系统也同时自动生成了一个和数据表同名的结构,结构的变量集等于数据表里面的字段。

2.定义变量

Data: v1[(l)] [type t] [decimals d] [value 'xxx'].

v1 是变量名。

(l) 是变量的长度。

t 是数据类型。

d 是小数位。

'xxx' 是缺省值。

如:data num(10) type p decimals 3 value '1.12'.

4.常用比较操作:

5.赋值语句

total = 10.

mess = 'this is a test! '.

如果字符串中包括 ' 号,用 '' 进行付值,如:mess = 'this is a ''test''! '.

6.IF语句

if i = 2.

write 'i 等于 2'.

[else.

write 'i 不等于 2'. ]

endif.

7.CASE语句

case i. 类似于VFP中的DO CASE语句

when 1. write 'i = 1'.

when 2. write 'i = 2'.

[when others. write 'i <> 1 and i <> 2'.]

endcase.

8.DO语句

do [n] times. 类似于VFP中的FOR语句

[执行代码]

enddo.

9.WHILE语句

while [条件]. 类似于VFP中的DO WHILE语句

[执行语句]

endwhile.

10.从数据库中取数据集

select * from 数据表 [where 条件].

[操作语句]

endselect.

如:select * from t000 [where mandt < 200].

write: / t000-mandt,t000-mtext.

endselect.

11.取出单行记录

select single * from 数据表 [where 条件]. 注:仅取出符合条件的第一行记录select single 字段 from 数据表 into 变量 [where 条件].

12.WRITE语句

write: [/][定位][数据1][,[定位] [数据2]]……

[/] 为插入一行空行,注意单独write一个[/]和在其它数据之前加 [/] 的效果是不一样的,单独的write[/]在插入空行后光标定位在空行的下面,在其它数据前加[/]在插入空行后光标定位于所插的空行。

13.ULINE语句

uline. 在当前行下一行显示一直线。

uline n. 在当前行第n列显示一直线。

uline /n. 在当前行下一行第n列显示一直线。

uline 和 write ‘|’一起使用可实现画表格的功能。

14.SKIP语句

SKIP. 光标跳到下一行。

SKIP n. 光标跑到下n行。

SKIP to line n. 光标跳到第n行。

15.定义常量

作用:定义一些不会改变的数据,如一年的月数、圆围率等。

语法:constants c1[(l)] [type t] [decimals d] value 'xxx'.

或者:constants c1 like cv value 'xxx'.

例如:constants pi type p value ‘3.14’.

16.定义结构

(1)基本结构

data: begin of 结构名,

f1[(l)] [type t] [decimals d] [value 'xxx'],

f2[(l)] [type t] [decimals d] [value 'xxx'],

……

end of 结构名.

(2)结构中包含另一结构

data: begin of 结构名,

f1[(l)] [type t] [decimals d] [value 'xxx'],

f2[(l)] [type t] [decimals d] [value 'xxx'],

f3 like 另一结构名,

……

end of 结构名.

(3)定义结构的另一种写法:

data begin of 结构名.

data f1[(l)] [type t] [decimals d] [value 'xxx'].

data f2[(l)] [type t] [decimals d] [value 'xxx'].

[include structure 另一个结构.]

data end of 结构名. 注:此种写法data后可以加冒号也可以不加

例如:

educ(10) type c,

train(10) type c,

end of person.

data:begin of employee,

code(10) type c,

name(10) type c,

department(20) type c,

address like person, "person为另一个结构名

……

end of employee.

employee-code = '1001'.

employee-name = '张三'.

employee-department = 'IT部'.

employee-person-educ = '本科'

employee-person-train = '工程师'

write: / employee-code,employee-name,employee-department,employee-person-educ.

write: / employee.

17.TYPES语句

将结构定义成数据类型,这样在程序中可以象定义一个变量那样简单地定义一个结构。语法同定义结构,只是把data换成types即可。

如:

types: begin of employee,

code(10) type c,

name(10) type c,

end of employee.

types: address(50) type c.

data: emp type employee. “使用TYPES定义的结构类型

data: myadd type address. “使用TYPES定义的变量类型

emp-code = '1001'.

emp-name = '张三'.

myadd = 'this is a address'.

write: / emp.

write: / myadd.

18.LIKE语句

tables: t000.

data: p(20) type c.

data: p1 like t000. " p1拥有了和t000相同的结构

"的定义

data: p3 like p. "p3的定义和p相同,为20长度的字符串

data: t111 like t000 occurs 0 with header line. "定义一个和t000一样的内表

19.输入参数

要让一个变量成为可输入的参数,只需在定义变量时把data改为parameters 即可。parameters p1 like v1 ...

... [default 'xxx'] [obligatory] [lower case]

[as checkbox] [radiobutton group g].

使用DEFAULT后缀为参数指定缺省值。

使用obligatory后缀来标识参数为必输项。

输入参数默认会把输入的字符转为大写,如果要去掉该转换,使用lower case 后缀。

使用as checkbox后缀使参数以复选框的形式出现。使用复选框的参数一定为长度为1的字符串,其内容只能为'X'或' ',如:

parameters:p1 as checkbox.

parameters:p2 as checkbox default 'X'.

使用radiobutton group g后缀使输入参数以单选框的形式出现。使用单选框的参数一定为长度为1的字符串,其内容只能为'X'或' ',如:

parameters:p1 radiobutton group 1.

parameters:p2 radiobutton group 1.

parameters:p3 radiobutton group 2.

parameters:p4 radiobutton group 2 default 'X'.

20.分块语句

selection-screen begin of block 块名 with frame title [text-(titlename)].

parameters: v1(10) type c.

parameters: aa like t000-mandt. "将出现圆钮选择项,也可以自定义圆钮选择项

parameters: v2(10) type c matchcode object zhlp.

这是自定义的圆钮选择项,在SE38中创建搜索帮助,zhlp为创建的搜索帮助名称

selection-screen end of block 块名.

selection-screen uline. “在输入屏幕上画线

21.定义内表

内表的定义和结构很相似,所差别只是内表需要指定记录的条数。

data: begin of 内表名 occurs n,

f1[(l)] [type t] [decimals d] [value 'xxx'],

f2[(l)] [type t] [decimals d] [value 'xxx'],

...

end of 内表名.

n为该内表的记录条数,不过当内表的记录数超过了该数值后,内表会自动的填大这个数目,定义该数值只是为了系统的效率考虑,如果n为0,则系统会在一开始就分配8KB的空间。

内表同时也可以以已存在的数据表或结构进行定义,格式为:

data: 内表名 like [结构名或数据表名] occurs n.

例如:(使用like语句通常需要加上with header line,否则没有表头)

data: it1 like st1 occurs 10. "st1 为一结构

22.往内表中添加记录

append 内表名. ‘把表头的数据插入内表。

append 结构名 to 内表名. ‘把结构的数据插入内表,两者的结构必须一样。

23.用LOOP读取内表数据

loop at it [into wa] [from m] [to n] [where exp].

Write: / it-字段1, it-字段2, ……

endloop.

it 为内表名

wa 为结构名,如果不填,则读到表头。

m,n为开始和结束行,如果不填则为从第一条到最后条。

exp 为取记录的条件。

24.用READ读取内表数据

READ功能为读取内表的某条记录。

read table it [into wa] [index i | with key keyexp]

it为内表。

wa为将把数据读入的结构,如果没指定,则缺省为表头。

i 是要读取的记录编号,即第几条记录。

keyexp 是取记录的条件。如果合条件的记录有不止一行,则取第一行的记录。

以系统参数 sy-subrc 是否为 0 判断读取是否成功,sy-subrc 为 0 则读取操作成功。

25.把数据库的记录读入内表

(1)逐条记录的读入内表

select * from t000.

append t000 to it.

endselect.

(2)把整批数据读入内表

select * from 数据表 into table 内表 [where exp]. "结构需要相同

select mandt mtext from t000 into table it where mandt > 100. "结构不同的情况select mandt mtext from t000 appending table it. "在内表中追加记录

26.CLEAR清空表头和表记录

clear 内表. "如果内表没有表头的话,该语句将会把内表的记录清空

clear 内表[ ]. "[ ]必须紧跟内表,且[ ]间不能有空格

27.DELETE删除内表记录

delete it(a) [index n] “删除指定行记录

(b) [from i] [to j] “删除指定范围记录

(c) [where exp] “删除符合条件记录

it为内表名

n,i,j 为记录编号

exp 为搜索条件

refresh 内表.

该语句删除所有记录但保留表头,内表所占用的内存仍保留。

29.FREE删除内表记录

free 内表.

该语句删除所有记录但保留表头,内表所占用的内存也被释放。

30.在内表中插入记录

insert [wa into] it [index n].

wa 为结构。

it为内表。

n 为记录编号。

记录会插入到编号的位置,原来的记录则向下移一位。

31.修改内表记录

modify it [from wa]

[index n]

[transporting c1c2 ... [where exp]]

it 为内表

wa 为结构,缺省为使用表头。

n 为记录编号

c1 c2 为内表中的字段,指明要更新哪些字段,缺省为全部更新。

exp 为条件

32.对内表进行排序

sort it [by f1 [ascending|descending].

it 为内表

f1 为要排序的字段

ascending 升序排列(默认)

descending 降序排列

33.内表的控制语句

sum. 对内表中可计算字段进行合计,只能作用于LOOP中。

at first. 当从内表中读取第一条记录的时候,会触发at first事件,At first 常用于画表头的作用,或者做表头的合计。

at last. 和at first相反,at last是在读取最后一条记录的时候触发

at new of p1. 当一条记录指定字段的值和上一条记录的相应字段的值有改变时,触发该事件

at end of p1. 当一条记录指定字段的值和下一条记录的相应字段的值有改变时,触发该事件

on change of it-p1 [or it-p2 ……]. 当指定字段与上一条字段有所改变时,触发该事件,on change无分组合计的功能

34.循环跳转语句

exit. 用于跳出当前循环,当运行到exit时,将直接运行循环后面的代码,当exit在循环之外时,将直接结束程序的运行。

continue. 跳过循环下面的语句然后继续执行下一个循环。

过循环下面的语句然后继续执行下一个循环。

35.常用系统变量

sy-datum 当前日期

sy-uzeit 当前时间

sy-uname 当前用户

sy-subrc 当前操作返回值(0为成功)

sy-mandt 当前的客户机

sy-tabix 内表当前行的记录号

36.子程序的定义

form s [tables t1 t2 ...]

[using u1 value(u2) ...]

[changing c1 value(c2) ...].

---

endform.

s 为子程序名。

t1、t2、u1、u2、c1、c2 为子程序的传递参数。

37.子程序的调用

perform s [tables t1 t2 ...]

[using u1 u2 ...]

[changing c1 c2 ...].

s 为子程序名。

t1、t2、u1、u2、c1、c2 为子程序的传递参数。

可用一个perform同时调用几个子程序,子程序间用逗号分隔,如 perform s1,s2.

38.子程序的参数传递

(1)传递一个参数指针

变量存储于内存中的一块空间,变量指针为程序指出了内存的位置,传递变量指针将使子程序中的变量和作为参数的变量使用同一个存储区域,也就是说,子程序中的参数的内容变了,其相应的传递参数的内容也跟着一起改变。

使用using v1及 changing v1均为传递变量指针。

(2)传递一个变量值

和传递变量指针不同,传递变量值仅仅把变量的内容传给子程序,子程序中相应的变量存储于另外的内存空间,也就是说,子程序中变量的值改变了,其相应的传递参数的内容还是和原来一样。使用using value(v1)为传递变量值。

(3)传递一个变量值并返回

传递一个变量值并返回把一个变量值传给子程序,在子程序运行结束时,把子程序中变量值的内容传给调用它的变量。与传递变量指针不同,原变量内容是在子程序运行完成之后才改变,在子程序运行过程序中保持不变。

使用changing value(v1)传递一个变量值并返回。

(4)传递一个内表

内表同样可以作为一个变量进行传递,内表使用指针的模式进行传递。

使用tables it structure x或tables it like x传递内表,x为结构或表。

39.常用事件

(1)initialization事件

程序最开始发生的事件,可以进行初始数据的处理。

REPORT z_temp.

tables:t001.

parameters:ch(50) type c.

initialization. "该语句不能包含在selection-screen语句中

ch = 'this is a test for the initialization!'.

start-of-selection.

write:ch.

以上代码在程序运行开始就为变量ch进行付值,该事件在输入参数之前就已经发生。

(2)start-of-selection事件

在输入参数完成之后,运行该事件,在该事件中主要进行数据的处理。

(3)end-of-selection事件

发生在start-of-selection之后的事件,在该事件中主要进行数据的输出显示。

REPORT z_temp.

tables:t001.

data:ch(50) type c.

end-of-selection.

write:/ 'end-of-selection'.

start-of-selection.

write:/ 'start-of-selection'.

不管按什么顺序书写代码,start-of-selection里的代码一定会在end-of-selection之前处理。(4)top-of-page事件

该事件主要处理表头的数据,在top-of-page中显示的内容一定会出现在每一页的开始。REPORT z_temp no standard page heading line-count 6(2).

start-of-selection.

do 100 times.

write:/ 'this is a test!'.

enddo.

top-of-page.

write:/ 'top-of-page'.

uline.

(5)end-of-page事件

该事件主要处理表尾的数据,在end-of-page中显示的内容一定会出现在每一页的表尾,注意必须有定义页尾留空行数的时候才可显示该事件中显示的内容。

REPORT z_temp no standard page heading line-count 6(2).

start-of-selection.

do 100 times.

write:/ 'this is a test!'.

enddo.

end-of-page.

uline.

write:/ 'end-of-page'.

write:/ 'end-of-page2'.

40.跳出事件的方法

可以使用exit,check,stop事件跳过事件,在不同的事件中,以上的语句会有不同的表现。在所有事件中:

check离开当前事件并继续进行下一个事件的处理。

stop离开当前事件并直接跳到end-of-selection事件。

在start-of-selection之前的事件:

Exit和check都离开当前事件继续处理下一个事件。

在start-of-selection之中及之后的事件:

Exit立即进行输出的显示。

Check离开当前事件并继续处理下一个事件。

41.补充

查询内表有多少条记录:

describe table tmp_gongsi lines iReccount.

查询一个表的字段条件属于另一个内表字段值的记录:

select aa from 表2 into i_tab1.

select aa from 表1 into 临时表 for all entries in

i_tab1 where aa = i_tab1-aa.

concatenate 'aaa' 'bbb' into 'aaabbb'. 字符串相加

REUSE_ALV_GRID_DISPLAY 输出表格函数

"EQ LE GE CP BT NE LT GT NP NB"

42.常用函数

sy-uzeit:获取系统时间。

sy-datum:获取系统日期。

shift string:左移字符串。长度减1。

concatenate:连接字符串。

split:拆分字符串。

search:查询字符串。

replace:替换字符串。

condense:删除多余的空格。

translate:转换字符格式,如将'ABC'转换为'abc'

convert text:创建一个可排序的字符串。

overlay:用一个字符串覆盖另一个字符串。

strlen:字符串长度。

abs:取绝对值。

cos、sin、tan:取三角函数值。

acos、asin、atan:反三角函数。

cosh、sinh、tanh:双曲函数。

exp:e的幂函数。

Log:底数为e的对数。

log10:底数为10的对数。

sqrt:平方根。

sign:返回参数符号。

trunc:返回参数的整数部分。

ceil:返回不小于参数的最小整数。floor:返回不大于参数的最小整数。

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. WRITE: / WA_SBOOK-BOOKID, WA_SBOOK-CUSTOMID, WA_SBOOK-

abap基本语法汇总

abap 基本语法汇总 数据类型和对象 在ABAP中,可以使用与标准数据声明相似的语法处理数据类型,而与数据对象无关。 在程序中必须声明要使用的全部数据对象。声明过程中,必须给数据对象分配属性,其中最重要的属性就是数据类型。 1.1基本数据类型 对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。 类型P数据允许在小数点后有数字。有效大小可以是从1到 16字节的任何值。将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号。在小数点后最多允许14个数字。 1.2系统定义的数据对象

abap 基本语法汇总 1.3确定数据对象的属性 如果要查明数据对象的数据类型,或者要在程序的运行期间使用其属性,可使用DESCRIBE语句。语法如下: DESCRIBEELD [LENGTHS〉] [TYPE [COMPONENTS^] [OUTPUT-LENGTH ] [DECIMALS ] [EDIT MASK ]. 将由语句的参数指定的数据对象的属性写入参数后的变量。 DESCRIBE FIELDS语句具有下列参数: 1.3.1确定字段长度 要确定数据对象的长度,利用DESCRIBFIELD语句使用LENGTH 参数,如下所示: DESCRIBE FIELD LENGTH . 系统读取字段<f>的长度,并将值写入字段<1>

abap 基本语法汇总 1.3.2 确定数据类型 要确定字段的数据类型,利用DESCRIBE FIELD语句使用TYPE 参数,如下所示: DESCRIBE FIELD TYPE [COMPONENTS ]. 系统读取字段的数据类型,然后将值写入字段。 除返回预定义数据类型C、D、F、I 、N、P、T 和X 外,该语句还返回 s 对于带前导符号的两字节整型 b 对于无前导符号的一字节整型 h 对于内表 C 对于组件中没有嵌套结构的结构 C 对于组件中至少有一个嵌套结构的结构 1.3.3 确定输出长度 要确定字段的输出长度,利用DESCRIBE FIELD语句使用OUTPUT-LENGTH数,如下所示: DESCRIBE FIELD OUTPUT-LENGTH . 系统读取字段的输出长度,并将值写入字段<0>。 1.3.4 确定小数位 若要确定类型P字段的小数位的个数,利用DESCRIBE FIELD语句使用DECIMALS参数,如下所示: DESCRIBE FIELD DECIMALS . 系统读取字段的小数个数,并将值写入字段。 1.3.5 确定转换例程 要确定ABAP/4 词典中某字段的转换例程是否存在,如果存在,名称是什

ABAP语法完整版

SAP ABAP / 4 基础知识学习 数据类型 C :字符串 D :日期型格式为 YYYYMMDD 例:'1999/12/03' F : 浮点数长度为8 I :整数 N :数值组成的字符串如:011,'302' P : PACKED数用于小数点数值如:12.00542 T : 时间格式为:HHMMSS 如:'14:03:00' X : 16进制数如:'1A03' *-------------------------------------------------------------------------------------* 变量声明 DATA [] [][decimals] 变量名称 变量类型及长度 初值 小数位数 exp: DATA : COUNTER TYPE P DECIMALS 3. NAME(10) TYPE C VALUE 'DELTA'. S_DATE TYPE D VALUE '19991203'. exp: DATA : BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE DECIMALS 2,

END OF PERSON. 另外,有关DATA声明的指令还有: CONSTANTS(声明常数)、STATICS(临时变量声明). exp: CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'. STATICS 关键字 声明的变量仅在目前的程序中使用, 结束后会自动释放 语法: STATICS [] [] [] 系统专用变量说明 系统内部专门创建了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有: SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,'0'表示成功 SY-UNAME: 当前使用者登入SAP的USERNAME; SY-DATUM: 当前系统日期; SY-UZEIT: 当前系统时间; SY-TCODE: 当前执行程序的Transaction code SY-INDEX: 当前LOOP循环过的次数 SY-TABIX: 当前处理的是internal table 的第几笔 SY-TMAXL: Internal table的总笔数 SY-SROWS: 屏幕总行数; SY-SCOLS: 屏幕总列数; SY-MANDT: CLIENT NUMBER SY-VLINE: 画竖线 SY-ULINE: 画横线 TYPE 关键字 用来指定资料型态或声明自定资料型态 Example: TYPES: BEGIN OF MYLIST,

ABAP语法讲解六(GROUP语句)

GROUP-BY clause Variants: 1. ... GROUP BY f1 ... fn 2. ... GROUP BY (itab) Variant 1 ... GROUP BY f1 ... fn Effect Groups database table data in a SELECT command on one line in the result set. A group is a set of lines which all have the same values in each column determined by the field descriptors f1 ... fn. ... GROUP BY f1 ... fn always requires a list in the SELECT clause. If you use field descriptors without an aggregate funciton in the SELECT clause, you must list them in the GROUP BY f1 ... fn clause. Example Output the number of passengers, the total weight and the average weight of luggage for all Lufthansa flights on 28.02.1995: TABLES SBOOK. DATA: COUNT TYPE I, SUM TYPE P DECIMALS 2, AVG TYPE F. DATA: CONNID LIKE SBOOK-CONNID. SELECT CONNID COUNT( * ) SUM( LUGGWEIGHT ) AVG( LUGGWEIGHT ) INTO (CONNID, COUNT, SUM, AVG) FROM SBOOK WHERE CARRID = 'LH' AND

abap字符串操作语法总结

ABAP 字符串操作语法总结 CONCATENATE:合并字符串. CONCATENATE f1 … fn INTO g [SEPARATED BY h]. 1* CONCATENATE合并字符串 2DATA: c1(10) TYPE c VALUE 'Sum', 3c2(3) TYPE c VALUE 'mer', 4c3(5) TYPE c VALUE 'holi ', 5c4(10) TYPE c VALUE 'day', 6c5(30) TYPE c , 7sep(3) TYPE c VALUE ' - '. 8CONCATENATE c1 c2 c3 c4 INTO c5. 9WRITE c5. 10CONCATENATE c1 c2 c3 c4 INTO c5 SEPARATED BY sep. 11WRITE / c5. -------------------------------------------------------- 输出结果: Summerholiday Sum - mer - holi - day -------------------------------------------------------- SPLIT: 字符串拆分. SPLIT f AT g INTO h1 … hn. SPLIT f AT g INTO TABLE itable. 1* splitting strings 2DATA: string10(60) TYPE c , 3p1(20) TYPE c VALUE '++++++++++++++++++++', 4p2(20) TYPE c VALUE '++++++++++++++++++++', 5p3(20) TYPE c VALUE '++++++++++++++++++++', 6p4(20) TYPE c VALUE '++++++++++++++++++++', 7del10(3) TYPE c VALUE '***'. 8 string10 = ' Part 1 *** Part 2 *** Part 3 *** Part 4 *** Part 5'. 9WRITE string10.

ABAP基本语法学习关键语句的写法(参考模板)

ABAP基本语法学习关键语句的写法 内表建立过程: 1、声明一个结构体 2、用声明好的结构体作为工作区,声明一个内表 内表名称like standard table of 结构体名称, 内表名称like sorted table of 结构体名称, 内表名称like harshed table of 结构体名称。 后面可以用到with 选项来进行关键字的声明。基本语法如下: DATA itab { {TYPE tabkind OF [REF TO] type} | {LIKE tabkind OF dobj} } [WITH key] [INITIAL SIZE n] [WITH HEADER LINE] [VALUE IS INITIAL] [READ-ONLY]. DATA rtab {TYPE RANGE OF type}|{LIKE RANGE OF dobj} [INITIAL SIZE n] [WITH HEADER LINE] [VALUE IS INITIAL] [READ-ONLY]. 此语句可以定义一个范围表,在操作数据库时可以用来作为判断数据选择的条件描述。3、向内表中插入数据,插入数据可以用insert数据into内表语句或者是 append数据to内表语句。可以插入整个内表到另一内表insert lines of 内表名称 into table 另一内表名称。亦可以进行累加插入:collect 数据into 内表名称。相同的数据进行累积。 4、修改内表数据,利用modify 关键字,modify 内表名称 from 数据(用结构 体表示的数据)。可以修改多行,modify 内表名称 from 数据 transporting 关键字 where 条件。 5、读内表数据的几种操作方法: 用Include来构造一个结构体 INCLUDE { {TYPE struc_type} | {STRUCTURE struc} } [AS name [RENAMING WITH SUFFIX suffix]]. TYPES: BEGIN OF t_day, work TYPE c LENGTH 8, free TYPE c LENGTH 16, END OF t_day. DATA BEGIN OF week. INCLUDE TYPE t_day AS monday RENAMING WITH SUFFIX _mon.

ABAP基础知识(完整版)---自学

ABAP基础知识(完整版)-上 SAP ABAP / 4 基础知识学习 数据类型 C :字符串 D :日期型格式为YYYYMMDD 例:'1999/12/03' F : 浮点数长度为8 I :整数 N :数值组成的字符串如:011,'302' P : PACKED数用于小数点数值如:12.00542 T : 时间格式为:HHMMSS 如:'14:03:00' X : 16进制数如:'1A03' *-------------------------------------------------------------------------------------* 变量声明 DATA [] [][decimals] 变量名称 变量类型及长度 初值 小数位数 exp: DATA : COUNTER TYPE P DECIMALS 3. NAME(10) TYPE C VALUE 'DELTA'. S_DATE TYPE D VALUE '19991203'. exp: DATA : BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE DECIMALS 2, END OF PERSON. 另外,有关DATA声明的指令还有: CONSTANTS(声明常数)、STATICS(临时变量声明). exp: CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'. STATICS 关键字 声明的变量仅在目前的程序中使用, 结束后会自动释放 语法: STATICS [] [] [] 系统专用变量说明 系统内部专门创建了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有: SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,'0'表示成功 SY-UNAME: 当前使用者登入SAP的USERNAME; SY-DATUM: 当前系统日期; SY-UZEIT: 当前系统时间; SY-TCODE: 当前执行程序的Transaction code

abap基本语法汇总情况

一数据类型和对象 在ABAP中,可以使用与标准数据声明相似的语法处理数据类型,而与数据对象无关。 在程序中必须声明要使用的全部数据对象。声明过程中,必须给数据对象分配属性,其中最重要的属性就是数据类型。 1.1 基本数据类型 对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。 类型 P 数据允许在小数点后有数字。有效大小可以是从 1 到 16 字节的任何值。将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号。在小数点后最多允许14 个数字。 1.2 系统定义的数据对象

1.3 确定数据对象的属性 如果要查明数据对象的数据类型,或者要在程序的运行期间使用其属性,可使用DESCRIBE 语句。语法如下: DESCRIBE FIELD [LENGTH ] [TYPE [COMPONENTS ]] [OUTPUT-LENGTH ] [DECIMALS ] [EDIT MASK ]. 将由语句的参数指定的数据对象的属性写入参数后的变量。 DESCRIBE FIELDS 语句具有下列参数: 1.3.1 确定字段长度 要确定数据对象的长度,利用DESCRIBE FIELD 语句使用 LENGTH 参数,如下所示:DESCRIBE FIELD LENGTH . 系统读取字段的长度,并将值写入字段。 1.3.2确定数据类型 要确定字段的数据类型,利用DESCRIBE FIELD 语句使用 TYPE 参数,如下所示:DESCRIBE FIELD TYPE [COMPONENTS ]. 系统读取字段的数据类型,然后将值写入字段。 除返回预定义数据类型 C、D、F、I、N、P、T 和 X 外,该语句还返回 XXX s 对于带前导符号的两字节整型 XXX b 对于无前导符号的一字节整型 XXX h 对于表 XXX C 对于组件中没有嵌套结构的结构 XXX C 对于组件中至少有一个嵌套结构的结构 1.3.3确定输出长度 要确定字段的输出长度,利用 DESCRIBE FIELD 语句使用 OUTPUT-LENGTH 参数,如下

ABAP学习方法

sap学习总结信管0911 杨钏 2011-12-2 sap学习总结 立谈之间,来集团参加erp项目已近四个月,通过集团erp项目组精心组织的培训,经 过自己的努力学习,我对erp的认识有了很大程度的转变。从一开始的不了解,带着对很多 专业名词及模块功能的疑问,到现在融入到erp项目组后,被sap庞大的功能所震撼;从一 开始认为sap仅仅是一种应用软件,跟其他公司的erp差不多,到现在深刻的地体会到sap 在企业管理中的重要位置;从一开始对sap可能带来的不便以及人力、财力、时间成本产生 抵触情绪,到现在对sap产生依赖心理。这些对sap认识的转变,让我意识到作为一名关键 用户和信息人员,为确保erp的上线成功,应该如何发挥自身的作用。 5月9日,初步接触到了sap软件。五月份到七月份我初步学习sap中abap语言,起初 感觉这跟平时学校学习的语言差不多,但是接触的越久,我就越深深的震撼abap语言的严 谨性,以及abap编辑语言在sap中的重要的位置,对其他工作模块工作有非常重要的影响。 通过这段时间abap语言的学习后,我进入技术组协助技术组中的各位老师,解决些小问题。 工作一段时间之后,我才发觉,erp前期项目的工作量大大超乎我的想像,它的重要性也让 人感到紧张。在每天的工作中,大家加班加点,热火朝天的讨论业务流程问题,以及程序代 码如何实现业务需求,有时候为了一个观点不同而争论不休,有时候又为达成共识而言欢高 兴。大家良好的沟通交流,让我们这些初识者更积极主动地参与进来。 在技术组组工作了近两周之后,为了让我们全面认识sap,从而更深入地开展工作,erp 项目组办公室组织人员进行了为期一周的sap开发语言abap的培训。对于我们来说,掌握 abap编程语言是深入理解sap软件知识要领的敲门砖。通过对abap的学习,我对sap的后 台有了更进一步的了解,也为下一步深入接触实际操作打下了基础。在basis组织的讲座和 培训中,我对basis有了一定了解,意识到abap对做好sap系统的后台规划、安装、配置、 管理、监控、维护、调优等工作的重要性。通过此次培训,大家对sap有了些许的初步了解, 对应该做好哪些工作有了初步的认识。 接下来说说,近半年我所学到的一些abap知识,报表显示alv alv是系统的一种网格的 显示方式,这种方式带有汇总\排序\筛选等功能,alv格式的数据是以单元格为单位显示,不 象一般的写屏方式拷出来或是导出成文件不同列的内容粘在一块,这种方式便于数据导出来 放在电子表格里进行加工. alv: abap list view / sap list view , 在sap报表数据输出使用最广泛的技术基于gui,在展现层处理 操作简单 较强的标准功能。排序、过滤、计算等 有三个版本的技术实现function ->grid->om bdc技术 首先简单解释一下bdc(batch data conversion): 在sap系统里,由于某种原因,可能需要重复输入数据,(数据不同,但是操作是相同的, 典型的情形就是切换系统的时候,旧系统的数据需要导入sap),大致过程不外乎是这样:输 入一个t-code, 进入一个某个屏幕,然后输入一个值(有时还要加上一些附加的checkbox选项等),点 执行或者确定按钮, 进入另一个屏幕,在某些字段输入值(`也可能是标注checkbox选中或者不选中)或者 修改这些字段里的值。

SAP ABAP_4编程语法汇总(中文版)

SAP ABAP_4编程语法汇总(中文版) 本文是由塞依教育编辑整理,了解更多SAP培训信息,请进入https://www.sodocs.net/doc/e49379582.html,/news/一、Data Type (数据类型) C: 字符(串), 长度为1, 最大有65535 BYTES, 初始值为: space,例: ‘M’; D: 日期, 格式为YYYYMMDD, 最大是’9999/12/31’ ,例:’1999/12/03’. F: 浮点数, 长度为8, 例如: 4.285714285714286E-01 I: 整数范围 :-2^31 ~ 2^31-1 N: 数值组成的字符串: 011, ‘302’. P: packed 数,用于小数点数值,例如: 12.00542; T: 时间, 格式为HHMMSS,例如: ’14:03:00’, ’21:30:39’. X: 16进制数, 例如‘1A03’. 二、变量宣告 变量宣告包含name, length, type, structure等,语法如下: DATA [] [] [] 其中: :变量名称,最长30个字符,不可含有 + , . , : ( ) 等字符; :变量类型及长度; :初值 :小数位数 Example 1: DATA: COUNTER TYPE P DECIMALS 3, NAME (10) TYPE C VALUE ‘Delta’, S_DATE TYPE D VALUE ‘19991203’. Example 2: DATA: BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE P DECIMALS 2, END OF PERSON. 另外,有关DATA宣告的指令还有: CONSTANTS(宣告常数)、STATICS(临时变量宣告). 三、系统专用变量说明 系统内部专门创建了SYST这个STRUCTURE,里面的字段存放系统变量,常用的系统变量有: SY-SUBRC : 系统执行某指令后,表示执行成功与否的变量,’0’表示成功 SY-UNAME: 当前使用者登入SAP的USERNAME; SY-DATUM: 当前系统日期; SY-UZEIT: 当前系统时间; SY-TCODE: 当前执行程序的Transaction code SY-INDEX : 当前LOOP循环过的次数 SY-TABIX: 当前处理的是internal table 的第几笔 SY-TMAXL: Internal table的总笔数

SAP ABAP语法实例(二)

SAP ABAP语法实例 调试 1 调试键 F8跳过后面所有断点,程序执行完 2 外部、会话、调试断点 调试断点-debug时打的断点,程序远程完后就会消失 会话断点-程序运行前通过会话断点按钮打的断点,在同一登录会话不同窗口都有效,用户注销后消失 外部断点-程序运行前通过外部断点按钮打的断点,用户注销后再登录还是有效,但只针对同一用户有效

Select SELECT FROM INTO [WHERE ] [GROUP BY ] [HAVING ] [ORDER BY ]. GROUP BY:用于将一组数据条目压缩为一个单行作为选择最终结果; HAVING:用于限定ORDER BY子句子数据目组的选择条件; ORDER BY:用于限定行排序; SELECT整体语法结构。 示例: 以上示例查询的是:20170503至20170510期间销售订单为JR01,且销售量大于50的单据的订单号、创建日期、创建者、类型以及合计销量,并按销售订单升序排序。 这里需要强调的是,如果要使用函数(如SUM、MAX、MIN),则需要将其他字段通过GROUP BY 进行分组。 如果需要继续对使用函数进行条件筛选,则可以使用关键字HAVING。 关键字ORDER BY 决定查询结果的排序方法,ASCENDING为升序,DESCENDING为降序。 1 SELECT SINGLE单行数据: SELECT SINGLE INTO FROM ... 如果系统找到一个完全符合指定条件的行,SY-SUBRC返回0,否则返回4。一般不需要指明所有字段,而是在SELECT后用"*"符号,若指定多个数据对象,则需要将这些对象放在括号中,并用逗号隔开,而且其顺序需要与SELECT子句中指明的表字段顺序一致。 这里的为结构非内表。 示例: TABLES: sflight. DATA: sum TYPE i VALUE 0. SELECT SINGLE SUM( seatsocc ) INTO sum FROM sflight WHERE carrid ='LH'. WRITE:/ sum. 以上实现的是航线为LH的合计座位数。 区别以下代码,上面代码只输出一行,下面则输出多行:

SAP-ABAP语法整理

1、ST05是用于在开发ABAP程序时,对应事务码取得的字段是“数据结构”而不是“透明表”的时候,通过ST05的“SQL跟踪”来获得相关“Select”的语句;一般查看“REC”列耗时比较多的“Select”语句; 2、跟踪时如果有涉及到“数量”这类有对数据表进行更新或插入操作的,则直接去查Update 和Insert的SQL语句; 3、在跟踪后,直接双击“对象名”列的名称,点选“表格”转到“SE11”的表字段表; 4、ABAP程序开头的Tables:“数据表名”,只有在屏幕中有用到的表,才需要声明;在程序中用到的表则不需要进行在Tables内声名; 5、抓SAP“文本”字段的数据,要先自定义变量,然后通过SE37的函数 “FUNCTION ?ZREAD_TEXT?”取回文本数据; 6、新建的ABAP程序,在测试运行的时候要先进行“激活”,才能测试运行; 7、SE93:把ABAP写好的程序指定一个事务码执行; 8、abap引号内的字符??必须要是大写; 9、ABAP select 里面的语句,不能像mssql有那么丰富的函数使用,需要导到内表后再对数据进行操作; 10、?EQ?是单个数据值,?BT?是between区间的意思。 11、在写select inner join 里面,要注意是否需要加上销售组织的条件;on 条件1 and 销售组织条件。 12、SELECTION-SCREEN,里面有两个子项,PARAMETERS和select-options。PARAMETERS 一般是用于必输项的屏幕参数设置,如果这个参数不是必输项的,就要用select-options。在select ...where条件里,用PARAMETERS的条件语法是“数据字段= 屏幕字段”;而select-options的条件语法是“数据字段in 屏幕字段”。 13、在where判断一个日期型数据是空,不是DEAKT = ??,也不是DEAKT is initial,而应该写成DEAKT = ?00000000? (8个0)。 14、一对多的inner join,如果取出的数据有重复,前面加上distinct,用法和MSSQL相同。 15、sy-subrc,指上一个语句执行是否成功;执行成功返回0,执行不成功返回非0。用if判断。 16、如果一个语句中,该名称同时可能代表内表或者同名表工作区,则需要在内表名称之后加“[]”指明当前操作的是内表对象。不提倡使用带有表头行的内表,而是应该总是声明结构相同的其他数据对象作为显示工作区进行内表行操作。 如何调整ABAP程序的性能(copy) 1、使用where语句 不推荐 Select * from zflight. Check : zflight-airln = …LF? and zflight-fligh = …BW222?. Endselect. 推荐 Select * from zflight where airln = …LF? and fligh = …222?. Endselect. 2、使用聚合函数 不推荐 Maxnu = 0. Select * from zflight where airln = …LF? and cntry = …IN?.

SAP必备基础语法

ABAP基础知识 数据类型 C :字符串 D :日期型格式为YYYYMMDD 例:'1999/12/03' F : 浮点数长度为8 I :整数 N :数值组成的字符串如:011,'302' P : PACKED数用于小数点数值如:12.00542 T : 时间格式为:HHMMSS 如:'14:03:00' X : 16进制数如:'1A03' *-------------------------------------------------------------------------------------* 变数宣告 DATA [] [][decimals] 变数名称变数类型及长度初值小数位数 exp: DATA : COUNTER TYPE P DECIMALS 3. NAME(10) TYPE C VALUE 'DELTA'. S_DATE TYPE D VALUE '19991203'. exp: DATA : BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE DECIMALS 2, END OF PERSON. 另外,有關DATA宣告的指令還有: CONSTANTS(宣告常數)、STATICS(臨時變數宣告). exp: CONSTANTS PI TYPE P DECIMALS 5 VALUE '3.14159'. STATICS 敘述 宣告的變數僅在目前的程式中使用, 結束後會自動釋放 語法: STATICS [] [] []

SY-SUBRC : 系統執行某指令后,表示執行成功与否的變數,'0' 表示成功 SY-UNAME: 當前使用者登入SAP的USERNAME; SY-DATUM: 當前系統日期; SY-UZEIT: 當前系統時間; SY-TCODE: 當前執行程式的Transaction code SY-INDEX : 當前LOOP循環過的次數 SY-TABIX: 當前處理的是internal table 的第几筆 SY-TMAXL: Internal table的總筆數 SY-SROWS: 屏幕總行數; SY-SCOLS: 屏幕總列數; SY-MANDT: CLIENT NUMBER SY-VLINE: 畫豎線 SY-ULINE: 畫橫線 TYPE 敘述 用來指定資料型態或宣告自定資料型態 Example: TYPES: BEGIN OF MYLIST, NAME(10) TYPE C, NUMBER TYPE I, END OF MYLIST. DATA LIST TYPE MYLIST. LIKE 敘述 跟TYPE敘述使用格式相同, 如 DATA TRANSCODE LIKE SY-TCODE. 不同的是LIKE 用在已有值的資料項, 如系統變數, 而TYPE敘述則是用 在指定資料型態。 *-------------------------------------------------------------------------------------* 输出 一. WRITE 語句 ABAP/4用來在屏幕上輸出資料的指令是WRITE指令,例如: WRITE: 'USER NAME IS:', SY-UNAME.

abap开发基础知识总结

1.内表的定义 通过关键字DATA对内表进行创建,内一的定义可以直接参考结构体或者其它内表及透明表,也可以直接定义字段,其中关键字如下: UNIQUE|NON-UNIQUE:指定关键字,只能应用于排序表或者哈希表。 INITIAL SIZE n:指定初始化内表大小。 WITH HEADERLINE:定义内表是否有表头。 具体定义有以下几种方式: DATA <内表名> TYPE <结构类型> WITH[UNIQUE|NON-UNIQUE] [INITIAL SIZE n] [WITH HEADER LINE]。 DATA <内表名> LIKE TABLE OF <内表或者透明表> WITH[UNIQUE|NON-UNIQUE] [INITIAL SIZE n] [WITH HEADER LINE]。 DATA BEGIN OF itab OCCURS n, ...... END OF itab [VALID BETWEEN f1 AND f2]。 2.内表的赋值 上面曾介绍过,内表分为有无HEADER LINE两种。对于有HEADER LINE的内表,可以通过填充HEADER LINE数据后或通过外部的Work Area向内表存储空间中追加数据,相关语法如下: APPEND( into) . 3.内表数据管理 3.1.内表的清空 CLEAR :仅清空HEADER LINE,对内表数据存储空间不影响。 REFRESH :清空内表数据存储空间,对HEADER LINE不影响。

REFRESH FROM TABLE:清空内表存储空间,填充从数据库表所获数据。 FREE :清空内表数据存储空间,对HEADER LINE不影响。 3.2.INSERT(向内表插入数据) 可以按内表的具体字段向表中插入一行或者多行数据,具体语法如下:INSERT [wa INTO|INITIAL LINE INTO] itab [INDEX idx]. INSERT [wa INTO|INITIAL LINE INTO] TABLE itab. INSERT LINES OF itab1 [FROM idx] [TO idx2] INTO itab2 [INDEX idx3]. 3.3.MODIFY(直接修改内表数据) 按内表位置或者具体内表字段值相等条件修改内表数据。 MODIFY itab [FROM wa] [INDEX idx][TRANSPORTING f1...fn] WHERE cond. 3.4.COLLECT(内表数据分类汇总) 将内表中相同的字段合并,若有类型为I的字段,则将其值加总。 COLLECT [wa INTO] itab. 3.5.SORT(内表数据排序) 对内表进行排序,可以指定具体的排序字段、排序方式(升/降),语法如下:SORT itab [BY f2 f2...fn] [ASCENDING/DESCENDING] 3.6.READ(读取) 依据具体行数或字段值等条件读取某一内表的数据。 READ TABLE itab FROM wa. READ TABLE itab WITH [TABLE] KEYk1=v1...kn=vn [BINARY SEARCH]. READ TABLE itab INDEX i.

ABAP_4语法集锦(中文版)

§. ABAP/4 DATA ELEMENT 一.Data Type (数据类型) C: 字符(串), 长度为1, 最大有65535 BYTES, 初始值为: space,例: ‘M’; D: 日期, 格式为YYYYMMDD, 最大是’9999/12/31’ ,例:’1999/12/03’. F: 浮点数, 长度为8, 例如: 4.285714285714286E-01 I: 整数范围 :-2^31 ~ 2^31-1 N: 数值组成的字符串: 011, ‘302’. P: packed 数,用于小数点数值,例如: 12.00542; T: 时间, 格式为HHMMSS,例如: ’14:03:00’, ’21:30:39’. X: 16进制数, 例如‘1A03’. 二.变量宣告 变量宣告包含name, length, type, structure等,语法如下: DATA [] [] [] 其中: :变量名称,最长30个字符,不可含有 + , . , : ( ) 等字符; :变量类型及长度; :初值 :小数位数 Example 1: DATA: COUNTER TYPE P DECIMALS 3, NAME (10) TYPE C VALUE ‘Delta’, S_DATE TYPE D VALUE ‘19991203’. Example 2: DATA: BEGIN OF PERSON, NAME(10) TYPE C, AGE TYPE I, WEIGHT TYPE P DECIMALS 2, END OF PERSON. 另外,有关DATA宣告的指令还有: CONSTANTS(宣告常数)、STATICS(临时变量宣告). 三.系统专用变量说明 系统内部专门创建了SYST这个STRUCTURE,里面的字段存放系统变量,常用的系统变量有: SY-SUBRC : 系统执行某指令后,表示执行成功与否的变量,’0’表示成功 SY-UNAME: 当前使用者登入SAP的USERNAME; SY-DATUM: 当前系统日期; SY-UZEIT: 当前系统时间;

ABAP的常用知识点

SAP常用知识点 SAP Basis学习2009-07-12 10:49:30 阅读249 评论0 字号:大中小 包括:{系统变量|TCODE|消息类型|数据类型|变量声明|Internal Table} KEY: 1.常用系统变量 2.常用TCODE 3.消息类型 4.数据类型 5.变量声明 6.Internal Table 1.常用系统变量 SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,’0’表示成功SY-DBLNT: 被处理过的记录的笔数 SY-UNAME: 当前使用者登入SAP的USERNAME; SY-DA TUM: 当前系统日期; SY-UZEIT: 当前系统时间; SY-TCODE: 当前执行程序的Transaction code SY-INDEX : 当前LOOP循环过的次数 SY-TABIX: 当前处理的是internal table 的第几笔 SY-TMAXL: Internal table的总笔数 SY-SROWS: 屏幕总行数; SY-SCOLS: 屏幕总列数; SY-MANDT: 當前系統編號(CLIENT NUMBER) SY-VLINE: 画竖线 SY-ULINE: 画横线 SY-PAGNO: 当前页号 SY-LINSZ: 当前报表宽度 SY-LINCT: 当前报表长度 SPACE: 空字符串 SY-LSIND: 列表索引页 SY-LISTI: 上一个列表的索引 SY-LILLI: 绝对列表中选定行的行号 SY-CUROW: 屏幕上的行 SY-CUCOL: 光标列 SY-CPAGE: 列表的当前显示页 SY-STARO:真实行号 SY-LISEL: 选择行的内容,长度为255 SY-LINNO: 当前行 2.常用TCODE

ABAP的SQL数据库语法详解与示例

§SQL语法 我们在编写ABAP4程序的时候,经常需要从TABLE中根据某些条件读取数据,.读取数据最常用的方法就是通过SQL语法实现的. ABAP/4中可以利用SQL语法创建或读取TABLE,SQL语法分为DDL(DATA DEFINE LANGUAGE)语言和DML(DATA MULTIPULATION LANGUAGE)语言,DDL语言是指数据定义语言,例如CREATE等, DML语言是数据操作语言,例如SELECT, INSERT等语句. SQL语句有OPEN SQL语句和NATIVE SQL语句. OPEN SQL语句不是标准SQL语句,是ABAP/4语言,利用OPEN SQL语句能在Databases 和Command 之间产生一个BUFFER,所以它有一个语言转换的过程. 而NA TIVE SQL语句则是标准的SQL语句, 它直接针对Databases操作. 一.OPEN SQL OPEN SQL 语句包含有: SELECT,INSERT,UPDATE,MODIFY,DELETE,OPEN CURSOR, FETCH,CLOSE CURSOR,COMMIT WORK,ROLLBACK WORK等. 1. SELECT语句 语法格式: SELECT [INTO ] [FROM ] [WHERE ] [GROUP BY ] [ORDER BY ] 其中: 指定要抓取的字段 将读取的记录存放在work area中 指定从那个TABLE中读取资料 抓取资料的条件 指定按那些字段分组 排序的字段及方式 相关的系统变量: SY-SUBRC = 0 表示读取数据成功 <> 0 表示未找到符合条件的记录 SY-DBLNT: 被处理过的记录的笔数. 相关的命令: EXIT. 退出循环. CHECK .如果逻辑表达式成立,则继续执行,否则,开 始下一次循环.

相关主题