ABAP基本语法学习关键语句的写法

更新时间:2023-10-27 02:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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-work

2、用重新命名的后缀名字来访问: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 DEFINITION

LOCAL 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 关键字可以预先声明一个未被定义的类。

类方法声明语句:

METHODS meth [ABSTRACT|FINAL]

[IMPORTING parameters [PREFERRED PARAMETER p]] [EXPORTING parameters] [CHANGING parameters]

[{RAISING|EXCEPTIONS} exc1 exc2 ...]. METHODS meth [ABSTRACT|FINAL]

[IMPORTING parameters [PREFERRED PARAMETER p]] RETURNING VALUE(r) typing

[{RAISING|EXCEPTIONS} exc1 exc2 ...].

重载函数的声明方法:

METHODS meth [FINAL] REDEFINITION。访问上级类的函数:super->meth()。 大小写字母转换语句:TRANSLATE typ TO LOWER CASE. 在ABARP程序中各种报错情况需要的例外类: CX_ROOT |

|--CX_STATIC_CHECK |

|--CX_DYNAMIC_CHECK | |

| |--CX_SY_ARITHMETIC_ERROR | | |

| | |--CX_SY_ZERODIVIDE | | |

| | |--CX_SY_ARITHMETIC_OVERFLOW | | |

| | |--CX_SY_ARG_OUT_OF_DOMAIN | | |

| | |--CX_SY_PRECISION_LOSS | |

| |--CX_SY_ASSIGN_ERROR | | |

| | |--CX_SY_ASSIGN_CAST_ERROR | | | |

| | | |--CX_SY_ASSIGN_CAST_ILLEGAL_CAST | | | |

| | | |--CX_SY_ASSIGN_CAST_UNKNOWN_TYPE | | |

| | |--CX_SY_ASSIGN_OUT_OF_RANGE | |

| |--CX_SY_CODEPAGE_CONVERTER_INIT | |

| |--CX_SY_CONVERSION_ERROR

| | |

| | |--CX_SY_CONVERSION_OVERFLOW | | |

| | |--CX_SY_CONVERSION_NO_NUMBER | | |

| | |--CX_SY_CONVERSION_CODEPAGE | | |

| | |--CX_SY_CONVERSION_BASE64 | | |

| | |--CX_SY_CONV_ILLEGAL_DATE_TIME | |

| |--CX_SY_CREATE_ERROR | | |

| | |--CX_SY_CREATE_OBJECT_ERROR | | |

| | |--CX_SY_CREATE_DATA_ERROR | |

| |--CX_SY_DATA_ACCESS_ERROR | | |

| | |--CX_SY_RANGE_OUT_OF_BOUNDS | | |

| | |--CX_SY_TAB_RANGE_OUT_OF_BOUNDS | | |

| | |--CX_SY_OFFSET_NOT_ALLOWED | |

| |--CX_SY_DYN_CALL_ERROR | | |

| | |--CX_SY_DYN_CALL_ILLEGAL_CLASS | | |

| | |--CX_SY_DYN_CALL_ILLEGAL_FORM | | |

| | |--CX_SY_DYN_CALL_ILLEGAL_FUNC | | |

| | |--CX_SY_DYN_CALL_ILLEGAL_METHOD | | |

| | |--CX_SY_DYN_CALL_PARAMETER_ERROR | | |

| | |--CX_SY_DYN_CALL_EXCP_NOT_FOUND | | |

| | |--CX_SY_DYN_CALL_ILLEGAL_TYPE | | |

| | |--CX_SY_DYN_CALL_PARAM_MISSING | | |

| | |--CX_SY_DYN_CALL_PARAM_NOT_FOUND

| |

| |--CX_SY_FILE_ACCESS_ERROR | | |

| | |--CX_SY_FILE_AUTHORITY | | |

| | |--CX_SY_FILE_CLOSE | | |

| | |--CX_SY_FILE_IO | | |

| | |--CX_SY_FILE_OPEN | | |

| | |--CX_SY_FILE_OPEN_MODE | | |

| | |--CX_SY_FILE_POSITION | | |

| | |--CX_SY_FILE_TRUNCATE | |

| |--CX_SY_FIND_INFINITE_LOOP | |

| |--CX_SY_GEN_SOURCE_TOO_WIDE | |

| |--CX_SY_IMPORT_MISMATCH_ERROR | | |

| | |--CX_SY_IMPORT_FORMAT_ERROR | |

| |--CX_SY_INVALID_REGEX | |

| |--CX_SY_MATCHER | | |

| | |--CX_SY_REGEX_TOO_COMPLEX | | |

| | |--CX_SY_INVALID_REGEX | |

| |--CX_SY_MOVE_CAST_ERROR | |

| |--CX_SY_PROGRAM_NOT_FOUND | |

| |--CX_SY_PROVIDE_EXCEPTION | | |

| | |--CX_SY_PROVIDE_INTERVAL_OVERLAP | | |

| | |--CX_SY_PROVIDE_TABLE_NOT_SORTED | |

| |--CX_SY_READ_SRC_LINE_TOO_LONG

| |

| |--CX_SY_REF_IS_INITIAL | |

| |--CX_SY_REPLACE_INFINITE_LOOP | |

| |--CX_SY_SCAN_SOURCE_TOO_WIDE | |

| |--CX_SY_SQL_ERROR | | |

| | |--CX_SY_OPEN_SQL_ERROR | | | |

| | | |--CX_SY_OPEN_SQL_DB | | | |

| | | |--CX_SY_DYNAMIC_OSQL_ERROR | | | |

| | | |-- CX_SY_DYNAMIC_OSQL_SEMANTICS | | | |

| | | |-- CX_SY_DYNAMIC_OSQL_SYNTAX | | |

| | |--CX_SY_NATIVE_SQL_ERROR | |

| |--CX_SY_WRITE_SRC_LINE_TOO_LONG | |

| |--CX_XSLT_EXCEPTION | |

| |--CX_XSLT_SYSTEM_ERROR | |

| |--CX_XSLT_ABAP_CALL_ERROR | |

| |--CX_XSLT_DESERIALIZATION_ERROR | |

| |--CX_XSLT_FORMAT_ERROR | |

| |--CX_XSLT_RUNTIME_ERROR | |

| |--CX_XSLT_SERIALIZATION_ERROR |

|--CX_NO_CHECK |

|--CX_SY_EXPORT_NO_SHARED_MEMORY |

|--CX_SY_EXPORT_BUFFER_NO_MEMORY |

|--CX_SY_GENERATE_SUBPOOL_FULL

|

|--CX_SY_LOCALIZATION_ERROR |

|--CX_SY_NO_HANDLER |

|--CX_SY_PIPES_NOT_SUPPORTED |

|--CX_SY_PIPE_REOPEN |

|--CX_SY_REMOTE_CALL_ERROR | |

| |--CX_SY_RMC_COMM_FAILURE | |

| |--CX_SY_RMC_INVALID_STATUS | |

| |--CX_SY_RMC_SYSTEM_FAILURE |

|--CX_SY_TOO_MANY_FILES

数据分配过程:

1、声明一个数据引用:data 数据引用名 type ref to 类型名. 2、声明字段符号:field-symbols type any.

3、建立数据引用:create date(object) 数据引用名 type 类型名. 4、分配引用到字段:assign 数据引用名->* to . 循环程序中语句的控制级操作语句语法结构:

LOOP AT itab result ... [AT FIRST. ... ENDAT.]

[AT NEW comp1. ... ENDAT.

[AT NEW comp2. ... ENDAT. [...]]] [ ... ] [[[...]

AT END OF comp2. ... ENDAT.]

AT END OF comp1. ... ENDAT.]

[AT LAST. ... ENDAT.] ENDLOOP.

内表数据插入的语法格式:

INSERT line_spec INTO itab_position [result].

读内表的语法:

READ TABLE itab { table_key | free_key

| index } result.

描述字段属性的语句:

DESCRIBE FIELD dobj

[TYPE typ [COMPONENTS com]]

[LENGTH ilen IN {BYTE|CHARACTER} MODE] [DECIMALS dec]

[OUTPUT-LENGTH olen] [HELP-ID hlp] [EDIT MASK mask].

Form打印程序中的几个主要函数:

Open_Form,Start_Form,Write_Form,Write_Form_Lines,Control_Form,Close_Form, END_FORM。

function write_form.

*\---

*\ *\

*\ *\ *\ *\ *\

*\ *\ *\ *\ *\ *\ *\ *\

*\ *\

*\

*\---

function write_form_lines.

*\---

*\ *\

*\

*\ *\ *\ *\

*\ *\ *\

*\ *\ *\ *\ *\ *\ *\

*\ *\ *\

*\---

function control_form.

*\---

*\ *\

*\ *\ *\ *\ function start_form.

*\---

*\ *\

*\AL

*\

*\ *\ *\

*\ *\ *\

*\ *\ *\ *\ *\ *\ *\ *\ *\

*\---

function open_form.

*\---

*\ *\

*\

*\AL

*\ *\

*\ *\ *\

*\ *\

*\AL

*\ *\

*\ *\

*\ *\ *\

*\

*\

MS

*\ *\ *\ *\ *\ *\ *\ *\ *\ *\

*\ *\ *\

*\---

function close_form.

*\---

*\ *\

*\

*\ *\

*\ *\ *\

*\ *\ *\ *\

*\function end_form.

*\---

*\ *\

*\ *\ *\

*\ *\ *\

*\

---

\sch

明天从关键字文档的process data- string-shift-split开始看,还需要学习了解Process data和User Dialogs以及Saving Data Externally与Data and Communication Interfaces。

本文来源:https://www.bwwdw.com/article/8jn2.html

Top