ABAP语法完整版
abap基本语法汇总

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>。
ABAP语法完整版

SAP ABAP / 4 基础知识学习数据类型C :字符串D :日期型格式为YYYYMMDD 例:'1999/12/03'F : 浮点数长度为8I :整数N :数值组成的字符串如:011,'302'P : PACKED数用于小数点数值如:12.00542T : 时间格式为:HHMMSS 如:'14:03:00'X : 16进制数如:'1A03'*-------------------------------------------------------------------------------------* 变量声明DATA <F> [<Length>] <type> [<value>][decimals]<F> 变量名称<length><type> 变量类型及长度<value> 初值<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 <c> [<length>] <type> [<value>] [<decimals>]系统专用变量说明系统内部专门创建了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有: SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,'0'表示成功SY-UNAME: 当前使用者登入SAP的USERNAME;SY-DATUM: 当前系统日期;SY-UZEIT: 当前系统时间;SY-TCODE: 当前执行程序的Transaction codeSY-INDEX: 当前LOOP循环过的次数SY-TABIX: 当前处理的是internal table 的第几笔SY-TMAXL: Internal table的总笔数SY-SROWS: 屏幕总行数;SY-SCOLS: 屏幕总列数;SY-MANDT: CLIENT NUMBERSY-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关键字则是用在指定资料型态。
abap语法

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 :取模需要注意,圆括号和操作符都是关键字,需要跟操作数之间至少用一个空格分开。
abap面向对象语法

一.1.*& Report Z_CPT4_1 *2.*& *3.*&---------------------------------------------------------------------*4.*& 类对象5.6.*& *7.*&---------------------------------------------------------------------*8.9.REPORT Z_CPT4_1 .10.11.*类定义12.CLASS application DEFINITION.13. PUBLIC SECTION.14. METHODS:show_text.15. PRIVATE SECTION.16. DATA text(100) TYPE c VALUE 'This is my first ABAP Object.'.17.ENDCLASS.18.19.*类实现20.CLASS application IMPLEMENTATION.21. METHOD show_text.22. WRITE text.23. ENDMETHOD.24.ENDCLASS.25.26.27.28.*第二个例子29.*类定义30.CLASS vehicle DEFINITION.31. PUBLIC SECTION.32. CLASS-DATA class_name(10) TYPE c VALUE 'Vehicle'.33. METHODS:accelerate,34. show_speed.35. PROTECTED SECTION.36. DATA speed TYPE i.37.ENDCLASS.38.39.CLASS vehicle IMPLEMENTATION.40. METHOD accelerate.41. speed = speed + 1.42. ENDMETHOD.44. WRITE: / 'Speed:',speed.45. ENDMETHOD.46.ENDCLASS.47.48.49.50.51.START-OF-SELECTION.52.*调用类中的方法53.DATA ob_app TYPE REF TO application.54.CREATE OBJECT ob_app.55.CALL METHOD ob_app->show_text.56.*类调用57.DATA obj_vehicle TYPE REF TO vehicle.58.CREATE OBJECT obj_vehicle.59.60.DO 10 TIMES.61. CALL METHOD obj_vehicle->accelerate.62.ENDDO.63.CALL METHOD obj_vehicle->show_speed.二.1.*&---------------------------------------------------------------------*2.*& Report Z_CPT4_2 *3.*& *4.*&---------------------------------------------------------------------*5.*& 调用全局类6.7.*& *8.*&---------------------------------------------------------------------*9.10.REPORT Z_CPT4_2.11.DATA: myClass1 TYPE REF TO Z_MY_CLASS_1.12.13.CREATE OBJECT myClass1.14.15.CALL METHOD myClass1->HelloWorld.16.17.DATA: mHelper TYPE REF TO z_my_class_mathhelper,18. tmp TYPE i,19. n1 TYPE i,20. n2 TYPE i.21.23.n2 = 2.24.CREATE OBJECT mHelper.25.26.*调用方法中的IMPORTING对应方法声明中的EXPORTING27.*调用方法中的EXPORTING对应方法声明中的IMPORTING28.*调用方法中的RECEIVING对应方法声明中的RETURNING29.*ADD30.CALL METHOD mHelper->ADD EXPORTING NUM1 = n1 NUM2 = n2 IMPORTING RESULT31.= tmp.32.33.WRITE: / n1,'+',n2,'=',tmp.34.35.*SUB36.CALL METHOD mHelper->SUB EXPORTING NUM1 = n1 NUM2 = n2 IMPORTING RESULT37.= tmp.38.39.WRITE: / n1,'-',n2,'=',tmp.40.41.*MUL42.CALL METHOD mHelper->MUL EXPORTING NUM1 = n1 NUM2 = n2 IMPORTING RESULT43.= tmp.44.45.WRITE: / n1,'*',n2,'=',tmp.46.47.*DIV48.CALL METHOD mHelper->DIV EXPORTING NUM1 = 10 NUM2 = 5 IMPORTING RESULT49.= tmp.50.51.WRITE: / '10 /5 =',tmp.52.53.CALL METHOD mHelper->BOMB RECEIVING BOMBNUM = tmp.54.WRITE: / tmp.55.56.57.*清除对象58.CLEAR mHelper.59.60.*调用静态方法61.CALL METHOD z_my_class_mathhelper=>p_something.三.1.*&---------------------------------------------------------------------*2.*& Report Z_CPT4_3 *4.*&---------------------------------------------------------------------*5.*& *6.*& 类7.8.*&---------------------------------------------------------------------*9.10.REPORT Z_CPT4_3 .11.12.13.CLASS circle DEFINITION.14. PUBLIC SECTION.15. METHODS get_area IMPORTING VALUE(i_radius) TYPE i16. RETURNING VALUE(r_size) TYPE f.17. PRIVATE SECTION.18.* 定义静态变量19. CONSTANTS pi TYPE f VALUE '3.14159265'.20.ENDCLASS.21.22.CLASS circle IMPLEMENTATION.23. METHOD get_area.24. r_size = i_radius ** 2 * pi.25. ENDMETHOD.26.ENDCLASS.27.28.*弹出参数输入屏幕29.PARAMETERS radius TYPE i.30.31.DATA: o_circle TYPE REF TO circle,32. area TYPE f.33.34.START-OF-SELECTION.35.CREATE OBJECT o_circle.36.37.CALL METHOD o_circle->get_area38. EXPORTING i_radius = radius39. RECEIVING r_size = area.40.WRITE: / area.41.42.*可能这个服务器版本不支持这样的语法43.*area = o_circle->get_area(radius).44.*WRITE: / area.四.3.*& *4.*&---------------------------------------------------------------------*5.*& 构造函数6.7.*& *8.*&---------------------------------------------------------------------*9.10.REPORT Z_CPT4_4 .11.CLASS vehicle DEFINITION.12. PUBLIC SECTION.13. METHODS: accelerate IMPORTING rate TYPE i,14.* 定义构造函数,有一个输入参数15. constructor IMPORTING i_speed TYPE i,16. show_speed.17. PRIVATE SECTION.18. DATA speed TYPE i VALUE 0.19.ENDCLASS.20.21.CLASS vehicle IMPLEMENTATION.22. METHOD accelerate.23. speed = speed + rate.24. ENDMETHOD.25. METHOD show_speed.26. WRITE: / speed.27. ENDMETHOD.28. METHOD constructor.29. speed = i_speed.30. ENDMETHOD.31.ENDCLASS.32.33.DATA o_vehicle TYPE REF TO vehicle.34.35.START-OF-SELECTION.36.* 这个构造函数传了参数进去37. CREATE OBJECT o_vehicle EXPORTING i_speed = 4.38.39.40. CALL METHOD o_vehicle->accelerate EXPORTING rate = 2.41. CALL METHOD o_vehicle->accelerate EXPORTING rate = 2.42. CALL METHOD o_vehicle->show_speed.五.3.*& *4.*&---------------------------------------------------------------------*5.*& 继承6.7.*& *8.*&---------------------------------------------------------------------* 9.10.REPORT Z_CPT4_5 .11.12.*定义部分13.CLASS vehicle DEFINITION INHERITING FROM object.14. PUBLIC SECTION.15. METHODS:accelerate,write_status.16. PROTECTED SECTION.17. DATA speed TYPE i.18.ENDCLASS.19.20.CLASS plane DEFINITION INHERITING FROM vehicle.21. PUBLIC SECTION.22. METHODS:rise,write_status REDEFINITION."重写23. PROTECTED SECTION.24. DATA altitude TYPE i.25.ENDCLASS.26.27.CLASS ship DEFINITION INHERITING FROM vehicle.28. PUBLIC SECTION.29. METHODS write_status REDEFINITION.30.ENDCLASS.31.32.33.*实现部分34.CLASS vehicle IMPLEMENTATION.35. METHOD accelerate.36. speed = speed + 1.37. ENDMETHOD.38. METHOD write_status.39. WRITE: / 'Speed:',speed.40. ENDMETHOD.41.ENDCLASS.42.43.CLASS plane IMPLEMENTATION.44. METHOD rise.45. altitude = altitude + 1.47. METHOD write_status.48. WRITE: / 'Plane:'.49. CALL METHOD super->write_status.50. WRITE: / 'Altitude:',altitude.51. ENDMETHOD.52.ENDCLASS.53.54.CLASS ship IMPLEMENTATION.55. METHOD write_status.56. WRITE: / 'Ship speed:',speed.57. ENDMETHOD.58.ENDCLASS.59.60.DATA:plane_ref TYPE REF TO plane,61. ship_ref TYPE REF TO ship.62.63.START-OF-SELECTION.64. CREATE OBJECT:plane_ref,65. ship_ref.66.67. CALL METHOD:plane_ref->accelerate,68. plane_ref->rise,69. plane_ref->write_status,70. ship_ref->accelerate,71. ship_ref->write_status.六.1.*&---------------------------------------------------------------------*2.*& Report Z_CPT4_6 *3.*& *4.*&---------------------------------------------------------------------*5.*& 抽象类6.*7.*& *8.*&---------------------------------------------------------------------*9.10.REPORT Z_CPT4_6 .11.12.CLASS HUMAN DEFINITION ABSTRACT.13. PUBLIC SECTION.14. DATA:Name TYPE string,Sex TYPE c,Age TYPE i.15. METHODS:get_detail ABSTRACT.16.ENDCLASS.18.CLASS STUDENT DEFINITION INHERITING FROM HUMAN.19. PUBLIC SECTION.20. METHODS:get_detail REDEFINITION.21.ENDCLASS.22.23.CLASS STUDENT IMPLEMENTATION.24. METHOD get_detail .25. WRITE: / 'Name:',Name,26. / 'Sex:',Sex,27. / 'Age:',Age.28. ENDMETHOD.29.ENDCLASS.30.31.START-OF-SELECTION.32.33.DATA:jim TYPE REF TO STUDENT.34.CREATE OBJECT jim.35.jim->Name = 'jim green'.36.jim->Sex = 'male'.37.jim->Age = '12'.38.39.CALL METHOD jim->get_detail.七.1.*&---------------------------------------------------------------------*2.*& Report Z_CPT4_7 *3.*& *4.*&---------------------------------------------------------------------*5.*& 接口 *6.*& *7.*&---------------------------------------------------------------------*8.9.REPORT Z_CPT4_7 .10.11.*接口定义12.INTERFACE status.13. METHODS write.14.ENDINTERFACE.15.16.17.18.19.21.22.23.24.*类定义25.CLASS counter DEFINITION.26. PUBLIC SECTION.27. INTERFACES status.28. METHODS increment.29. PRIVATE SECTION.30. DATA count TYPE i.31.ENDCLASS.32.CLASS bicycle DEFINITION.33. PUBLIC SECTION.34. INTERFACES status.35. METHODS drive.36. PRIVATE SECTION.37. DATA speed TYPE i.38.ENDCLASS.39.40.41.42.43.44.45.46.*类实现47.CLASS counter IMPLEMENTATION.48. METHOD status~write.49. WRITE: / 'Count in counter is',count.50. ENDMETHOD.51. METHOD increment.52. ADD 1 TO count.53. ENDMETHOD.54.ENDCLASS.55.56.CLASS bicycle IMPLEMENTATION.57. METHOD status~write.58. WRITE: / 'Speed of bicycle is',speed.59. ENDMETHOD.60. METHOD drive.61. ADD 10 TO speed.62. ENDMETHOD.63.ENDCLASS.64.66.*调用部分67.DATA:count TYPE REF TO counter,68. bike TYPE REF TO bicycle,69. status TYPE REF To status,70. status_tab TYPE TABLE OF REF TO status.71.72.START-OF-SELECTION.73.CREATE OBJECT:count,bike.74.DO 5 TIMES.75. CALL METHOD:count->increment,76. bike->drive.77.ENDDO.78.79.APPEND:count TO status_tab,80. bike TO status_tab.81.82.LOOP AT status_tab INTO status.83. CALL METHOD status->write.84.ENDLOOP.八.1.*&---------------------------------------------------------------------*2.*& Report Z_CPT4_8 *3.*& *4.*&---------------------------------------------------------------------*5.*& 事件 *6.*& *7.*&---------------------------------------------------------------------*8.9.REPORT Z_CPT4_8 .10.11.CLASS vehicle DEFINITION INHERITING FROM object.12. PUBLIC SECTION.13.* 定义事件14. EVENTS:too_fast.15. METHODS:accelerate,16. show_speed.17. PROTECTED SECTION.18. DATA speed TYPE i.19.ENDCLASS.20.21.CLASS vehicle IMPLEMENTATION.22. METHOD accelerate.24. IF speed > 5.25.* 触发事件26. RAISE EVENT too_fast.27. speed = 5.28. ENDIF.29. ENDMETHOD.30. METHOD show_speed.31. WRITE: / 'Speed:',speed.32. ENDMETHOD.33.ENDCLASS.34.35.*定义事件的处理者36.CLASS handler DEFINITION.37. PUBLIC SECTION.38. METHODS handle_excess FOR EVENT too_fast OF vehicle.39.ENDCLASS.40.41.CLASS handler IMPLEMENTATION.42. METHOD handle_excess.43. WRITE: / 'Speed can not be too fast.'.44.* 可能这个版本的SAP不支持这样的语法45. "speed = 10.46. ENDMETHOD.47.ENDCLASS.48.49.50.*调用代码51.DATA:o_vehicle TYPE REF TO vehicle,52. o_handle TYPE REF TO handler.53.54.START-OF-SELECTION.55. CREATE OBJECT:o_vehicle,o_handle.56.57.* 设置事件处理者58. SET HANDLER o_handle->handle_excess FOR ALL INSTANCES.59.60.DO 11 TIMES.61. CALL METHOD o_vehicle->accelerate.62. CALL METHOD o_vehicle->show_speed.63.ENDDO.。
SAP ABAP基本语法概述

SAP ABAP基本语法概述目录1ABAP基础 (3)1.1创建简单的ABAP程序 (3)1.2ABAP程序帮助 (7)1.3ABAP语法和程序格式 (8)1.4输出数据到屏幕 (11)1.5赋值 (13)1.6运算符及函数 (17)1.7流控制 (18)1.8注释结构 (21)2内表 (21)2.1内表索引 (21)2.2访问内表 (21)2.3内表的声明 (23)2.4内表的使用 (25)3SQL指令 (33)3.1SELECT指令 (33)3.2INSERT指令 (36)3.3UPDATE指令 (37)3.4MODIFY指令 (37)3.5DELETE指令 (37)3.6数据库指针 (38)4数据库 (39)4.1数据库数据的选取、更新、删除、插入 (39)4.2数据库的事务 (40)4.3SE16检查表的内容 (40)4.4SE11定义表结构 (43)4.5检查数据表是否锁定 (46)1 ABAP基础1.1 创建简单的ABAP程序在上述界面中输入SE38键入回车进入ABAP编辑器界面,如图1-1所示。
功能操作区ABAP程序名选项区编辑、查看、创建图1-1创建程序名称时请遵守这些命名约定:报表程序(以列表格式输出数据分析):Yaxxxxxx 或Zaxxxxxx。
用应用程序区的分类字母替换a。
用任何有效字符替换x。
注意SAP报表程序遵守相似的命名约定:Raxxxxxx。
任何其它ABAP/4 程序(培训程序或事务程序): SAPMYxxx 或SAPMZxxx。
用有效字符替换x。
注意标准SAPABAP/4 程序遵守相似的命名约定:SAPMaxxx,其中a代表某应用程序区。
输入程序名,点击创建,则进入以下界面,如图1-2所示。
图1-21)Title:程序描述或功能说明,Report时为显示的标题。
2)Type: Execute mode: 1(Stand-along Program如Reports)、I(Include Program)、M(Module Pool)、F(Function Group)、S(Subroutine Pool)。
ABAP语法

ABAP语法一、格式。
作用:设置或更改有效的输出格式。
注意:由Format设置的格式会影响到清淡的下一个输出操作,下一个输出命令或下一个新行。
附加ON对于转换贴切的输出格式变得更随意。
你也能设置静态的附加ON,OFF和n(对于颜色)。
1、颜色。
Format Color n [ON] or Format Color n[OFF]作用:行背景颜色。
N能有如下的价值。
OFF or COL_BACKGROUND Background (GUI-specific)1 or COL_HEADING Headers (grayish blue)2 or COL_NORMAL List body (bright gray)3 or COL_TOTAL Totals (yellow)4 or COL_KEY Key columns (bluish green)5 or COL_POSITIVE Positive threshold value (green)6 or COL_NEGATIVE Negative threshold value (red)7 or COL_GROUP Control levels (violet)清单颜色注意:每次一个新的事件(START-OF-SELECTION, TOP-OF-PAGE, ...)开始,这个系统的设置回复到COLOR 0。
附加.. INTENSIFIED和... INVERSE影响颜色的显示属性...COLOR对于线不起作用。
WRITE --- OUTPUT AS lineInclude<Line>(或更多广泛的Include<List>)对于行包含关系识别作为永恒,例如:LINE_TOP_LEFT_CORNER, LINE_BOTTOM_MIDDLE_CORNER。
Line不能有其他的显示属性。
如果像颜色(COLOR),背面VIDEO(INVERSE)或变强(INTENSIFIED)被设置,这些忽略输出。
abap switch 语法

abap switch 语法摘要:一、ABAP Switch 语法简介二、ABAP Switch 语法详解1.基本语法结构2.变量和表达式3.条件分支4.默认分支5.跳出循环正文:【ABAP Switch 语法简介】ABAP(Advanced Business Application Programming)是一种高级企业应用程序编程语言,主要用于SAP ERP 系统的开发。
Switch 语句是ABAP 中的一种选择结构控制语句,可以根据不同的条件执行不同的代码块。
本文将详细介绍ABAP Switch 语法的相关知识。
【ABAP Switch 语法详解】1.基本语法结构ABAP Switch 语句的基本语法结构如下:```SWITCH (<条件表达式>)WHEN (<条件1>) THEN<代码块1>WHEN (<条件2>) THEN<代码块2>...WHEN (<条件n>) THEN<代码块n>ELSE<默认代码块>END-SWITCH```其中,`<条件表达式>` 是用于判断的条件,`<条件1>`、`<条件2>` 等是具体的条件,`<代码块1>`、`<代码块2>` 等是针对不同条件执行的代码块,`<默认代码块>` 是在所有条件都不满足时执行的代码块。
2.变量和表达式在ABAP Switch 语句中,可以使用变量和表达式作为条件。
需要注意的是,Switch 语句中的条件表达式不能包含函数调用。
3.条件分支在Switch 语句中,可以使用WHEN 子句定义多个条件分支。
当条件表达式的值为某个条件时,将执行对应的代码块。
多个WHEN 子句之间可以有任意数量的空行,但它们必须处于同一缩进级别。
4.默认分支如果Switch 语句中没有满足的条件,将执行ELSE 子句中的代码块。
abap基本语法汇总

一数据类型和对象在ABAP中,可以使用与标准数据声明相似的语法处理数据类型,而与数据对象无关。
在程序中必须声明要使用的全部数据对象。
声明过程中,必须给数据对象分配属性,其中最重要的属性就是数据类型。
对算术运算的非整型结果(如分数)进行四舍五入,而不是截断。
类型 P 数据允许在小数点后有数字。
有效大小可以是从 1 到 16 字节的任何值。
将两个十进制数字压缩到一个字节,而最后一个字节包含一个数字和符号。
在小数点后最多允许 14 个数字。
1.3 确定数据对象的属性如果要查明数据对象的数据类型,或者要在程序的运行期间使用其属性,可使用DESCRI BE 语句。
语法如下:DESCRI BE FIELD<f> [LENGTH <l>] [TYPE <t> [COMPON ENTS<n>]][OUTPUT-LENGTH <o>] [DECIMA LS <d>][EDIT MASK <m>].将由语句的参数指定的数据对象<f>的属性写入参数后的变量。
DESCRI1.3.1 确定字段长度要确定数据对象的长度,利用DESCRIBEFIELD语句使用 LENGTH参数,如下所示:DESCRI BE FIELD<f> LENGTH <l>.系统读取字段<f>的长度,并将值写入字段<l>。
1.3.2确定数据类型要确定字段的数据类型,利用DESCRIBEFIELD语句使用 TYPE 参数,如下所示:DESCRI BE FIELD<f> TYPE <t> [COMPON ENTS<n>].系统读取字段<f>的数据类型,然后将值写入字段<t>。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SAP ABAP / 4 基础知识学习数据类型C :字符串D :日期型格式为 YYYYMMDD 例:'1999/12/03'F : 浮点数长度为8I :整数N :数值组成的字符串如:011,'302'P : PACKED数用于小数点数值如:12.00542T : 时间格式为:HHMMSS 如:'14:03:00'X : 16进制数如:'1A03'*-------------------------------------------------------------------------------------* 变量声明DATA <F> [<Length>] <type> [<value>][decimals]<F> 变量名称<length><type> 变量类型及长度<value> 初值<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 <c> [<length>] <type> [<value>] [<decimals>]系统专用变量说明系统部专门创建了SYST这个STRUCTURE,里面的栏位存放系统变量,常用的系统变量有: SY-SUBRC: 系统执行某指令后,表示执行成功与否的变量,'0'表示成功SY-UNAME: 当前使用者登入SAP的USERNAME;SY-DATUM: 当前系统日期;SY-UZEIT: 当前系统时间;SY-TCODE: 当前执行程序的Transaction codeSY-INDEX: 当前LOOP循环过的次数SY-TABIX: 当前处理的是internal table 的第几笔SY-TMAXL: Internal table的总笔数SY-SROWS: 屏幕总行数;SY-SCOLS: 屏幕总列数;SY-MANDT: CLIENT NUMBERSY-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关键字则是用在指定资料型态。
TABLES 关键字用来声明 Table Work Area 的数据, 对应至 ABAP/4 资料文件(Dictionary Object), 由SQL 指令加载所需数据语法:TABLES <dbtab>Example:TABLES: SPFL.SELECT * FROM SPFL.WRITE: SPFL-MANDT, SPFL-CARRID,SPFL-CONNECTION.ENDSELECT.从ABAP/4 Dictionary 的 SPFL 档载入MANDT,CARRID,CONNECTION 三个字段至SPFL 此Table Work Area*-------------------------------------------------------------------------------------*输出一. WRITE 语句ABAP/4用来在屏幕上输出资料的指令是WRITE指令,例如:WRITE: 'USER NAME IS:', SY-UNAME.二. 指定屏幕输出位置指定输出位置的语句格式为:WRITE: [AT] [ / ] [<pos>] [(<len>)] 资料项 [<par>]其中: / : 在下一行输出<pos>: 指定输出的行号;(<len>):指定输出位数(长度)<par>: 指定显示格式参数,参数有:LEFT-JUSTIFIED 资料*左对齐CENTERED 资料*中间对齐RIGHT-JUSTIFIED 资料*右对齐UNDER <g> 正对在资料项<g>的下面显示NO-GAP 紧接着显示,不留空格USING EDIT MASK <m>: 使用嵌子元显示, 如 12:03:20USING NO EDIT MASK: 不使用嵌子元NO-ZER 数字前面 0 的部分不显示NO-SIGN: 不显示正负号DECIMALS <d>: 显示 <d> 位小数EXPOENT <e>: F(浮点数)指数的值ROUND <r>: 四舍五入至小数点后<r>位CURRENCY <c>: 币别显示DD/MM/YY : 日期显示格式MM/DD/YY:YY/MM/DD:YY/DD/MMMM/DD/YYYY:DD/MM/YYYYYYYY/MM/DD:YYYY/DD/MM:例如1: WRITE: /10(6) 'ABCDEFGHIJK'.输出结果为: ABCDEF例如2: DATA: X TYPE I VALUE '11:20:30',A(5) TYPE C VALUE 'AB CDE'.WRITE: / X USING EDIT MASK '__:__:__'.WRITE: / X USING EDIT MASK '$___,___'.WRITE: / Y NO-GAP.输出结果为:11:20:30$112,030ABCDEF例如3: DATA: LEN TYPE I VALUE 10,POS TYPE I VALUE 11,TEXT(10) VALUE '1234567890'WRITE 'The text ------------ appears in the text.'.WRITE AT POS(LEN) TEXT.WRITE TO 语句的基本形式要将值(文字)或源字段容写入目标字段,可以使用 WRITE TO 语句:语法WRITE <F1> TO <F2> [<option>].DATA: NUMBER TYPE F VALUE '4.3',TEXT(10),FLOAT TYPE F,PACK TYPE P DECIMALS 1.WRITE NUMBER.WRITE NUMBER TO TEXT EXPONENT 2.WRITE / TEXT.WRITE NUMBER TO FLOAT.WRITE / FLOAT.WRITE NUMBER TO PACK.WRITE / PACK.MOVE NUMBER TO PACK.WRITE / PACK.exp:DATA: NAME(10) VALUE 'SOURCE',SOURCE(10) VALUE 'Antony',TARGET(10)....WRITE (NAME) TO TARGET.WRITE: TARGET.exp :DATA: COUNTER TYPE I.COMPUTE COUNTER = COUNTER + 1.COUNTER = COUNTER + 1.ADD 1 TO COUNTER.在此,三条运算语句进行相同算术运算输出屏幕上的线和空行用下列语法,可以在输出屏幕上生成水平线:语法ULINE [AT [/][<pos>][(<len>)]].它等同于WRITE [AT [/][<pos>][(<len>)]] SY-ULINE.AT 后的格式规,与在在屏幕上定位 WRITE 输出(页 28)中为 WRITE 语句说明的格式规完全一样。
如果没有格式规,系统则开始新的一行,并用水平线填充该行。
否则,只按指定输出水平线。
生成水平线的另一种方法,是在 WRITE 语句中键入恰当数量的连字符,如下所示:WRITE [AT [/][<pos>][(<len>)]] '-----...'.垂直线用下列语法,可以在输出屏幕上生成垂直线:语法WRITE [AT [/][<pos>]] SY-VLINE.或WRITE [AT [/][<pos>]] '|'.空行用下列语法,可以在输出屏幕上生成空行:语法SKIP [<n>].该语句从当前行开始,在输出屏幕上生成 <n> 个空行。
如果没有指定 <n> 的值,就输出一个空行。
要将输出定位在屏幕的指定行上,请使用:语法SKIP TO LINE <n>.该语句允许将输出位置向上或向下移动。
四. 显示图示:语法: WRITE: <symbol-name> AS SYMBOL.WRITE: <icon-name> AS ICON.例如: INCLUDE <SYMBOL>.INCLUDE <ICON>.WRITE: / 'Phone symbol:', SYM_PHONE AS SYMBOL.WRITE: / 'Alarm Icon:', ICON_VOICE_OUTPUT AS ICON.要查看系统所提供有那些符号及图示,可选择'EDIT'下的'Insert Statement',选择'Write',接下来选择要查看的群组,如SYMBOL 或ICON, 接下来按'Display'即可.*-------------------------------------------------------------------------------------*一. Internal Table 的声明ABAP/4中的Internal Table是一种Data Structure,类似于其他语言中的STRUTURE,它可以由几个不同类型的栏位(field)组成,用来表示具有不同属性的某一事物,单独一笔资料表示某个事物,多笔资料表示具有相同属性的多个事物.Internal table 的定义有以下几种格式:格式一. DATA: BEGIN OF <internal table> OCCURS <n>,<field 1> TYPE <type1>,[<field 2> TYPE <type 2>,<field 3> TYPE <type 3>,… ]END OF <internal table>.语法:DATA <f> <type> OCCURS <n> [WITH HEADER LINE]Example:DATA VECTOR TYPE I OCCURS 10 WITH HEADER LINE.格式二. TYPES: BEGIN OF <work area>,<field 1> TYPE <type1>,[<field 2> TYPE <type 2>,<field 3> TYPE <type 3>,… ]END OF <work area>.TYPES <internal table> TYPE <work area> OCCURS <n>.格式三. DATA: BEGIN OF <work area>.INCLUDE STRUCTURE <table name>.DATA: END OF <work area>.DATA: <internal table> LIKE <work area> OCCURS <n>.exp:TYPES VECTOR TYPE I OCCURS 10.TYPES: BEGIN OF LINE,COLUMN1 TYPE I,COLUMN2 TYPE I,COLUMN3 TYPE I,END OF LINE.TYPES ITAB TYPE LINE OCCURS 10.TYPES: BEGIN OF DEEPLINE,TABLE1 TYPE VECTOR,TABLE2 TYPE ITAB,END OF DEEPLINE.TYPES DEEPTABLE TYPE DEEPLINE OCCURS 10.本示例创建与上例相同的表数据类型(VECTOR 和 ITAB)。