1、声明变量
参照数据类型 DATA GV_DATDA TYPE DATATYPE .
参照数据对象 DATA GV_DATDA2 LIKE DATATYPE .
① 全局:data element,stucture,table type
②标准类型:C,N,D,T,F,P,STRING...
③本地/局部:程序里面的TYPES
DATA声明的是对象;LIKE 用在已有值的数据类型, 如系统变量, 而TYPE则是用在 定义数据类型。
赋值语句,类型转换自动完成
GV_A = GV_B .
MOVE GV_B TO GV_A .
WRITE GV_B TO GV_A . (write里面要求GV_A为文字类型,也可以插入后缀:UNIT ..)
2、声明结构
本地结构体的声明 :可以嵌套表类型或结构体类型
TYPES BEGIN OF STRTYPE .
TYPES F1...
TYPES F2...
TYPES END OF STRTYPE .
DATA GS_STR TYPE STRTYPE .
结构赋值:MOVE STR1 TO STR2 .
或 MOVE CORRESPONDING STR1 TO STR2 .
参考已存在的结构体创建一个属性相同的新结构体:INCLUDE STRUCTURE
3、创建内表
表类型的创建:
TYPES tabletype TYPE TABLE OF linetype .
内表:
DATA GT_ITAB TYPE TABLETYPE . ‘’‘或者下边的方式
DATA GT_ITAB2 TYPE TABLE OF STRTYPE .
***常用语句,可以加后缀:WITH HEADER LINE (带头行)与APPEND一起使用
INITIAL SIZE N 初始化大小 (OCCURS N 也是初始化大小)
当不清楚内表结构时:DATA GS_SCHOOL_T LIKE LINE OF GT_SCHOOL_H .
结构是单行的,内表是多行多列的;内表可以通过结构体一层一层往上推,也可以直接赋值
4、数据库表的声明
TABLES DATABASETABLE .
5、声明常量
CONSTANTS C_CHAR TYPE C LENGTH 10 VALUE ABC .
常量一定有VALUE,常量值一旦被定义,即被长期保存在内存,其值无法改变。
6、常用的系统变量
SY-SUBRC :系统执行某指令后,表示执行成功与否的变量,'0' 表示成功
SY-UNAME:当前使用者登入SAP的USERNAME
SY-DATUM:当前系统日期
SY-UZEIT:当前系统时间
SY-TCODE: 当前执行程序的Transaction code
SY-INDEX:当前LOOP循环过的次数
SY-TABIX:当前处理的是internal table 的第几笔
SY-MANDT:CLIENT(客户端编号) NUMBER
SY-VLINE: 画竖线
SY-ULINE:画横线