五十一、SAP中使程序结构化,模块化
一、我们创建3个引用单元,这3个单元里面分别存放定义相关,执行相关和子程序相关的内容

二、将程序中的各部分都拆分到INCLUDE文件中,DEF文件内容如下

三、INC文件内容

四、MAIN文件中写程序执行的逻辑

五、运行程序时,需要激活对应的3个文件,需要选中3个后再点对勾

六、运行程序

七、效果如下

代码如下:
*&---------------------------------------------------------------------*
*& Report Z_TIANPAN_20190717_HELLO
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Z_TIANPAN_20190717_HELLO LINE-SIZE . * 此程序引用其他单元
*此INCLUDE用于定义变量
INCLUDE Z_TIANPAN_20190717_DEF.
*此INCLUDE用于执行
INCLUDE Z_TIANPAN_20190717_MAIN.
*此INCLUDE用于各种函数
INCLUDE Z_TIANPAN_20190717_INC.
*&---------------------------------------------------------------------*
*& 包含 Z_TIANPAN_20190717_DEF
*&---------------------------------------------------------------------* *定义数据类型
DATA it_spfli TYPE TABLE OF spfli.
DATA wa_spfli TYPE spfli. *定义选择屏幕,connid表示航班连接编号
DATA connid TYPE spfli-connid. SELECTION-SCREEN BEGIN OF BLOCK basic_select WITH FRAME TITLE text- .
SELECT-OPTIONS so_car FOR connid.
SELECTION-SCREEN END OF BLOCK basic_select. SELECTION-SCREEN BEGIN OF BLOCK other_select WITH FRAME TITLE text-.
PARAMETERS pa_int TYPE c AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK other_select.
*&---------------------------------------------------------------------*
*& 包含 Z_TIANPAN_20190717_INC
*&---------------------------------------------------------------------*
FORM GET_DATA USING Apa_int Aso_car TYPE TABLE CHANGING Ait_spfli TYPE TABLE.
*如果选中了,表示国内国际都显示
IF Apa_int = 'X'.
* 读取数据库中的内容
SELECT * FROM spfli INTO TABLE Ait_spfli WHERE connid IN Aso_car.
ELSE.
SELECT * FROM spfli INTO TABLE Ait_spfli WHERE connid IN Aso_car AND spfli~countryfr = spfli~countryto.
ENDIF.
ENDFORM. FORM SHOW_DATA USING Ait_spfli TYPE TABLE.
FORMAT RESET.
LOOP AT Ait_spfli INTO wa_spfli.
IF wa_spfli-countryfr = wa_spfli-countryto.
WRITE: / sy-vline,AT () wa_spfli-carrid ,
sy-vline,AT () wa_spfli-connid ,
sy-vline,AT () wa_spfli-countryfr,
sy-vline,AT () wa_spfli-countryto,
sy-vline,AT () ICON_CHECKED AS ICON,
AT sy-vline.
ELSE.
WRITE: / sy-vline,AT () wa_spfli-carrid ,
sy-vline,AT () wa_spfli-connid ,
sy-vline,AT () wa_spfli-countryfr,
sy-vline,AT () wa_spfli-countryto,
sy-vline,AT () ICON_INCOMPLETE AS ICON,
AT sy-vline.
ENDIF.
ENDLOOP.
*输出一条线
ULINE.
ENDFORM.
*&---------------------------------------------------------------------*
*& 包含 Z_TIANPAN_20190717_MAIN
*&---------------------------------------------------------------------*
*在选择屏幕时候判断
AT SELECTION-SCREEN.
IF so_car IS INITIAL.
MESSAGE w000(Z_TIANPAN_201907_MSG).
ENDIF. *一个事件,程序加载时执行,相当于初始化
LOAD-OF-PROGRAM.
pa_int = 'X'. *冻结第一行表头
TOP-OF-PAGE.
*输出一条线
ULINE.
*输出一条横线 Format表示格式化颜色,COL_HEADING颜色可以在F1中对比
FORMAT COLOR COL_HEADING .
*输出数据库内容,sy-vline表示把内容当成字段来输出,左边线占用1个字符,从2开始
WRITE: / sy-vline,AT () text-,
sy-vline,AT () text-,
sy-vline,AT () text-,
sy-vline,AT () text-,
sy-vline,AT () '国际',
AT sy-vline.
*输出一条线
ULINE. *程序执行选择屏幕时被A触发的事件
START-OF-SELECTION. *调用函数
PERFORM GET_DATA USING pa_int so_car[] CHANGING it_spfli.
PERFORM SHOW_DATA USING it_spfli.
五十一、SAP中使程序结构化,模块化的更多相关文章
- windows vbs启动多个应用程序并使程序最小化(显示桌面)
windows vbs启动多个应用程序并使程序最小化(显示桌面) CreationTime--2018年7月26日11点18分 Author:Marydon 1.应用场景 每天开机后,都需要打开平 ...
- 七十五、SAP中数据库的使用SQL
一.在SAP中可以使用两张数据库,一直是NativeSQL和OPEN SQL. Native SQL(本地SQL)特点: 1.每种关系型数据库都有其对应的 SQL,是数据库相关的. 2.不同的 SA ...
- 妙味,结构化模块化 整站开发my100du
********************************************************************* 重要:重新审视的相关知识 /* 妙味官网:www.miaov ...
- 四十九、在SAP中查看程序资源结构对象
一.在屏幕上点击这个品图标,相关说明如下图 二.使用这个程序资源结构对象可以很方便的定位
- 六十五、SAP中通过BREAK-POINT下断点,进行调试
一.代码如下,有2个断点的按钮,可以可以写入BREAK-POINT人工断点 二.运行之后,程序会被断下来, 四个执行按钮,意思分别为:单步进入子程序,单步不进入子程序,返回外面,执行到断点处 三.我们 ...
- 一百零五、SAP中ALV事件之十七,让ALV表格修改后保存到数据库
一.我们来到代码界面设置保存按钮的代码 二.i_grid_settings这个属性用来编辑单元格之后,返回给程序编辑后的值 三.我们双击点 'REUSE_ALV_GRID_DISPLAY',来到定义 ...
- 八十五、SAP中的ALV创建之四,去掉主键背景色
一.我们执行程序之后,发现表格中所有的内容都是有底色的 二.这个是因为我们在代码中规定了主键 三.我们去掉处理第一个之外的主键 四.运行程序,发现还是所有字段都有背景色 五.这是因为在每次ls_fie ...
- 四十五、SAP中Message的管理
一.事务代码SE91 二.输入相关名字,点击创建 三.输入内容 四.定义成本地对象 五.在消息中添加一条短文本 六.我们代码如下 七.执行
- hive 中出现struct 结构化的问题
如果你使用udf,udaf,udtf中的某一个并且查询日志中出现如下之类的struct错误 java.lang.RuntimeException: Error in configuring objec ...
随机推荐
- Python字符乱码
content = b'{"log_id": 5507183146687669657, "words_result_num": 2, "words_r ...
- GreenPlum 提取数据表信息
参考: https://www.alberton.info/postgresql_meta_info.html https://my.oschina.net/Kenyon/blog/226600 列信 ...
- 导弹拦截p1020(LIS问题)
题目描述(题目链接:https://www.luogu.org/problem/P1020) 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够 ...
- Python 2 与 3 共存了 11 年,新年就要和它道别
在 Python 3.9 都已经进入 dev 版本的 2020 年,Python 2 终于要和我们告别了. 2 and 3 Python 2 第一个版本发布于 2000 年 10 月 16 日,到今年 ...
- JavaNIO第一话-Buffer
Buffer是入门Java NIO的基础,本文希望通过一些形象的比喻来解释一下缓冲区的概念,帮助读者快速理解和记忆. 本文灵感来自于Bilibili博主v若水若水分享的尚硅谷Java视频_NIO视频教 ...
- log4j, common-logging, slf4j 关系
最近因为项目原因,认真学习了一下 log4j 相关内容,主要是从网上找资料,以及追踪原代码. 关于如何使用,网上有很多资料,这里不做具体介绍.下面介绍一下这些工具的关系. log4j 是最强大 ...
- 动态、指针field-symbols初探
DATA: BEGIN OF STRUC, COMP1 VALUE ', COMP2 VALUE ', COMP3 TYPE STRING VALUE 'bruce king', END OF STR ...
- [STL]string类型的getline函数
3.cin.getline() 实际是cin.getline(接收字符串到m,接收个数n,结束字符).接收一个字符串,可以接收空格等,最后一个字符为‘\0’.结束符可以通过设置第三个参数自己设置,默认 ...
- HiBench成长笔记——(2) CentOS部署安装HiBench
安装Scala 使用spark-shell命令进入shell模式,查看spark版本和Scala版本: 下载Scala2.10.5 wget https://downloads.lightbend.c ...
- SP2-0157: unable to CONNECT to ORACLE after 3 attempts, exiting SQL*Plus
[oracle@jtwy02 ~]$ sqlplus '/as sysdba' SQL*Plus: Release 11.2.0.4.0 Production on Sat Oct 13 14:14: ...