ABAP语法完整版

合集下载

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

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语法

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面向对象语法

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基本语法概述

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语法

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 语法简介二、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基本语法汇总

一数据类型和‎对象在ABAP‎中,可以使用与‎标准数据声‎明相似的语‎法处理数据‎类型,而与数据对‎象无关。

在程序中必‎须声明要使‎用的全部数‎据对象。

声明过程中‎,必须给数据‎对象分配属‎性,其中最重要‎的属性就是‎数据类型。

对算术运算‎的非整型结‎果(如分数)进行四舍五‎入,而不是截断‎。

类型 P 数据允许在‎小数点后有‎数字。

有效大小可‎以是从 1 到 16 字节的任何‎值。

将两个十进‎制数字压缩‎到一个字节‎,而最后一个‎字节包含一‎个数字和符‎号。

在小数点后‎最多允许 14 个数字。

1.3 确定数据对‎象的属性如果要查明‎数据对象的‎数据类型,或者要在程‎序的运行期‎间使用其属‎性,可使用DESCR‎I BE 语句。

语法如下:DESCR‎I BE FIELD‎<f> [LENGT‎H <l>] [TYPE <t> [COMPO‎N ENTS‎<n>]][OUTPU‎T-LENGT‎H <o>] [DECIM‎A LS <d>][EDIT MASK <m>].将由语句的‎参数指定的‎数据对象<f>的属性写入‎参数后的变‎量。

DESCR‎I1.3.1 确定字段长‎度要确定数据‎对象的长度‎,利用DES‎CRIBE‎FIELD‎语句使用 LENGT‎H参数,如下所示:DESCR‎I BE FIELD‎<f> LENGT‎H <l>.系统读取字‎段<f>的长度,并将值写入‎字段<l>。

1.3.2确定数据‎类型要确定字段‎的数据类型‎,利用DES‎CRIBE‎FIELD‎语句使用 TYPE 参数,如下所示:DESCR‎I BE FIELD‎<f> TYPE <t> [COMPO‎N ENTS‎<n>].系统读取字‎段<f>的数据类型‎,然后将值写‎入字段<t>。

abap 语法手册

abap 语法手册

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语句从内表中检索数据。

SAPABAP基本语法介绍

SAPABAP基本语法介绍

SAPABAP基本语法介绍ABAP(Advanced Business Application Programming)是SAP (System, Applications, and Products in Data Processing)系统最常用的编程语言之一,主要用于SAP软件开发和定制。

ABAP具有强大的功能和灵活性,可用于创建和维护企业应用程序,包括各种业务流程和数据处理。

在本文中,我将介绍ABAP的基本语法和一些常见的编程概念。

1.ABAP程序结构ABAP程序由多个模块组成,每个模块都是独立的功能单元。

一个ABAP程序通常由一个开始模块和若干子模块组成。

开始模块包含程序的整体逻辑,而子模块用于实现程序的具体功能。

2.声明变量在ABAP中,变量需要先声明后才能使用。

变量可以是内部表、字段符号、工作区、宏定义等。

声明变量时需要指定数据类型和名称。

例如:DATA: lv_name TYPE string.3.控制语句ABAP支持多种控制语句,用于实现条件判断、循环和跳转等功能。

常见的控制语句包括IF语句、CASE语句、DO循环和WHILE循环等。

例如:WRITE: 'Number is 1'.WRITE: 'Number is 2'.ELSE.WRITE: 'Number is neither 1 nor 2'.ENDIF.4.数据操作ABAP提供了丰富的数据操作函数,可用于对数据进行处理和转换。

例如,可以使用CONCATENATE函数将多个字符串连接在一起,使用SUBSTRING函数获取字符串的子串,使用REPLACE函数替换字符串中的内容等。

5.内部表ABAP中的内部表类似于其他编程语言中的数组或列表,用于存储和处理数据。

内部表可以是标准表、排序表、哈希表等类型。

可以使用内部表来读取、修改和删除数据。

例如:SELECT * FROM kna1 INTO TABLE lt_customers WHERE land1 ='US'.6.函数模块和方法ABAP中的函数模块类似于其他编程语言中的函数或方法。

ABAP基本语法

ABAP基本语法

ABAP基本语法目录1.表声明12.定义变量13.常用算术操作符:14.常用比较操作:15.赋值语句26.IF语句27.CASE语句28.DO语句29.WHILE语句210.从数据库中取数据集211.取出单行记录212.WRITE语句213.ULINE语句314.SKIP语句315.定义常量316.定义结构317.TYPES语句418.LIKE语句419.输入参数520.分块语句521.定义内表522.往内表中添加记录623.用LOOP读取内表数据624.用READ读取内表数据625.把数据库的记录读入内表626.CLEAR清空表头和表记录627.DELETE删除内表记录628.REFRESH删除内表记录629.FREE删除内表记录730.在内表中插入记录731.修改内表记录732.对内表进行排序733.内表的控制语句734.循环跳转语句735.常用系统变量836.子程序的定义837.子程序的调用838.子程序的参数传递839.常用事件840.跳出事件的方法9ABAP/4:Advanced Business Application Programming1.表声明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'.3.常用算术操作符: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[/]在插入空行后光标定位在空行的下面,在其它数据前加[/]在插入空行后光标定位于所插的空行。

ABAP 语法

ABAP 语法

Line-size 130Line-count 60NO STANDARD PAGE HEADING.Under 格式化输出Write: /wa-carrid under ‘航线承运人’。

WRITE AT (10)8 STR1 替换字符串data:str1(10) type c value 'AABBCCDDEE'. WRITE:'11223344556677____________889900.'. WRITE AT 15(8) STR1.输出'11223344556677AABBCCDD____889900创建表SE11OR ME55Se16CreateSelect * into table intab from spfli package size 5. 每次输入5行LSKEY00Client 不同,登陆获得的数据不同单栏位检索&单选框SELECTION-SCREEN <option>Parameters: <p> [default<d>默认值][lower case大小写][obligatory必输][as checkbox以复选框形式] [radiobutton group<RG>以单选框形式]at SELECTION-SCREEN ON VALUE-REQUEST FOR <P>. F4help.Parameters: a type P DECIMALS 2.范围检索Select-options: <P> for <wa>.Manual barStandard bar:command fieldTitle barApplication barStatus bar现在SAP SE80里创建一个package:Z14PACKAGE创建新的program:Z4XXXXXXText Elements:设置head listUnline /10(60)从左到右第11起画长度为60的线Write: 变量 X(Y),变量去掉X位取Y位Field-symbols(?)类似指针CHECK在循环中,是在整个循环中。

SAP ABAP基本语法介绍

SAP ABAP基本语法介绍
包含了接口。类和接口池 (程序类型为 J) 接口都在类制作器中管理,事务码 SE24。
类池 (程序类型为 K)
包含了类。类和接口都在类制作器中管理,事务码 SE24
7
数据类型和数据对象
形式上的变量描述叫做数据类型,由数据类型具体定义 的变量叫做数据对象 数据类型
标准数据类型(预定义数据类型)、本地数据类型、全 局数据类型
如果可能的话,尽量减少使用文字,而多用常数,这样 可以给程序维护带来很大的便利。
14
基本ABAP语句:赋值
程序开始时,程序内容被读到应用服务器的内存区,程 序中定义的数据对象也分配了相应的内存空间。 可以使用MOVE 关键字来赋值。
MOVE var1 TO var2. var2 = var1. 如果var1 和var2 的数据类型不同,就存在类型冲突的可能性,这 时候如果存在转换规则 ,则会进行自动类型转换 。
明 用内表是一个处理大量结构化数据的简单办法
19
内表类型 标准表
系统内建维护了表的行号(即索引),索引和键访问都是允许的。 当经常用索引访问表的时候就选择标准表。
排序表
数据记录在表内自动以升序进行排列,索引是系统自动维护的,索 引和键访问都可以用。如果经常使用键来访 问数据,或者希望数据 能够自动排序时,就用排序表。
定义数据类型用关键字TYPES 定义数据对象用关键字DATA
8
数据类型:预定义类型
它是SAP内置的基本数据类型,所有其他数据元素和域都是由这 些基本数据类型组合而成的。它可以分为完整的和非完整的。
完整的数据类型指它包含了与类型相关的固定长度的信息
D :日期类型,格式为YYYYMMDD,长度为8 T :时间类型,格式为HHMMSS,长度为6 I :整数类型,长度为4字节 F :浮点类型,长度为8 STRING:变长字符串类型 XSTRING:变长字节序列类型

abap open dataset 语法

abap open dataset 语法

ABAP(Advanced Business Application Programming)是一种面向业务应用的编程语言,用于在SAP环境中开发应用程序和数据处理。

open dataset是ABAP语言中用于处理文件的一种语法。

下面将详细介绍ABAP open dataset语法的使用方法和注意事项。

一、语法结构在ABAP中,使用open dataset语法来打开一个文件,并指定文件的操作模式。

其基本语法结构如下:```OPEN DATASET <file_path> [ FOR <mode> [ IN TEXT MODE ENCODING <encoding> ] ] [ IGNORING CONVERSION ERRORS ] [ MESSAGE <msg> ] [ LINE-COUNT <line_count> ] [ ACCEPTING <accept_list> FROM <accept_id> ].```其中,各个参数的含义和使用方法如下:1. `<file_path>`:要打开的文件的路径。

可以是物理文件路径,也可以是ABAP系统中的逻辑文件名。

2. `FOR <mode>`:文件的操作模式,包括以下几种选项:- `INPUT`:以读取方式打开文件。

- `OUTPUT`:以写入方式打开文件。

- `APPENDING`:以追加方式打开文件,新的内容将被追加到文件末尾。

3. `IN TEXT MODE ENCODING <encoding>`:指定打开文件的文本模式和编码方式。

可以选择不同的编码方式,如UTF-8、GBK等。

4. `IGNORING CONVERSION ERRORS`:在进行字符转换时忽略可能出现的错误。

5. `MESSAGE <msg>`:指定在打开文件时出现错误时的系统消息。

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>.系统读取字段<f>的长度,并将值写入字段<l>。

1.3.2确定数据类型要确定字段的数据类型,利用DESCRIBE FIELD 语句使用 TYPE 参数,如下所示:DESCRIBE FIELD <f> TYPE <t> [COMPONENTS <n>].系统读取字段<f>的数据类型,然后将值写入字段<t>。

SAPABAP_4编程语法汇总

SAPABAP_4编程语法汇总

SAPABAP_4编程语法汇总SAP ABAP(Advanced Business Application Programming)是SAP 系统中使用的一种编程语言。

在ABAP_4编程语法中,有一些重要的概念和语法规则需要了解。

下面是SAP ABAP_4编程语法的汇总。

1.ABAP程序的基本结构:ABAP程序由一系列的模块组成,每个模块由一对关键字BEGIN和END 组成。

一个程序通常由多个模块组成,每个模块都以ENDMODULE关键字结束。

模块可以是一个函数,一个子程序或一个方法。

2.数据类型:ABAP支持多种数据类型,包括整型(INT,INT1,INT2,INT4),浮点型(F,D),字符型(CHAR,STRING),日期型(D),时间型(T),结构型(STRUCTURE),表型(TABLE)等。

3.变量声明和赋值:在ABAP中,可以使用DATA语句声明变量,使用WRITE语句输出变量的值。

变量可以通过赋值语句(如"="和"=")来获得新的值。

另外,可以使用CONSTANTS语句定义常量。

4.控制结构:ABAP支持多种控制结构,包括条件语句(如IF,CASE),循环语句(如DO,WHILE,LOOP),跳转语句(如BREAK,CONTINUE,EXIT)等。

5.内部表和工作区:内部表用于存储和操作数据集。

可以使用内部表的语句(如SORT,READTABLE)对内部表进行排序和检索。

内部表可以是标准表,排序表,散列表或索引表。

6.函数和子程序:在ABAP中,可以使用FUNCTION和FORM语句定义函数和子程序。

函数是可重用的代码块,可以被其他程序调用。

子程序是一个独立的代码块,可以在同一个程序中调用。

7.对象和类:ABAP支持面向对象编程,可以使用CLASS语句定义类。

类包含属性和方法,并且可以实例化为对象。

对象可以使用NEW关键字创建,并且可以使用点号(.)来访问对象的属性和方法。

ABAP学习(1):基本语法介绍

ABAP学习(1):基本语法介绍

ABAP学习(1):基本语法介绍ABAP学习ABAP学习基本资料整理。

ABAP基本语法ABAP中不区分⼤⼩写,例如:Type 和type表⽰⼀个意思。

1基本数据类型ABAP基本数据类型:I : 整形数据;C:字符型数据;N:只包含数字的字符串;P:包装数据类型;F:浮点类型;D:⽇期类型;T:时间类型;X:⼗六进制数据。

F和P类型都保存浮点数,P的精度⽐F更⾼,⼀般使⽤P类型。

⽰例:"整型DATA:num1 type I."字符型DATA:num2(3) type C."数字字符型DATA:num3(4) type N."包装类型,decimals指定⼩数位数,只有P类型可⽤DATA:num4(10) type P DECIMALS 4."浮点型DATA:num5 type F."⽇期型DATA:num6 type D."时间型DATA:num7 type T."16进制型DATA:num8(10) type X."字符串DATA:num9 type string."C,N,X,P可以使⽤length定义长度DATA:num10 TYPE C LENGTH 14."赋值操作"move to 语句"MOVE 1333 TO num1.num1 = 1234567890.num2 = 'abc'.num3 = '0010'.num4 = '1.23456789'.num5 = '12.3456789'.num6 = sy-datum.num7 = sy-uzeit.num8 = 1234567890.write :/ 'num1=',num1,'num2=',num2,'num3=',num3,'num4=',num4,'num5=',num5,'num6=',num6,'num7=',num7,'num8=',num8."字符串转I,"不能有汉字,不能是科学计数法"num9 = '1.23300000E+2'.num9 = '12.33334'.num1 = num9.WRITE:/ 'num1',num1."字符串转Cnum9 = '中'.num2 = num9.WRITE:/ 'num2',num2."字符串转N,会将⼩数点去掉num9 = '22.33'.num3 = num9.WRITE:/ 'num3',num3."字符串转P,num9 = '12.3456'.num4 = num9.WRITE:/ 'num4',num4."字符串转F,会变成科学计数法显⽰num9 = '12.34567'.num5 = num9.WRITE:/ 'num5',num5."字符串转D,MMDDYYYY"输出:09302018num9 = '20180930'.num6 = num9.WRITE:/ 'num6',num6."字符串转T,hhmmssnum9 = '014423'.num7 = num9.WRITE:/ 'num7',num7."字符串转X,长度超过20位,截取前20字符num9 = '123456789012345678901234'.num8 = num9.WRITE:/ 'num8',num8."科学计数法转换DATA:str TYPE char25 VALUE '4.3999999999999997E-2'. DATA:m_str LIKE CHA_CLASS_DATA-SOLLWERT. DATA:c_str(16) TYPE C.DATA:c_num(16) TYPE P DECIMALS 3.MOVE str to m_str."科学计数法字符串转换成数字CALL FUNCTION'QSS0_FLTP_TO_CHAR_CONVERSION' EXPORTINGI_NUMBER_OF_DIGITS = 3I_FLTP_VALUE = m_strI_VALUE_NOT_INITIAL_FLAG = 'X'I_SCREEN_FIELDLENGTH = 16 IMPORTINGE_CHAR_FIELD = c_str.IF sy-subrc = 0.WRITE:/ c_str.c_num = c_str.WRITE:/ c_num.ENDIF."不⽤function转换,QSOLLWERTE作为中间数据"将科学计数法字符串转换为其他数据DATA:mid_str TYPE QSOLLWERTE.mid_str = str.c_num = mid_str.View Code2 type定义数据类型语法结构:Types :<类型名> type <数据类型>Types :<类型名> like <数据对象或数据类型>定义结构体Types: begin of <结构名>,<资料名> type <数据类型>,…………end of <结构名>.Data: begin of <结构名>,<资料名> type <数据类型>,…………end of <结构名>."******************************************************************"type定义数据类型"******************************************************************TYPES: length TYPE I.TYPES: str(20) TYPE C.TYPES: BEGIN OF person,Name(10) type C,Age type I,END OF person.3变量声明相关语法:data: <变量名> type <数据类型> [value <值>] 。

ABAP语法完整版

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关键字则是用在指定资料型态。

SAP-ABAP语法整理

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)。

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

相关文档
最新文档