一、我们创建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中使程序结构化,模块化的更多相关文章

  1. windows vbs启动多个应用程序并使程序最小化(显示桌面)

      windows vbs启动多个应用程序并使程序最小化(显示桌面) CreationTime--2018年7月26日11点18分 Author:Marydon 1.应用场景 每天开机后,都需要打开平 ...

  2. 七十五、SAP中数据库的使用SQL

    一.在SAP中可以使用两张数据库,一直是NativeSQL和OPEN SQL. Native SQL(本地SQL)特点: 1.每种关系型数据库都有其对应的  SQL,是数据库相关的. 2.不同的 SA ...

  3. 妙味,结构化模块化 整站开发my100du

    ********************************************************************* 重要:重新审视的相关知识 /* 妙味官网:www.miaov ...

  4. 四十九、在SAP中查看程序资源结构对象

    一.在屏幕上点击这个品图标,相关说明如下图 二.使用这个程序资源结构对象可以很方便的定位

  5. 六十五、SAP中通过BREAK-POINT下断点,进行调试

    一.代码如下,有2个断点的按钮,可以可以写入BREAK-POINT人工断点 二.运行之后,程序会被断下来, 四个执行按钮,意思分别为:单步进入子程序,单步不进入子程序,返回外面,执行到断点处 三.我们 ...

  6. 一百零五、SAP中ALV事件之十七,让ALV表格修改后保存到数据库

    一.我们来到代码界面设置保存按钮的代码 二.i_grid_settings这个属性用来编辑单元格之后,返回给程序编辑后的值 三.我们双击点  'REUSE_ALV_GRID_DISPLAY',来到定义 ...

  7. 八十五、SAP中的ALV创建之四,去掉主键背景色

    一.我们执行程序之后,发现表格中所有的内容都是有底色的 二.这个是因为我们在代码中规定了主键 三.我们去掉处理第一个之外的主键 四.运行程序,发现还是所有字段都有背景色 五.这是因为在每次ls_fie ...

  8. 四十五、SAP中Message的管理

    一.事务代码SE91 二.输入相关名字,点击创建 三.输入内容 四.定义成本地对象 五.在消息中添加一条短文本 六.我们代码如下 七.执行

  9. hive 中出现struct 结构化的问题

    如果你使用udf,udaf,udtf中的某一个并且查询日志中出现如下之类的struct错误 java.lang.RuntimeException: Error in configuring objec ...

随机推荐

  1. ubuntu14 安装Node.js

    @brief ubuntu  安装Node.js @date 2018-06-28 @see Ubuntu 上安装 Node.js(https://www.runoob.com/nodejs/node ...

  2. TortoiseGit+msysgit保存用户名和密码

    本文以windows系统为例 保存用户名和密码 在C盘的c:\Users**qing** (或可能是C:\Users\Administrator) (替换自己的用户名)找到.gitconfig, 如果 ...

  3. [转]网络协议-redis协议

    Redis 通信协议(protocol) 本文档翻译自: http://redis.io/topics/protocol . Redis 协议在以下三个目标之间进行折中: 易于实现 可以高效地被计算机 ...

  4. 微信小程序中,如何实现显示,隐藏密码的功能

    最近在搞小程序的开发,遇到隐藏,显示密码的功能的时候,电脑上调试没问题,但是手机上面点击却没有效果,必须要跳转到其他页面再跳回来,才能正常显示. 一时间搞得我很头疼,查找资料后,终于知道了是什么原因. ...

  5. The problem: somthing wrong when my computer excute the command "git clone XXXX"

    Error:git@github.com: Permission denied (publickey).fatal: Could not read from remote repository. Pl ...

  6. IDEA中maven工程打包时使用跳过test模式

  7. emWin 模拟器环境搭建

    转载http://www.nxpic.org/module/forum/thread-609329-1-1.html 这个模拟器工程在Segger官网下载:https://www.segger.com ...

  8. 黑客的探路狗ReconDog网站信息探测收集工具

    工具下载地址:http://pan.baidu.com/s/1pLJnBLL 密码:gqlz   OR  https://github.com/UltimateHackers/ReconDog 下载并 ...

  9. qrcode在手机上不显示的问题

    可以试试以下解决方案: 1.修改qrcode.min.js:里的function n()红线区域替换成这个 , 原因是这样子才能支持安卓机显示.

  10. Spring任务调度实战之Quartz Cron Trigger

    在Quartz中除了使用最简单的Simple Trigger以外,也可以使用类似Linux上Cron作业的CronTrigger的方式来运行Job,下面是一个小例子: 1. 首先是一个任务类,这个类没 ...