一、我们创建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. 【AOP】在Aspect中无法获取实现类方法的注解

    问题 MethodSignature methodSignature = (MethodSignature) (joinPoint.getSignature()); Method method = m ...

  2. vue 父组件调用子组件方法简单例子(笔记)

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 敌兵布阵-HDU1166 点修改+区间查询

    题目:C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况 ...

  4. D. Number Of Permutations 符合条件的排列种类

    D. Number Of Permutations time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  5. C# Show()与ShowDialog()的区别-----转载

    A.WinForm中窗体显示  显示窗体可以有以下2种方法:  Form.ShowDialog方法 (窗体显示为模式窗体)  Form.Show方法 (窗体显示为无模式窗体) 两者具体区别如下:  1 ...

  6. Linux-使用之vim出现的问题

    参考来源: https://stackoverflow.com/questions/47667119/ycm-error-the-ycmd-server-shut-down-restart-wit-t ...

  7. HTML相关知识点(2)

     CSS: 字体: 网页默认字体16px; 网站通用字体大小14px 最小是12px,最大无限大 单位换算:1em=16px 选择器:标签选择器:选择页面中所有指定标签,权重为1 通配符选择器:选择所 ...

  8. SICOM SOP

    SOPs A Service-Object Pair (SOP) Class is defined by the union of an Information Object Definition ( ...

  9. CTE With as 递归调用

    WITH AS的含义   WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会 被整个SQL语句所用到.有的时候,是为了 ...

  10. 修改Centos7的yum源

    以下为修改Centos7的yum源: 1. 备份原镜像文件,便于后期恢复 [root@keepmydream ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc ...