五十一、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 ...
随机推荐
- Flutter | 状态管理特别篇——Provide
前言 今天偶然发现在谷歌爸爸的仓库下出现了一个叫做flutter-provide的状态管理框架,2月8日才第一次提交,非常新鲜.在简单上手之后感觉就是一个字--爽!所以今天就跟大家分享一下这个新的状态 ...
- 你知道HTTP协议的ETag是干什么的吗?
前言 在HTTP1.1规范中,新增了一个HTTP头信息:ETag.对于普通开发者来说,可能平时真的不会接触到该HTTP头.平时接触不到或者说用得少,不代表这个请求头不重要.ETag使用得当,是可以减少 ...
- 七 MyBatis整合Spring,DAO开发(传统DAO&动态代理DAO)
整合思路: 1.SQLSessionFactory对象应该放到Spring中作为单例存在 2.传统dao开发方式中,应该从Spring容器中获得SqlSession对象 3.Mapper代理行驶中,应 ...
- 【剑指Offer面试编程题】题目1504:把数组排成最小的数--九度OJ
题目描述: 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. 输入: 输 ...
- jQuery EasyUI window窗口实例
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>j ...
- redis列表-list
Redis的list类型其实就是一个每个子元素都是string类型的双向链表,链表的最大长度是2^32.list既可以用做栈,也可以用做队列. 常用命令: 1. lpush key value [va ...
- [Codeforces #608 div2]1271C Shawarma Tent
Description The map of the capital of Berland can be viewed on the infinite coordinate plane. Each p ...
- P1076 Wifi密码
P1076 Wifi密码 转跳点:
- iOS Framework制作流程
1.新建工程选择iOS —> Cocoa Touch Framework 2.进入创建好的工程删除掉自带的工程同名头文件 3.添加所需文件 4.TARGETS —> Build Setti ...
- 安装数据库Typical path for xclock: /usr/X11R6/bin/xclock 错误问题
[oracle@localhost database]$ ./runInstaller Starting Oracle Universal Installer... Checking Temp spa ...