1、数据类型-Data Type
定义程序中可以使用的数据类型,使用前要先定义;利用 TYPES语句声明数据类型,只能在该程序中使用。 TYPES可用来声明TABLE、WORK、AREA的数据,不占内存 示例: TYPES:BEGIN OF ty_table. TYPES: name_first TYPE but000-name_first. TYPES: name_last TYPE but000-name_last. INCLUDE TYPE zibf_s_006. TYPES: END OF ty_table. ABAP基本数据类型:
2、数据变量:
数据变量是在程序中参照数据类型定义的值。
常用方法是用
Data语句定义变量。
注意:变量实际指数据对象,数据对象在程序执行期间占用内存空间
3、DATA语句:
用于定义数据变量,变量名可以包含_, 长度最长30位。
DATA <变量名>(长度) TYPE <数据类型> VALUE <
初始值
>
5、判断字符串数据类型是否为数字
function
NUMERIC_CHECK
注:【如果是纯数字 没有小数点,这么判断是可以的(注意NUMC是会自动补0的,仅用于判断类型没问题),但是如果有小数就会变成CHAR】
另一种判断方法:
IF cl_abap_matcher=>matches(
pattern = '^(-?[1-9]\d*(\.\d*[1-9])?)|(-?0\.\d*[1-9])$'
text = '数字' ) = abap_true.
ENDIF.
6、
最常用的系统变量有:
SY-SUBRC:
系统执行某指令后,表示执行成功与否的变量,’0’ 表示成功
SY-UNAME:
当前使用者登入SAP的USERNAME;
SY-DATUM:
当前系统日期;(
SY-DATLO
)
SY-UZEIT:
当前系统时间;(
SY-TIMLO
)
SY-TCODE:
当前执行程序的Transaction code
SY-REPID:
ABAP 程式名,目前的主程式
SY-CPROG:
ABAP 程式名
SY-SYSID
: R/3 系統,R/3 系統名稱,
SY-UCOMM:
画面,PAI 驱动的功能代码,一般用來參照定义变量
SY-INDEX :
当前LOOP循环过的次数 READ TABLE it_po INDEX 1 此時變量值1
SY-TABIX:
当前处理的是internal table 的第几笔
7、字符串操作关键字
8、字符串操作符号
| 操作符 | 说明 | 示例 | 含义 |
| CO | 操作字符串1中每个字符都在操作字符串2中存在,则表达式为true,反之为false.表达式为true时sy-fdpos = 操作字符串1的长度 ,为false时,sy-fdpos = 操作字符串1中不在操作字符串2中的字符所在作字符串1中第一个位置。 | s1 CO s2 | 如果s1仅包含s2中的字符,逻辑表达式为真 |
| CN | 操作字符串1中不是每个字符都在操作字符串2中存在,则表达式为true,反之为false.表达式为false时sy-fdpos = 操作字符串1的长度 ,为true时,sy-fdpos = 操作字符串1中不在操作字符串2中的字符所在作字符串1中第一个位置。 | s1 CN s2 | 如果s1还包含s2之外的字符,逻辑表达式为真 |
| CA | 操作字符串1中任意字符在操作字符串2中存在,则表达式为true,sy-fdpos = 第一个出现在操作字符串2中的字符所在操作字符串1中的第一个位置。反之为false ,sy-fdpos = 操作字符串1长度。 | s1 CA s2 | 如果s1包含任何一个s2中的字符,逻辑表达式为真 |
| NA | 操作字符串1中任意字符在操作字符串2中不存在,则表达式为true,sy-fdpos = 操作字符串1长度。反之为false ,sy-fdpos = 第一个出现在操作字符串2中的字符所在操作字符串1中的第一个位置。 | s1 NA s2 | 如果s1不包含s2的任何字符,逻辑表达式为真 |
| CS | 操作字符串1中任意字符串在操作字符串2中存在,则表达式为true,sy-fdpos = 第一个出现在操作字符串2中的字符串的第一个字符所在操作字符串1中的第一个位置。反之为false ,sy-fdpos = 操作字符串1长度。如果操作字符串1为空操作字符串2不空则表达式为false,sy-fdpos = 0. | s1 CS s2 | 如果s1包含字符串s2,逻辑表达式为真 |
| NS | 操作字符串1中任意字符串在操作字符串2中不存在,则表达式为true,sy-fdpos = 操作字符串1长度。反之为false ,sy-fdpos = 第一个出现在操作字符串2中的字符串的第一个字符所在操作字符串1中的第一个位置。 | s1 NS s2 | 如果s1不包含字符串s2,逻辑表达式为真 |
| CP | 操作字符串1与操作字符串2中字符完全匹配,操作字符串2中输入通配符 “*”代表任意字符串,“+”任意字符。如果匹配则表达式为true,sy-fdpos = 操作字符串1中与操作字符串2中除操作通配符外的第一个字符位置。反之为false ,sy-fdpos =操作字符串1的长度。 | s1 CP s2 | 如果s1包含模式s2,逻辑表达式为真 |
| NP | 操作字符串1与操作字符串2中字符不完全匹配,操作字符串2中输入通配符 “*”代表任意字符串,“+”任意字符。如果匹配则表达式为true,sy-fdpos =操作字符串1的长度。反之为false ,sy-fdpos = 操作字符串1中与操作字符串2中除操作通配符外的第一个字符位置。 | s1 NP s2 | 如果s1不包含模式s2,逻辑表达式为真 |