ABAP Write 宝典

本文详细介绍了ABAP中用于输出列表、修改列表结构、自定义页眉页脚、设置页宽页长、定位输出、格式输出等的语句和技巧。通过示例展示了如何控制列表的样式,包括标准列表结构、自定义列表、页眉页脚的定制、列表宽度和长度的确定、页面滚动和定位等。
摘要由CSDN通过智能技术生成

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                列表是ABAP/4报表程序数据的输出媒介。每个ABAP/4报表程序将其输出数据传递到直接与该程序连接的列表中。每个程序最多生成21个列表:1个基本列表和20个辅助列表。

   将数据写入列表的基本ABAP/4语句是WRITE、SKIP和ULINE输出语句。

一、标准列表结构

(1)标准页眉:标准页眉至少包括两行标准标题。标准标题的首行包含列表表头和页号。第二行由水平线组成。执行程序时,列表表头存储在系统字段SY-TITLE中。如果需要,可以在标准标题中包括最多四行列头和另一条水平线。

(2)标准页

   输出数据显示在页眉之下。标准列表包含一个动态长度的单页(内部限制60,000行)。输出长度由当前列表大小确定。输出屏幕包括一个垂直滚动条,允许用户滚动页长超过窗口的列表。

 

(3)标准列表的宽度

    标准列表的宽度取决于执行报表时的窗口宽度。如果用户窗口小于或等于标准窗口大小,则标准页宽应符合标准窗口宽度。用户可能必须滚动列表才能查看列表的所有部件。如果用户窗口超过标准窗口宽度,则标准列表的宽度符合选定标准窗口的宽度。

 

 

二、修改列表和列标题

(1)自定义列表

可以修改标准列表的结构并创建单个结构的列表。使用REPORT语句选项以及事件TOP-OF-PAGE和END-OF-PAGE。PROGRAM语句与REPORT语句等介并有相同的选项。如果列表包括几页,则可以分别定义每页的结构。

---单个页眉:要分别定义页眉的格式,必须在紧随事件关键字TOP-OF-PAGE的处理块中定义,

语法:

 TOP-OF-PAGE.

    WRITE:....

TOP-OF-PAGE事件在系统开始处理列表新页时出现。系统在输出新页首行之前处理TOP-OF-PAGE后面的语句。如果要取消标准页眉,使用语法:REPORT <rep> NO STANDARD PAGEHEADING.使用该语句时,系统不在报表<rep>列表上显示标准页眉。

 REPORT  ZJESSE02 NO STANDARD PAGE HEADING.
TOP-OF-PAGE.
WRITE: SY-TITLE, 40 'Page', SY-PAGNO.
ULINE.
WRITE: / 'SAP AG', 29 'Walldorf, ',SY-DATUM,
       / 'Neurottstr. 16', / '69190 Walldorf/Baden'.
ULINE.
START-OF-SELECTION.
DO 5 TIMES.
  WRITE / SY-INDEX.
ENDDO.

报表程序不使用标准页眉,而是使用 TOP-OF-PAGE 之后的自定义页眉。要显式结束TOP-OF-PAGE处理块,必须指定事件关键字 START-OF-SELECTION。

 

(2)确定列表宽度

    要确定输出列表的宽度,使用REPORT语句的LINE-SIZE选项。语法: REPORT<rep> LINE-SIZE<width>.该语句根据<width>字符确定报表<rep>输出列表的宽度。如果将<width>设置为0,则系统使用标准列表的宽度。一行最多可包含255个字符。如果要打印列表,大多数据打印机不能打印超过132个字符的列表。创建列表时,系统字段SY-LINSZ包含当前行宽。要将列表宽度调整为当前窗口宽度,使用ULINE语句(不带AT选项)创建的水平线自动适配自定义列表宽度。

 REPORT  ZJESSE02 LINE-SIZE 60. 
WRITE:  'SY-LINSZ:', SY-LINSZ. 
ULINE. 
DO 20 TIMES. 
  WRITE SY-INDEX. 
ENDDO.

 

(3)确定页长

  要确定输出列表的页长,使用REPORT语句的LINE-COUNT选项。REPORT<rep> LINE-COUNT<length>[(<n>)].该语句用<length>行确定报表的页长。如果指定选项号<n>,则系统为页脚保留<n>行页长。并不将这些页脚行填写到END-OF-PAGE事件中,而是作为空行显示。如果设置为0,则系统使用标准页长。创建列表时,系统字段SY-LINCT包含每页的当前行数。

 REPORT  ZJESSE02 LINE-SIZE 40 LINE-COUNT 4. 
WRITE:  'SY-LINCT:', SY-LINCT. 
SKIP. 
DO 6 TIMES. 
 WRITE / SY-INDEX. 
ENDDO.

该程序将页长确定为四行。使用标准页眉。假定标准页眉 包括两行列表表头:

JESSE的ABAP程序                       1

SY-LINCT:    4


JESSE的ABAP程序                       2

        1
        2

JESSE的ABAP程序                       3

        3
        4

JESSE的ABAP程序                       4

        5
        6

 

(4)定义页脚

要定义页脚,使用END-OF-PAGE事件。在处理列表页时,如果系统到达页脚保留行,或者如果RESERVE语句触发分布则该事件发生。在紧接着END-OF-PAGE事件关键字的处理块中填充页脚的行:

语法

  END-OF-PAGE.

   WRITE:...

 如果为REPORT语句的LINE-COUNT选项中的脚注保留行,则系统只处理紧接着END-OF-PAGE的处理块。

 REPORT  ZJESSE02 LINE-SIZE 40 LINE-COUNT 6(2) 
                NO STANDARD PAGE HEADING. 
TOP-OF-PAGE. 
WRITE: 'Page with Header and Footer'. 
ULINE AT /(27). 
END-OF-PAGE. 
ULINE. 
WRITE: /30 'Page', SY-PAGNO. 
START-OF-SELECTION. 
DO 6 TIMES. 
  WRITE / SY-INDEX. 
ENDDO.

该程序包括三个处理块。关闭标准页眉。将页长设置为六行,其中两行留作页脚。列表包括三页,每页六行。每页由自定义的两行页眉、两行实际列表和两行页脚组成。页脚中显示的当前页号来自系统字段SY-PAGNO 。运行结果如下:

Page

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值