3ABAP语法示例
- 格式:pdf
- 大小:165.20 KB
- 文档页数:12
abap at语法ABAP(Advanced Business Application Programming)是一种在SAP系统中使用的专用编程语言,用于开发和定制企业应用程序。
下面是ABAP语法的一些常见特征:1. ABAP程序以关键词 "REPORT" 或者 "PROGRAM" 开始,并以句点(.)结尾。
例如:REPORT Z_MY_REPORT.或PROGRAM Z_MY_PROGRAM.2. ABAP程序由不同的块组成,包括 "DATA"、"TYPES"、"BEGIN OF"、"LOOP"、"SELECT"、"IF"、"CASE" 等。
例如:DATA: lv_variable TYPE i. "定义变量TYPES: BEGIN OF ty_structure. "定义结构INCLUDE TYPE standard table of sflight. "包含标准表END OF ty_structure.LOOP AT it_table INTO lv_variable. "遍历表...ENDLOOP.SELECT * FROM sflight INTO TABLE it_table. "从数据库中选择数据IF lv_variable > 10. "条件判断...ENDIF.CASE lv_variable. "多重条件判断WHEN 1....WHEN 2....OTHERWISE....ENDCASE.3. ABAP语句以关键词和句点结尾,如 "DATA"、"WRITE"、"IF"、"ENDIF"等。
一些我工作中经常使用的ABAP新语法和函数,关键字,可以提高工作效率我平时工作积累下来的一些代码小片段。
(1) 直接批量生成数据到ABAP内表里:* 2017-05-14 7:17PM in Xun's house, WieslochINSERT demo_join1 FROM TABLE @( VALUE #(( a = 'a1' b = 'b1' c = 'c1' d = 'uu' )( a = 'a2' b = 'b2' c = 'c2' d = 'uu' )( a = 'a3' b = 'b3' c = 'c3' d = 'vv' )( a = 'a4' b = 'b4' c = 'c4' d = 'ww' ) ) ).(2) 采用内联方式遍历ABAP内表:DATA address_annos TYPE STANDARD TABLE OF field_anno-annonameWITH EMPTY KEY.address_annos = VALUE #(( '.FULLNAME' )( 'SEMANTICS.ADDRESS.STREET' )( 'SEMANTICS.ADDRESS.CITY' )( 'SEMANTICS.ADDRESS.ZIPCODE' )( 'SEMANTICS.ADDRESS.COUNTRY' ) ).DATA address_components TYPE STANDARD TABLE OF field_anno-fieldnameWITH EMPTY KEY.address_components = VALUE #(FOR address_anno IN address_annos( VALUE #( fieldannos[ annoname = address_anno ]-fieldnameDEFAULT '---' ) ) ).(3) 两个内表间数据的复制,两个内表的列结构可以不同,开发人员需要额外传入一个映射表,告诉corresponding关键字,源内表的哪一列应该赋到目标内表的哪一列。
abap语法ABAP1 了解ABAP2 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数据类型为IABAP的命名规则使用至少1个但不超过8个字符。
不要使用下列字符:句点(.);逗号(,);空格( );括号‘(’‘)’;单引号(‘);双引号(“);等号(=);星号(*);百分号(%);ABAP数据类型(八种基本数据类型)D :日期类型,格式为YYYYMMDD,长度为8T :时间类型,格式为HHMMSS,长度为6I :整数类型,默认长度为4,初始值为0F :浮点类型,默认长度为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.87654321ABAP运算数值运算(在ABAP中数学表达式可以任意多层嵌套)算术运算二元操作符包括:–+ :加法– - :减法–* :乘法–/ :除法–** :乘方–DIV :整除忽略余数–MOD :取模需要注意,圆括号和操作符都是关键字,需要跟操作数之间至少用一个空格分开。
SAP ABAP语法实例调试1 调试键F8跳过后面所有断点,程序执行完2 外部、会话、调试断点调试断点-debug时打的断点,程序远程完后就会消失会话断点-程序运行前通过会话断点按钮打的断点,在同一登录会话不同窗口都有效,用户注销后消失外部断点-程序运行前通过外部断点按钮打的断点,用户注销后再登录还是有效,但只针对同一用户有效SelectSELECT <result> FROM <source> INTO <target> [WHERE <condition>] [GROUP BY <fields>] [HAVING <cond>] [ORDER BY <fields>].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 <RESULT> INTO <target> FROM <source> ...如果系统找到一个完全符合指定条件的行,SY-SUBRC返回0,否则返回4。
一般不需要指明所有字段,而是在SELECT后用"*"符号, 若指定多个数据对象,则需要将这些对象放在括号中,并用逗号隔开,而且其顺序需要与SELECT子句中指明的表字段顺序一致。
abap open dataset 语法摘要:1.ABAP开放数据集概述2.ABAP开放数据集语法结构3.开放数据集的用途和优势4.示例:编写ABAP开放数据集程序5.总结与建议正文:ABAP(Advanced Business Application Programming)是一种用于SAP R/3系统的高级编程语言。
在ABAP中,开放数据集(Open Data Set)是一种用于读取和写入外部数据的技术。
通过使用开放数据集,ABAP程序可以与外部数据源(如文本文件、Excel文件等)进行交互,从而实现数据的导入和导出。
本文将详细介绍ABAP开放数据集的语法、用途和示例程序。
一、ABAP开放数据集概述开放数据集是ABAP中一种重要的数据传输机制,它允许程序直接访问外部数据源。
与传统的数据传输方式(如DML语句)相比,开放数据集具有更高的灵活性和可扩展性。
通过使用开放数据集,开发者可以轻松地在ABAP程序中处理来自不同数据源的数据。
二、ABAP开放数据集语法结构ABAP开放数据集的语法结构如下:```DATA: <数据集名称> TYPE <数据类型> LIKE <外部数据源名称>```其中,- 数据集名称:用于定义开放数据集的名称。
- 数据类型:用于指定开放数据集的数据类型。
- 外部数据源名称:用于表示外部数据源的名称,如文件、数据库等。
例如,以下代码定义了一个名为`my_file`的开放数据集,用于读取名为`example.txt`的文本文件:```abapDATA: my_file TYPE fc LIKE "example.txt".```三、开放数据集的用途和优势1.用途- 读取和写入外部数据:开放数据集可用于在ABAP程序中读取和写入外部数据,如文本文件、Excel文件、数据库等。
- 数据转换:通过开放数据集,可以实现不同数据格式之间的转换,如将从数据库中获取的数据转换为文本文件格式。
abap write语句ABAP WRITE语句是SAP中一个非常常用的输出功能,它可以在屏幕上或者其他输出设备上显示文本内容。
WRITE语句可以用于输出单行文本,也可以用于输出多行文本。
在ABAP中,使用WRITE语句可以将文本输出到不同的输出设备上,比如屏幕、打印机或者其他外部设备。
它可以显示各种类型的数据,如字符串、数字、日期等。
WRITE语句的基本语法如下:WRITE <文本> [TO <输出设备>].其中,<文本>是要输出的文本内容,可以是字符串常量、变量或者表达式。
TO <输出设备>是可选的,指定要将文本输出到哪个设备上,默认为屏幕。
下面我们来看几个例子,了解如何使用WRITE语句。
例子1:输出单行文本WRITE 'Hello World'.执行以上代码,屏幕上将会显示"Hello World"。
例子2:输出变量的值DATA: lv_name TYPE string.lv_name = 'John Smith'.WRITE lv_name.执行以上代码,屏幕上将会显示"John Smith"。
例子3:输出表达式DATA: lv_value TYPE i.lv_value = 10 + 5.WRITE 'The result is' lv_value.执行以上代码,屏幕上将会显示"The result is 15"。
除了基本的WRITE语句,ABAP还提供了一些特殊功能的WRITE语句,如控制输出格式、设置文本颜色、添加换行等。
这些功能可以通过使用不同的选项来实现。
以下是一些常用的选项:- NO-GAP:在输出时不留空白字符。
- NO-DISPLAY:不显示文本。
- NO-GROUP:不进行分组。
- ULINE:在文本下方添加下划线。
abap find语法
ABAP 的 FIND 语法用于在字符串中查找子字符串,并返回子字
符串的位置。
以下是使用中文编写的 FIND 语法的示例:
FIND 子字符串 IN 目标字符串.
在上述语句中,"子字符串"是要查找的字符串,"目标字符串"是
要在其中进行查找的字符串。
如果找到了子字符串,则系统返回子字
符串在目标字符串中的位置。
示例代码:
DATA: 目标字符串 TYPE STRING,
子字符串 TYPE STRING,
位置 TYPE I.
目标字符串 = 'ABAP 是一种编程语言,用于开发企业级应用程序。
'.
子字符串 = '编程语言'.
FIND 子字符串 IN 目标字符串.
IF sy-subrc = 0.
位置 = sy-fdpos.
WRITE: '子字符串在目标字符串中的位置:', 位置.
ELSE.
WRITE: '未找到子字符串'.
ENDIF.
上述代码中,我们定义了一个目标字符串和一个子字符串,并使
用 FIND 语句在目标字符串中查找子字符串。
如果找到了子字符串,
则将子字符串在目标字符串中的位置存储在位置变量中,并输出结果。
如果没有找到子字符串,则输出 "未找到子字符串"。
这是一个简单的使用 ABAP 的 FIND 语法在字符串中查找子字符
串的示例。
在实际应用中,您可以根据具体需求进行相应的调整和扩展。
abap search语法ABAP Search语法是一种用于在ABAP程序中对内部表或数据库表进行搜索的语法。
以下是ABAP Search语法的一般形式:SEARCH [key] [FROM itab [rez] [lines] INTO target][WHERE condition].[POSITION posLOG entails posVAL]其中:- [key]:要搜索的键值。
- [FROM itab [rez] [lines] INTO target]:指定要搜索的内部表或数据库表以及搜索结果的存储位置。
- [WHERE condition]:可选参数,用于指定搜索的条件。
- [POSITION posLOG entails posVAL]:可选参数,用于指定搜索结果的位置。
以下是ABAP Search语法的一些示例:1. 搜索内部表itab中键值为'ABC'的记录,并将结果存储在目标变量target中。
SEARCH 'ABC' FROM itab INTO target.2. 搜索内部表itab中满足条件的记录,并将结果存储在目标变量target中。
SEARCH [WHERE condition] FROM itab INTO target.3. 搜索数据库表TABLE_NAME中键值为'ABC'的记录,并将结果存储在目标变量target中。
SEARCH 'ABC' FROM TABLE_NAME INTO target.4. 搜索数据库表TABLE_NAME中满足条件的记录,并将结果存储在目标变量target中。
SEARCH [WHERE condition] FROM TABLE_NAME INTO target.注意:ABAP Search语法在新版本的ABAP中已过时,推荐使用更高级的查询语句如SELECT语句进行数据搜索和检索。
abap 语法手册ABAP语法手册ABAP(Advanced Business Application Programming)是一种用于SAP软件开发的编程语言。
这份手册将介绍ABAP语言的基本语法和常用用法,为开发人员提供一个参考指南。
1. 数据类型和变量声明:ABAP支持多种数据类型,例如整数(INT),浮点数(FLOAT),字符串(STRING)和日期(DATE)。
变量声明可以通过关键字DATA进行,例如:DATA: my_integer TYPE i.DATA: my_string TYPE string.2. 控制结构:ABAP支持常见的控制结构,如条件语句(IF...ELSE...ENDIF)和循环语句(DO...ENDDO,WHILE...ENDWHILE)。
例如:IF my_integer > 10.WRITE: 'The value is greater than 10'.ELSE.WRITE: 'The value is less than or equal to 10'.ENDIF.3. 函数和方法:ABAP允许定义函数和方法来实现特定的功能。
函数可以通过关键字FUNCTION和ENDFUNCTION来定义,而方法可以通过关键字METHOD和ENDMETHOD来定义。
例如:FUNCTION my_function.WRITE: 'Hello, world!'.ENDFUNCTION.4. 数据表和内表:ABAP中的数据表可以通过关键字DATA和TABLE来声明,内表可以通过关键字INTERNAL TABLE和TYPES来声明。
例如:DATA: my_table TYPE TABLE OF my_structure.DATA: my_internal_table TYPE TABLE OF my_structure.5. 数据访问:ABAP提供了方便的数据访问方法,例如通过SELECT语句从数据库中检索数据,或者通过READ TABLE语句从内表中检索数据。
ABAP(Advanced Business Application Programming)是一种高级商业应用程序编程语言,主要用于SAP系统的开发。
下面将对ABAP中的功能用法进行全面阐述,包括定义、用法、重点、难点和注意事项等方面,并附有应用案例。
一、定义ABAP是一种面向对象的语言,用于开发SAP系统的功能模块、报表、界面等。
它是一种高级编程语言,能够简化SAP系统的开发过程,提高开发效率和代码质量。
二、用法1.定义变量和方法在ABAP中,可以使用声明语句来定义变量和方法。
变量是用来存储数据的标识符,而方法是用来执行特定操作的函数。
例1:定义一个整数型变量i,并将其赋值为10。
例2:定义一个方法get_sum,用于计算两个数的和。
2.条件语句和循环语句在ABAP中,可以使用条件语句和循环语句来实现程序的逻辑控制。
条件语句用于根据条件执行不同的操作,而循环语句则用于重复执行特定的操作。
例3:使用条件语句判断一个数是否为偶数。
例4:使用循环语句计算1到10的和。
3.事务代码和报表输出在ABAP中,可以使用事务代码和报表输出功能来实现与用户的交互。
事务代码用于执行特定的业务流程,而报表输出功能则可以将查询结果以表格或报表的形式呈现给用户。
例5:使用事务代码SE38执行一个程序。
在命令行输入事务代码SE38,输入程序名,按Enter键执行程序。
三、重点1.熟练掌握ABAP语法和程序结构,能够编写简单的程序和函数。
2.了解SAP系统的数据模型和业务逻辑,能够根据实际需求进行程序设计。
3.掌握ABAP中的常用函数和工具,如数据转换函数、文本处理函数、报表输出等。
4.了解ABAP程序的调试和测试方法,能够进行程序调试和性能优化。
四、难点1.ABAP中的复杂语法和程序结构,如条件判断、循环控制、异常处理等。
2.与其他系统的集成和交互,如与SAP系统外的数据库或应用程序的接口开发。
3.理解SAP系统的业务逻辑和数据模型,能够根据业务需求进行程序设计。
abap 常用函数用法-回复标题:ABAP常用函数用法详解ABAP(Advanced Business Application Programming)是SAP公司开发的一种高级编程语言,广泛应用于企业资源规划(ERP)系统中。
在ABAP编程中,函数的使用是不可或缺的一部分。
本文将详细介绍一些ABAP常用函数的用法。
1. CONCATENATE函数CONCATENATE函数用于连接两个或更多的字符字段或变量。
其基本语法如下:CONCATENATE expression1 [ INTO target ] [ SEPARATED BY separator ].例如,我们想要连接两个字符串"Hello"和"World":DATA(str1) = 'Hello'.DATA(str2) = 'World'.DATA(result) = CONCATENATE str1 ' ' str2.在上述代码中,'result'的值将会是"Hello World"。
2. SUBSTRING函数SUBSTRING函数用于从字符串中提取一部分子字符串。
其基本语法如下:SUBSTRING string [ OFFSET offset ] [ LENGTH length ].例如,我们想要从字符串"Hello World"中提取"World":DATA(full_str) = 'Hello World'.DATA(sub_str) = SUBSTRING full_str OFFSET 6.在上述代码中,'sub_str'的值将会是"World"。
3. REPLACE函数REPLACE函数用于在字符串中替换某个子字符串。
ABAP是一种特殊领域语言,用于在企业环境中执行业务应用程序的开发。
ABAP switch语法在编写ABAP程序时起着至关重要的作用。
本文将介绍ABAP switch语法的基本用法、注意事项以及示例,以帮助读者更好地理解和应用ABAP switch语法。
一、ABAP switch语法的基本用法ABAP switch语法是一种多路分支语法,用于根据不同条件执行不同的代码块。
通过在不同情况下选择不同的逻辑分支,可以更加灵活地处理各种业务场景。
在ABAP中,switch语法的基本格式如下:```SWITCH <expression>.CASE value1."当表达式等于value1时执行的代码ENDCASE.CASE value2."当表达式等于value2时执行的代码ENDCASE....CASE valueN."当表达式等于valueN时执行的代码ENDCASE.CASE OTHERS."当表达式不等于任何已定义的值时执行的代码ENDCASE.ENDSWITCH.```在上面的代码中,expression是一个表达式,可以是变量、字段或常量等。
当表达式的值与某个value相等时,对应的代码块将被执行。
如果表达式的值不等于任何已定义的value,则执行CASE OTHERS 下的代码块。
二、ABAP switch语法的注意事项在使用ABAP switch语法时,需要注意以下几点:1. 每个CASE子句中的value必须是唯一的,否则可能会导致逻辑错误。
2. 在SWITCH语句中,必须包含至少一个CASE子句,否则会导致语法错误。
3. 当表达式的值与某个value相等时,对应的代码块将被执行,然后立即跳出SWITCH语句,不会继续执行其他的CASE子句。
如果需要连续执行多个条件下的代码块,可以使用CASE value1 OR value2 OR ...语法。
abap write语句摘要:1.ABAP Write 语句概述2.ABAP Write 语句的基本语法3.ABAP Write 语句的应用示例正文:【1.ABAP Write 语句概述】ABAP Write 语句是ABAP 编程语言中用于向屏幕或文件输出数据的语句。
它可以将数据按照指定的格式输出,从而实现数据在屏幕上的显示或者文件的保存。
Write 语句在ABAP 编程中具有广泛的应用,是ABAP 开发者必备的技能之一。
【2.ABAP Write 语句的基本语法】ABAP Write 语句的基本语法如下:```WRITE: 输出方向,数据项。
```其中,输出方向可以是屏幕(SCREEN)或文件(FILE),数据项可以是变量、常量或表达式。
例如,以下语句将变量`lvb_num`的值输出到屏幕:```WRITE: SCREEN, lvb_num.```以下语句将变量`lvb_num`的值输出到文件:```WRITE: FILE, lvb_num.```【3.ABAP Write 语句的应用示例】假设我们有一个名为`lvb_num`的变量,其值为1234,我们希望将这个值输出到屏幕和文件。
可以使用以下代码实现:```DATA: lvb_num TYPE i,lvb_file TYPE string VALUE "lvb_num.txt".WRITE: SCREEN, lvb_num.WRITE: FILE, lvb_num.```在上述代码中,我们首先定义了一个整数类型的变量`lvb_num`,并将其值设为1234。
然后,我们定义了一个字符串类型的变量`lvb_file`,并将其值设为输出文件的路径。
接下来,我们分别使用Write 语句将`lvb_num`的值输出到屏幕和文件。
总之,ABAP Write 语句是ABAP 编程中用于输出数据的重要语句,它可以将数据按照指定的格式输出到屏幕或文件。
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.INCLUDE TYPE t_day AS tuesday RENAMING WITH SUFFIX _tue.INCLUDE TYPE t_day AS wednesday RENAMING WITH SUFFIX _wed. DATA END OF week.可以用两种方式来访问结构体的内容:1、直接用结构体的名称来访问:week-monday-work, week-monday-free, week-tuesday-work2、用重新命名的后缀名字来访问:week-work_mon, week-free_mon, week-work_tue类对象的定义方式:CLASS class DEFINITION [class_options].[PUBLIC SECTION.[components]][PROTECTED SECTION.[components]][PRIVATE SECTION.[components]]ENDCLASS.类对象的实现方式:CLASS class IMPLEMENTATION....METHOD ......ENDMETHOD....ENDCLASS.类对象的继承:CLASS class DEFINITIONLOCAL FRIENDS class1 class2 ...intf1 intf2 ... CLASS class DEFINITION { {DEFERRED [PUBLIC]} | LOAD }.[PUBLIC][INHERITING FROM superclass][ABSTRACT][FINAL][CREATE {PUBLIC|PROTECTED|PRIVATE}][SHARED MEMORY ENABLED][FOR TESTING][[GLOBAL] FRIENDS class1 class2 ...intf1 intf2 ...].Deferred 关键字可以预先声明一个未被定义的类。
(完整版)abap基本语法汇总编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整版)abap基本语法汇总)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整版)abap基本语法汇总的全部内容。
一数据类型和对象在ABAP中,可以使用与标准数据声明相似的语法处理数据类型,而与数据对象无关。
在程序中必须声明要使用的全部数据对象。
声明过程中,必须给数据对象分配属性,其中最重要的属性就是数据类型。
1。
1对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。
类型 P 数据允许在小数点后有数字。
有效大小可以是从 1 到 16 字节的任何值。
将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号。
在小数点后最多允许 14 个数字。
1。
2 系统定义的数据对象1。
3 确定数据对象的属性如果要查明数据对象的数据类型,或者要在程序的运行期间使用其属性,可使用 DESCRIBE 语句.语法如下:DESCRIBE FIELD 〈f〉 [LENGTH <l〉] [TYPE <t> [COMPONENTS 〈n>]][OUTPUT-LENGTH 〈o>][DECIMALS 〈d〉][EDIT MASK 〈m>].将由语句的参数指定的数据对象〈f〉的属性写入参数后的变量。
DESCRIBE FIELDS 语句具有下列参数:1.3.1 确定字段长度要确定数据对象的长度,利用DESCRIBE FIELD 语句使用 LENGTH 参数,如下所示:DESCRIBE FIELD <f> LENGTH <l>。
第三章 ABAP语法示例3.1 FIELD-SYMBOLSFIELD-SYMBOLS是字段符号,类似于FOXPRO的宏,FOXPRO能把一段程序存入一个字符串中,再通过某种方式使该字符串运行。
SAP的FIELD-SYMBOLS,把一个结构定义分配给字段符号,通过字段符号来引用结构中的成员。
【例3.1】REPORT YTEST001.DATA:BEGIN OF MAN,NAME(30) TYPE C,HIGH TYPE P DECIMALS 2,WEIGHT TYPE P DECIMALS 2,END OF MAN.FIELD-SYMBOLS <FSA> LIKE MAN.DATA MAN1 LIKE MAN.MAN1-NAME = '张林'.MAN1-HIGH = '1.78'.MAN1-WEIGHT = 140.ASSIGN MAN1 TO <FSA>.WRITE: / <FSA>-NAME,<FSA>-HIGH,<FSA>-WEIGHT.输出结果如图3-1所示。
图3-13.2 字符串处理3.2.1 合并字符串【例3.2】REPORT YTEST001.DATA: C1(2) TYPE C,C2(2) TYPE C,C3(2) TYPE C,C4(2) TYPE C,C5(20) TYPE C,C9(2) TYPE C.C1 = 'AB'.C2 = 'CD'.C3 = 'EF'.C4 = 'GH'.C9 = '+'.CONCATENATE C1 C2 C3 C4 INTO C5.WRITE C5.CONCATENATE C1 C2 C3 C4 INTO C5 SEPARATED BY C9.WRITE / C5.输出结果如图3-2所示。
ABAP语法基础篇(3)——赋值三、赋值在 ABAP/4中,可以在声明语句和操作语句中给数据对象赋值。
在声明语句中,将初始值赋给声明的数据对象。
为此,可以在DATA 、常量或 STATICS 语句中使⽤ VALUE 参数。
要在操作语句中给数据对象赋值,可以使⽤:MOVE语句和WRITE TO语句,对应于赋值运算符=3.1⽤MOVE赋值3.1.1 基本赋值操作要将值(⽂字)或源字段的内容赋给⽬标字段,可以使⽤MOVE语句或赋值运算符=。
MOVE语句的语法如下所⽰:MOVE <f1> TO <f2>.MOVE语句将源字段<f1>的内容传送给⽬标字段<f2>。
<f1>可以是任何数据对象。
<f2>必须是变量,不能是⽂字或常量。
传送后,<f1>的内容保持不变。
赋值运算符=的语法如下所⽰:<f2> = <f1>.MOVE语句和赋值运算符功能相同。
3.1.2 ⽤指定偏移量赋值可以在每条 ABAP/4 语句中为基本数据类型指定偏移量和长度。
在这种情况下,MOVE语句语法如下:MOVE <f1>[+<o1>][(<l1>)] TO <f2>[+<o2>][(<l2>)].将字段<f1>从<o1>+1位置开始且长度为<l1>的段内容赋给字段<f2>,覆盖从<o2>+1位置开始且长度为<l2>的段。
在MOVE语句中,所有偏移量和长度指定都可为变量。
3.1.3 在字符串组件之间赋值描述的MOVE语句赋值⽅法适⽤于基本数据对象和结构化数据对象。
另外,还有⼀种MOVE语句变体,允许将源字段串组件内容复制到⽬标字段串组件中。
语法如下:MOVE-CORRESPONDING <string1> TO <string2>.该语句将字段串<string1>组件的内容赋给有相同名称的字段串<string2>组件。
abap 常量定义
在ABAP中,可以使用关键字“CONSTANTS”来定义常量。
常量一旦定义后,其值在整个程序生命周期里无法再改变。
常量的定义语法如下:
abap
CONSTANTS <常量> (<长度>) TYPE <数据类型> VALUE <初始值>
其中:
•<常量>是常量的名称。
•<长度>是可选参数,表示常量的长度或大小。
•<数据类型>是常量的数据类型,可以是数字型、字符型等。
•<初始值>是常量的初始值,必须在声明时指定。
以下是一个示例:
abap
CONSTANTS lv_const TYPE i VALUE 10.
在这个示例中,定义了一个名为“lv_const”的整数型常量,初始值为10。
需要注意的是,ABAP中的常量只能是静态的,即一旦定义后其值不能被修改。
如果需要定义一个可以修改的变量,应该使用“DATA”关键字来声明变量。
abap select语法where条件中用判断语句
在ABAP中,您可以使用`SELECT`语句来从数据库表中选择数据。
如果您想在`WHERE`子句中使用判断语句,可以使用条件表达式或`IF`语句。
下面是一个使用条件表达式的例子:
```abap
DATA: lv_name TYPE string,
lv_age TYPE i.
SELECT FROM employees INTO TABLE itab
WHERE name = lv_name AND age = IF lv_age = 10 THEN 10 ELSE 20 ENDIF.
```
在上面的例子中,`IF`语句用于根据`lv_age`的值来设置`WHERE`子句的条件。
如果`lv_age`等于10,则条件为10;否则条件为20。
您还可以使用逻辑运算符来组合多个条件,例如:
```abap
DATA: lv_name TYPE string,
lv_age TYPE i.
SELECT FROM employees INTO TABLE itab
WHERE name = lv_name AND age = 10 AND ( gender = 'M' OR gender = 'F' ).
```
在上面的例子中,使用了逻辑运算符`AND`和`OR`来组合多个条件。
根据您的需求,您可以根据条件表达式或`IF`语句来构建适当的`WHERE`子句。
abap subtract用法-回复abap subtract是一种在ABAP编程语言中用于减法操作的函数。
它用于从一个数量或变量中减去另一个数量或变量,并将结果存储在一个新的变量中。
这个函数在很多开发任务中非常有用,特别是在计算和处理数据方面。
在本文中,我们将一步一步地介绍如何使用abap subtract 函数,并提供一些示例来帮助读者更好地理解它的用法。
首先,让我们来看一下abap subtract函数的语法格式。
它的基本语法如下:SUBTRACT <subtrahend> FROM <minuend>.其中,<subtrahend>是要从中减去的数量或变量,而<minuend>是被减数。
这个函数执行减法操作,并将结果存储在一个新的变量中。
下面是一个实际的例子,展示了如何使用abap subtract函数进行简单的减法操作:DATA: num1 TYPE I VALUE 5,num2 TYPE I VALUE 3,result TYPE I.SUBTRACT num2 FROM num1 INTO result.在这个例子中,我们声明了两个整数类型的变量num1和num2,并将它们的初始值分别设置为5和3。
然后,我们使用abap subtract函数将num2的值从num1中减去,并将结果存储在一个新的变量result 中。
在这个例子中,result将被计算为2。
除了减法操作,abap subtract函数还提供了更多的选项,以满足不同的计算需求。
下面是abap subtract函数的一些常见选项:1. NO SIGN: 这个选项将忽略计算结果的符号位。
默认情况下,abap subtract函数会考虑操作数的符号位。
但是,有时候我们不希望得到负数作为结果,这时我们可以使用NO SIGN选项。
2. CARRY: 这个选项用于处理进位问题。
当减数大于被减数时,abap subtract函数将设置一个进位位。
第三章 ABAP语法示例3.1 FIELD-SYMBOLSFIELD-SYMBOLS是字段符号,类似于FOXPRO的宏,FOXPRO能把一段程序存入一个字符串中,再通过某种方式使该字符串运行。
SAP的FIELD-SYMBOLS,把一个结构定义分配给字段符号,通过字段符号来引用结构中的成员。
【例3.1】REPORT YTEST001.DATA:BEGIN OF MAN,NAME(30) TYPE C,HIGH TYPE P DECIMALS 2,WEIGHT TYPE P DECIMALS 2,END OF MAN.FIELD-SYMBOLS <FSA> LIKE MAN.DATA MAN1 LIKE MAN.MAN1-NAME = '张林'.MAN1-HIGH = '1.78'.MAN1-WEIGHT = 140.ASSIGN MAN1 TO <FSA>.WRITE: / <FSA>-NAME,<FSA>-HIGH,<FSA>-WEIGHT.输出结果如图3-1所示。
图3-13.2 字符串处理3.2.1 合并字符串【例3.2】REPORT YTEST001.DATA: C1(2) TYPE C,C2(2) TYPE C,C3(2) TYPE C,C4(2) TYPE C,C5(20) TYPE C,C9(2) TYPE C.C1 = 'AB'.C2 = 'CD'.C3 = 'EF'.C4 = 'GH'.C9 = '+'.CONCATENATE C1 C2 C3 C4 INTO C5.WRITE C5.CONCATENATE C1 C2 C3 C4 INTO C5 SEPARATED BY C9.WRITE / C5.输出结果如图3-2所示。
图3-2本例中,先将字符串C1、C2、C3、C4合并到字符串C5,再将字符串C1、C2、C3、C4用间隔符字符串C9合并到字符串C5。
3.2.2 拆分字符串【例3.3】REPORT YTEST001.DATA: C1(2) TYPE C,C2(2) TYPE C,C3(2) TYPE C,C4(2) TYPE C,C5(20) TYPE C V ALUE '11 * 22 * 33 * 44',C9(2) TYPE C.C9 = '*'.WRITE C5.SPLIT C5 AT C9 INTO C1 C2 C3 C4.WRITE: / C1, C2, C3, C4.输出结果如图3-3所示。
图3-33.3 内表带有标题行【例3.4】REPORT YTEST001.DATA: BEGIN OF MAN,NAME(20) TYPE C,HIGH TYPE P DECIMALS 2,WEIGHT TYPE P DECIMALS 2,END OF MAN.DATA: MAN1 LIKE TABLE OF MAN WITH HEADER LINE,MAN2 LIKE TABLE OF MAN.MAN-NAME = '张参'.MAN-HIGH = '1.68'.MAN-WEIGHT = 120.APPEND MAN TO MAN1.MAN-NAME = '刘志'.MAN-HIGH = '1.78'.MAN-WEIGHT = 160.APPEND MAN TO MAN1.MOVE MAN1[] TO MAN2.LOOP AT MAN2 INTO MAN.WRITE: / MAN-NAME,MAN-HIGH, MAN-WEIGHT.ENDLOOP.LOOP AT MAN1.WRITE: / MAN1-NAME,MAN1-HIGH,MAN1-WEIGHT.ENDLOOP.本例中内表MAN1有表头,内表MAN2无表头,输出结果一样,如图3-4所示。
图3-43.4 内表排序【例3.5】REPORT YTEST001.DATA: BEGIN OF MAN,NAME(20) TYPE C,HIGH TYPE P DECIMALS 2,WEIGHT TYPE P DECIMALS 2,END OF MAN.DATA: MAN1 LIKE HASHED TABLE OF MAN WITH UNIQUE KEY NAME.MAN-NAME = '张参'.MAN-HIGH = '1.68'.MAN-WEIGHT = 120.INSERT MAN INTO TABLE MAN1.MAN-NAME = '刘志'.MAN-HIGH = '1.78'.MAN-WEIGHT = 160.INSERT MAN INTO TABLE MAN1.MAN-NAME = '朱强'.MAN-HIGH = '1.72'.MAN-WEIGHT = 130.INSERT MAN INTO TABLE MAN1..LOOP AT MAN1 INTO MAN.WRITE: / MAN-NAME,MAN-HIGH, MAN-WEIGHT.ENDLOOP.SORT MAN1 DESCENDING BY WEIGHT ASCENDING.SKIP.ULINE.LOOP AT MAN1 INTO MAN.WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.ENDLOOP.输出结果如图3-5所示。
图3-53.5 修改内表数据【例3.6】REPORT YTEST001.DATA: BEGIN OF MAN,NAME(20) TYPE C,HIGH TYPE P DECIMALS 2,WEIGHT TYPE P DECIMALS 2,END OF MAN.DATA: MAN1 LIKE HASHED TABLE OF MAN WITH UNIQUE KEY NAME.MAN-NAME = '张参'.MAN-HIGH = '1.68'.MAN-WEIGHT = 120.INSERT MAN INTO TABLE MAN1.MAN-NAME = '刘志'.MAN-HIGH = '1.78'.MAN-WEIGHT = 160.INSERT MAN INTO TABLE MAN1.LOOP AT MAN1 INTO MAN.WRITE: / MAN-NAME,MAN-HIGH, MAN-WEIGHT.ENDLOOP.MAN-NAME = '张参'.MAN-HIGH = '2.22'.MAN-WEIGHT = 220.MODIFY TABLE MAN1 FROM MAN.LOOP AT MAN1 INTO MAN.WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.ENDLOOP.本例根据关键字修改内表,输出结果如图3-6所示。
图3-63.6 删除内表记录【例3.7】REPORT YTEST001.DATA: BEGIN OF MAN,NAME(20) TYPE C,HIGH TYPE P DECIMALS 2,WEIGHT TYPE P DECIMALS 2,END OF MAN.DATA: MAN1 LIKE HASHED TABLE OF MAN WITH UNIQUE KEY NAME.MAN-NAME = '张参'.MAN-HIGH = '1.68'.MAN-WEIGHT = 120.INSERT MAN INTO TABLE MAN1.MAN-NAME = '刘志'.MAN-HIGH = '1.78'.MAN-WEIGHT = 160.INSERT MAN INTO TABLE MAN1.LOOP AT MAN1 INTO MAN.WRITE: / MAN-NAME,MAN-HIGH, MAN-WEIGHT.ENDLOOP.DELETE MAN1 WHERE NAME = '张参'.SKIP.ULINE.LOOP AT MAN1 INTO MAN.WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT.ENDLOOP.输出结果如图3-7所示。
图3-7 3.7 使用索引插入内表行【例3.8】REPORT YTEST001.DATA: BEGIN OF MAN,NAME(20) TYPE C,HIGH TYPE P DECIMALS 2,WEIGHT TYPE P DECIMALS 2,END OF MAN.DATA: MAN1 LIKE TABLE OF MAN.MAN-NAME = '张参'.MAN-HIGH = '1.68'.MAN-WEIGHT = 120.INSERT MAN INTO TABLE MAN1.MAN-NAME = '刘志'.MAN-HIGH = '1.78'.MAN-WEIGHT = 160.INSERT MAN INTO TABLE MAN1.LOOP AT MAN1 INTO MAN.WRITE: / MAN-NAME,MAN-HIGH, MAN-WEIGHT. ENDLOOP.MAN-NAME = '李志'.MAN-HIGH = '1.58'.MAN-WEIGHT = 110.INSERT MAN INTO MAN1 INDEX 2.ULINE.LOOP AT MAN1 INTO MAN.WRITE: / MAN-NAME,MAN-HIGH,MAN-WEIGHT. ENDLOOP.输出结果如图3-8所示。
图3-83.8 格式化输出【例3.9】REPORT YTEST001.DATA WA LIKE SPFLI.WRITE: /.WRITE: 10'航班承运人',40'航班连接',60'国家代码',80'起飞城市',100'起飞机场'.SELECT * INTO WA FROM SPFLI.WRITE: / WA-CARRID UNDER '航班承运人',WA-CONNID UNDER '航班连接',WA-COUNTRYFR UNDER '国家代码',WA-CITYFROM UNDER '起飞城市',WA-AIRPFROM UNDER '起飞机场'.ENDSELECT.本例通过UNDER定位输出位置,输出结果如图3-9所示。