sap abap初体验2之ABAP的基本语法

2 基本语法

2.1 数据类型

2.1.1 系统预定义的数据类型

在这里插入图片描述
更全面的基本类型如下:
在这里插入图片描述

se38建一个hello world类似的程序ZLGZ01
在这里插入图片描述

2.1.1.1 文本型c

文本类型,原则上要指定字符的长度,否则默认当长度为1处理。
在这里插入图片描述

输出结果如下:
在这里插入图片描述

2.1.1.2 日期和时间类型D和T

1.日期的基本赋值
在这里插入图片描述

输出结果:
在这里插入图片描述

2.如何赋值当前日期和当前时间呢?
在这里插入图片描述

在这里插入图片描述

3.日期的基本加减

在这里插入图片描述
结果如下:
在这里插入图片描述

2.1.1.3 I整数类型和N字符串整形

I可以表示负数,如果数字填充0或者以字符串展示,就应该用N,而且N必须用长度约束,默认会补0
在这里插入图片描述

在这里插入图片描述

2.1.1.4 P和F浮点数类型

p和f都能表示小数,f可以取值范围很大,但是容易丢失数据,P是准确的不丢失精度数据。一般都用P,很少用F的。

在这里插入图片描述

在这里插入图片描述

2.1.2 自定义数据类型

1.基本的类型自定义

在这里插入图片描述

2.根据自定义类型再定义

在这里插入图片描述

3.利用自定义的基本类型,定义一个结构

在这里插入图片描述
4.结构类型的继承,这样就包了一层了

在这里插入图片描述

2.2 数据对象定义

2.3.1 普通对象的定义(参考前面基本类型应用)

可以用types,也可以用like

在这里插入图片描述

在这里插入图片描述

各基本类型的默认值

字符型C:必需指定长度,否则默认是1位
日期型D:默认是YYYYMMDD格式
浮点型F:没什么特殊,默认以科学计数法
整形I:默认按照用户设置的格式输出整形
字符整形N:必需指定长度,否则会截串只显示右边的1个字符,而且是从右向左截串
P类型:必需指定小数位,否则会进位成整形
T类型:时间格式,没什么说的
在这里插入图片描述
整形和P的都是从右边往左算的。

在这里插入图片描述

2.3.2 常量

在这里插入图片描述

2.3.3 系统常用的一些变量

SYST表中定义了所有的系统变量,采用SY-字段名定义,例如经常用的日期
在这里插入图片描述

在这里插入图片描述

2.3.4 可以直接定义结构对象,可以like对象定义

在这里插入图片描述

正规的方式是通过MOVE-CORRESPONDING赋值,如果两个结构完全一样,也可以直接等号赋值。

2.3.5 结构对象作为另外一个对象的一部分

最大的弊端,就是对象字段不是一个层级的了
在这里插入图片描述

2.3.6 结构对象的include

所有对象都是平级的,相当于追加字段。如果用结构直接继承的话,字段就不是平级的了。
在这里插入图片描述

2.3 程序基本结构及功能

2.3.1 NO STANDARD PAGE HEADING表示不展示抬头

1.不加该段话前
在这里插入图片描述
2.添加该段话
在这里插入图片描述

在这里插入图片描述

3.可以修改抬头描述,通过转到-属性
在这里插入图片描述

2.3.2 MESSAGE-ID

如果定义MESSAGE-ID,默认调用的时候就可以省略改ID,默认调用该ID。也就是后面的MESSAGE e001(ZMLGZ01) WITH ‘123123’.中,括号及里面内容可以省略。

1.se91创建消息
在这里插入图片描述

2.程序代码添加MESSAGE-ID
在这里插入图片描述
调用效果:
在这里插入图片描述

4.也可以调整为error调用

在这里插入图片描述

在这里插入图片描述

2.3.3 非alv的列行设置,一般没人用了

在这里插入图片描述

2.3.4 后续结构说明

2.3.4.1 include引用

&---------------------------------------------------------------------
*& include : 用到的别的程序的源代码或者子程序等
*& INCLUDE .
&---------------------------------------------------------------------

2.3.4.2 描述引用的表

&---------------------------------------------------------------------
*& TABLES : 描述引用的表
*& TABLES .
*&---------

2.3.4.3 描述定义的类型以及数据对象

&---------------------------------------------------------------------
*& TYPES和DATA : 定义的类型和数据对象
*& TYPES .
*& DATA .
*&---------

2.3.4.4 屏幕输入报表筛选条件等

&---------------------------------------------------------------------
*& selection-screen /option/parameter:屏幕输入报表赛选条件
*& TABLES .
*selection-screen begin of block test

  • select-options:
  • selection-screen end of block test
    *&---------
2.3.4.5 程序开始时的调用,一般很少用了

&---------------------------------------------------------------------
*& LOAD-OF_PROGRAM:程序开始执行时候调用
*& LOAD-OF_PROGRAM:

  • 这个事件在SUBMIT, CALL TRANSACTION,PERFORM等执行的时候系统会自动调用这个时间
  • 所以无需声明即可。
    *&---------
2.3.4.6 程序变量初始化的默认值

&---------------------------------------------------------------------
*& INITIALIZATION.:程序变量进行初始化,启动程序开始执行
*&---------

2.3.4.7 选择屏幕时触发

&---------------------------------------------------------------------
*& AT SELECTION-SCREEN:选择屏幕运行时触发,主要是对查询条件或权限进行校验
*&AT SELECTION-SCREEN.
*& 1. ON pesl:在parameter变化是触发的事件
*& 2. ON END OF sel:SELECT-OPTION触发的事件
*& 3. ON VALUE-REQUEST FOR psel_low_high:选择的帮助(F4)
*& 4. ON HELP-REQUEST FOR psel_low_high:选择的帮助(F1)
*& 5. ON RADIOBUTTION GROUP radi:单选按钮事件
*& 6. ON BALOCK block:框架的触发事件
*& 7. OUTPUT:响应屏幕上的事件,修改选择屏幕的唯一方法
*&---------

2.3.4.8 开始选择前触发,例如打印时抓取数据

&---------------------------------------------------------------------
*& start-OF-SELECTION:抓取数据,打印
*&---------
start-OF-SELECTION.
set pf-satus __. "制定报表执行时所用的 GUI-STAUTS名称
PERFORM data_retireve.
PERFORM output_data.

2.3.4.9 一些命令按钮的调用

&---------------------------------------------------------------------
*& AT USER-COMMAND.:执行在GUI-STATUS中自定的命令,就是菜单栏的一些按钮
*&---------

2.3.4.10 双击或者F2单元格时调用

&---------------------------------------------------------------------
*& AT LINE-SELECTION:由在报表中按下F2或者双击键时启动.
*&---------

2.3.4.11 每页打印开始或结束调用

&---------------------------------------------------------------------
*& TOP-OF-PAGE:每页开始打印时执行,用于定义报表表头
*& END-OF-PAGE:报表打印完最后一页后启动
*&---------

&---------------------------------------------------------------------
*& END-OF-SELECTION:报表打印完后最后一页,如可用来打印出USER输入的条件
*&---------

2.3.4.12 FORM读取数据到内表

&---------------------------------------------------------------------
*& include FORM
*& 从表读数据到内表.
*&---------
FORM data_retireve.
SELECT * FROM __
INTO __
WHERE ___.

 IF SY-SUBRC = 0.
  
 ENDIF.
 
 APPEND INITIAL LINE TO _____. "增加 Internal Table 元素
ENDSELECT.

ENDFORM.

2.3.4.13 输出打印

&---------------------------------------------------------------------
*& Print Data:依次输出Internal Table的数据
*& 从表读数据到内表.
*&---------

FORM output_data.
WRITE:/ ____.
ENDFORM.

2.4 数据处理及基本语法

wirte经典语法
在这里插入图片描述

  • 1
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值