ABAP-02 数据字典&类型定义&常量&静态变量

数据字典SE11

  • ·数据库表Database Table

    • 透明表(TransparentTable) :在数据库中有对应的物理表
    • 存储表(Pooled Table)
    • 簇表(Cluster Table)
  • ·视图View

    • 数据库视图Database View
    • 项目视图Projection View
    • 维护视图Maintenance View
    • 帮助视图Help View
  • ·数据类型Data Type

    • 数据元素Data Element:描述一个字段的用途
    • 结构Structure:为若千个字段组合,在数据库不存在数据记录
    • 表类型Table Type
  • ·类型池Type Group

  • 域Domain:描述一个字段类型和长度等信息

  • 搜索帮助search Help

  • ·锁对象Lock object

  • 语法:

    • Tables:表名1,表名2 声明会用到的表名

    • Data :定义变量

      ```bash
      Data name1 Type datun       定义数据变量
      Data name2 Like 表名-字段名称    定义一个参数,类型参照某表中的某字段
      Data name3 Like Table OF 表名 WITH HEADER LINE  定义一个表头结构,类型参照某表中的表头
      ```
      
    • INCLUDE 程序名称 引用子程序

    • type:定义数据类型

    • write :输出

    • ** / :换行**

    • ABAP使用句号.表示一个语句的结束

    • 代码的注释分为两种:“*”为行注释;"为右注释

    • 字符串使用单引号显示

    • 命令要使用空格分开-等号前后要加空格;如:gv_val = ‘Enjoy BP’

    • 数字运算:

      加:a+b(ADD a TO b)
      减:a-b (SUBTRACT a FROM b)
      乘:a*b (MULTIPLY a BY b)
      除:a/b  (DIVIDE a BY b)
      取整(Round):a DIV b
      取整:TRUNC(1.3)=1;TRUNC(1.7)=1
      取余:a MOD b
      取小数:FRAC(2.9)=0.9
      乘幂: a ** b
      绝对值:ABS(-11)=100
      符号:SIGN(-2)=-1;SIGN(0)=0;SIGN(2)=+
      不小于该值的最小整数:CEIL(1.3)=2,CEIL(1.7)=2
      不大于该值的最大整数:floor(1.3)=1,floor(1.7) =1
      大于:a>b  (a GT b)
      大于等于:a>=b (a GE b )
      等于:a=b (a EQ b)
      不等于:a<>b (a NE b)
      小于:a>b (a LT b)
      小于等于:a<=b (a LE b)
      
    • 字符运算(比较字符串)
      - 比较字符串(类型C、类型N)

      		仅包含:CO
      		不仅包含:CN
      		包含任何:CA
      		不包含任何:NA
      		包含字符串:CS
      		包含模式:CP
      		不包含模式:NP
      
    • string相关命令

      • 查找:find(find a in b .if sy-subrc = 0 找到了)
      • 替换:replace(replace ‘abap’ in b with c )
      • 大小写字母转换:translate (translate var1 to lower case/upper case)
      • 去掉字符串前n个位置的字符:shift
        • str1 = ‘abcd’.str2=str1 . shift str2
        • str1 = ‘abcd’.str2=str1. shift str2 by 2 places
        • str1=’ abcd '.str2=str1. shift str2 left deleting leading space 去掉左边的空格
        • str1 = ’ abcd '.str2=str1. shift str2 right deleting trailing ’ ',去掉右边的空格
      • 去空格并向左对齐,与NO-GAPS一起使用去掉空格:condense(condense var1 NO-GAPS)
      • 填充空格,但不覆盖字符:overlay (overlay var1 with var2)
      • 连接字符串:concatenate(concatenate var1 var2 into var1)
      • 分割:split (split var1 at ‘k’ into var2 var3)
      • **MOVE 同等号= 相同功能,用于赋值,如:move var1 to var2 **
      • MOVE-CORRESPONDING 两个不同结构得结构体或内表之间相互赋值,自动查找相同名字的变量进行赋值
      • Strlen 返回字符串长度
    • 定义结构

             data :begin of st1,
         	          f1(10),
         	          f2(15),
         	          end of st1.
         	   data :begin of st2,
         	          f3(10),
         	          f2(15),
         	          end of st2.
         	    给结构里面的赋值:
         	    str1-f1 = 'abap1'.
         	    str1-f2 = 'abap2'.
      	把str1的值赋值给str2
       	MOVE-CORRESPONDING str1 To str2
      
    • ABAP数据类型

      • data r_txt(15) TYPE c --定义一个长度15的字符串参数r_txt
      • TYPES txt type c Length 10–定义一个长度10的数据类型txt
      • data de_txt TYPE txt–定义一个txt类型的字符串参数de_txt
      • data var1 like de_txt -定义一个和de_txt一样类型的参数var1
      • data var1 like de_txt value 100 -定义一个和de_txt一样类型的参数var1 ,且默认值为100
      • data de_txt TYPE c length 11 -定义一个长度11的字符串参数r_txt
      • data var4 type p declimals 2 -定义小数位2位的小数
      • data var4 type p -定义一个没有小数位的整数(小数位四舍五入)
      • 使用:var4 = 320 / 100
      • dt = sy-datum取系统当前时间
初始长度可变长度初始值意义
I440整型,自然数数字型
F880浮点型数字型
P81-160Packed number数字型
C11-65535‘…’文本字段,用于定义文字、数字、特殊文字;定义参数时不定义长度默认为1位长度字符型
D88‘00000000’日期字段(YYYYMMDD)字符型
N11-65535‘0…0’数字文本字段(数字型字符串),用于显示C类型数字,以字符串形式显示整数字符型
T66‘000000’时间(HHMMSS)字符型
X11-65535X’0…0’十六进制字段十六进制类型
string不定长字符串字符串

在这里插入图片描述

  • 局部数据类型
    • 存在于程序内部,如01讲的定义的数据类型
  • 全局数据类型
    • 存在于数据字典中,se11创建的数据字典对象都可以用于定义数据变量

  • 全局数据类型创建步骤
    • 变量名称:长度最长30
    • 名称要以G开头
    • 不能使用关键字
数据类型前缀示例
字段V、DGV_/GD_
结构体SGS_
常量CGC_
内表TGT_
OGO_
range(范围)RGR_
参照变量(数据对象)FGF_

常量

定义后不可以修改

 CONSTANTS PAI TYPE p DECIMAL 10 VALUE '3.1415926'    

静态变量

statics  c TYPE i

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值