美文网首页
05模块化编程,A4-使用Include,输出订单列表数据201

05模块化编程,A4-使用Include,输出订单列表数据201

作者: 真言真语SAP | 来源:发表于2018-02-25 14:19 被阅读0次
    图5-A4 使用Include输出订单列表

    需求分析:

    1、具体需求

    本《使用Include输出订单列表》有如下需求:

    1. 从订单表中获得订单信息并按图示输出;
    2. 订单列表按订单编号升序输出,同时输出订单编号时不保留前导0。

    其中列表输出效果如图。

    图5- 12 列表输出效果

    2、开发分析

    要达成本实践目标,分析有如下:

    1. 此实践也可以通过一般的方式在一个程序中实现页眉和数据的输出;
    2. 在本实践中,将页眉输出通过Include(包含)程序进行定义,如此此页眉可在不同的程序中重复使用。
    图5- 13 程序开发思路

    实践步骤:

    本实践将会需要建立2个程序,一个是要在其他程序中包含的Include程序,另一个是输出列表数据的程序;2个程序都可以通过程序编辑器(SE38)即可完成,编写的代码将有如下几部分组成,按开发人员风格不同,其组成部分并非强制一致。

    1、建立Include

    在程序编辑器的初始界面,输入程序名称(本实例为ZU0504_PAGE_HEADER)后,点击创建,将会出现设定程序属性的界面,从界面中输入标题,并选择类型为“I INCLUDE程序”程序,如图,完成后点击保存。

    图5- 14 包含程序的类型设置

    然后将进入源代码编辑界面,详细代码如下:

    *&---------------------------------------------------------------------*
    *&  INCLUDE  ZU0504_PAGE_HEADER
    *&---------------------------------------------------------------------*
    TOP-OF-PAGE.
      WRITE:/5 '订单列表', 60 '页码:', (3) sy-pagno.
      WRITE:/5(70) sy-uline.
      WRITE:/5(4) '序号', (8) '订单编号',
              (8) '订单日期', (6) '客户',
              (20) '客户名称', (8) '城市', (8) '所在地区'.
      WRITE:/5(70) sy-uline.
    

    如上代码相当于把主程序中页眉输出部分的内容,放到此Include中;在Include的源代码中也可以使用主程序中的变量。

    完成后激活,则建立了一个子程序。

    2、程序声明

    新建一程序zu0504_order_list_include以完成本实践需求,程序声明部分的代码如下:

    REPORT zu0504_order_list_include NO STANDARD PAGE HEADING
          LINE-SIZE 100 LINE-COUNT 80.
    

    通过如上代码,设定了此程序输出不使用标准页眉,页面宽度100个字符,页面高度为80行。

    3、对象定义

    对象定义部分的代码如下:

    *****对象定义
    DATA:BEGIN OF order_list_stru,
           orderid      TYPE ztorders_h-orderid,
           orderdate    TYPE ztorders_h-orderdate,
           customerid   TYPE ztcustomer-customerid,
           customername TYPE ztcustomer-customername,
           city         TYPE ztcustomer-city,
           region       TYPE ztcustomer-region,
         END OF order_list_stru.
    

    通过如上代码定义了一个名称为order_list_stru的结构,以在后续获取和输出数据部分中,存储和输出记录的值。

    4、输出页眉

    输出页眉部分的代码如下:

    *&----------------------------------------------------------------------*
    *& 输出页眉
    *&----------------------------------------------------------------------*
    INCLUDE zu0504_page_header.
    

    通过INCLUDE关键字,将INCLUDE程序zu0504_page_header包含到此程序中,由此实现页眉的输出。

    5、获得和输出数据

    获得和输出数据部分的代码如下:

    *&----------------------------------------------------------------------*
    *& START-OF-SELECTION
    *&----------------------------------------------------------------------*
    START-OF-SELECTION.
    *****获取和输出订单数据
      SELECT oh~orderid oh~orderdate ct~customerid ct~customername ct~city ct~region
             INTO order_list_stru
             FROM ( ztorders_h AS oh
                    INNER JOIN ztcustomer AS ct ON ct~customerid = oh~customerid )
             ORDER BY orderid.
        SHIFT order_list_stru-orderid LEFT DELETING LEADING '0'.
    
        WRITE:/5(4) sy-dbcnt, (8) order_list_stru-orderid,
                (8) order_list_stru-orderdate, (6) order_list_stru-customerid,
                (20) order_list_stru-customername, (8) order_list_stru-city, 
                (8) order_list_stru-region.
      ENDSELECT.
    

    如上代码,通过SELECT关键字将数据从ztorders_h和ztcustomer中逐条获取数据并存储到结构order_list_stru中,然后通过SHIFT关键字对订单编号的前导0去除后,按需求通过WRITE输出。

    将如上2~5部分的代码顺序合并后,则得到本需求本程序的实现代码。

    本实践小结:包含程序

    包含(Include)程序也是一种ABAP程序,是类型为I的不可执行的程序,作为代码复用技术在SAP的应用也是非常广泛。主要应用于:1)将大型程序分为不同的部分进行维护,2)多个程序中相同的代码段;由此实现代码的协同开发和提高代码的质量和效率。

    相关文章

      网友评论

          本文标题:05模块化编程,A4-使用Include,输出订单列表数据201

          本文链接:https://www.haomeiwen.com/subject/tbdrxftx.html