SAP:Write 输出页眉页脚

本文详细介绍了如何在SAP的ABAP编程中编写代码,以实现在报表输出时添加页眉和页脚的功能,无条件进行分页处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

条件分页 – 定义行块

文章摘要:要在少于某一页剩余行数的条件下执行分页,请使用RESERVE语句: 语法 RESERVE<n>LINES. 如果当前列表页的最后输出和页脚之间剩余的自由行数少于<n>,则该语句触发分页。<n>可以是变量&...

要在少于某 一页剩余行 数的条件下 执行分页, 请使用 RESERVE 语句:

语法

RESERVE <n> LINES.

如果当前列 表页的最后 输出和页脚 之间剩余的 自由行数少 于 <n>,则 该语句触发 分页。 <n> 可以是变量 。在开始新 页之前,系 统处理 END-OF-PAGE 事件。只有 输出写入到 后续页时, RESERVE 才生效。不 创建空页。 

RESERVE 语句就这样 定义必须整 个输出的行 块。要查找 行块可能有 的附加实际 效果,参见 将输出定位 在行块的首 行 (页 237) 。

REPORT SAPMZTST LINE-SIZE 40 LINE-COUNT 8(2).

END-OF-PAGE.

ULINE.

START-OF-SELECTION.

DO 4 TIMES.
  WRITE / SY-INDEX.
ENDDO.

DO 2 TIMES.
  WRITE / SY-INDEX.
ENDDO.

RESERVE 3 LINES.
WRITE: / 'LINE 1',
       / 'LINE 2',
       / 'LINE 3'.

该样本程序 标准页眉的 列表头定义 为“标准页 眉”。REPORT 语句将页长 确定为八行 ,两行用于 标准页眉, 另外两行为 页脚保留。 页脚包括水 平行和空行 。因此,输 出的实际列 表,每页留 下四行。第 一个 DO 循环填充这 四行,然后 发生 END-OF-PAGE 事件,其后 系统自动开 始新页。在 第二个 DO 循环之后, 因为页上剩 余的自由行 数少于三, 因此 RESERVE 语句触发 END-OF-PAGE 事件和分页 。输出如下 :

第 3 页的三行组 成行块。

 

单页的标准页眉

文章摘要:标准页眉包括列表和列标题(参见标准页眉(页272).)。要影响标准页眉这些组件的表现形式,请使用NEW-PAGE语句的下列选项: 语法 NEW-PAGE[NO-TITLE|WITH-TITLE][NO-HEADING|WITH-HEADING]. 使用NO-TITLE或WITH-...

标准页眉包 括列表和列 标题(参见标准页眉 (页 272) .)。要影 响标准页眉 这些组件的 表现形式, 请使用 NEW-PAGE 语句的下列 选项:

语法

NEW-PAGE [NO-TITLE|WITH-TITLE] [NO-HEADING|WITH-HEADING].

使用 NO-TITLE 或 WITH-TITLE 选项取消或 者在以后所 有页上显示 标准表头。 基本列表的 缺省值为 WITH-TITLE, 辅助列表为 NO-TITLE。

使用 NO-HEADING 或 WITH-HEADING 选项取消或 在以后所有 页上显示列 标题。基本 列表的缺省 值为 WITH-HEADING, 辅助列表为 NO-HEADING。

关于基本和 辅助列表的 详细信息, 参见 交互式列表 (页 Error! Not a valid link.) 。

即使使用 REPORT 语句的 NO STANDARD PAGE HEADING 选项取消标 准页眉,也 能使用 WITH-TITLE 和 WITH-HEADING 激活单个组 件的显示。

因为 TOP-OF-PAGE 事件在新页 上处理,所 以 NEW-PAGE 语句不能影 响在该事件 中定义的页 眉显示(参 见 单个页眉 (页 274) )。

REPORT SAPMZTST LINE-SIZE 40.
WRITE: 'Page', SY-PAGNO.

NEW-PAGE NO-TITLE.
WRITE: 'Page', SY-PAGNO.

NEW-PAGE NO-HEADING.
WRITE: 'Page', SY-PAGNO.

NEW-PAGE WITH-TITLE.
WRITE: 'Page', SY-PAGNO.

NEW-PAGE WITH-HEADING.
WRITE: 'Page', SY-PAGNO.

该程序创建 五页,分别 带有不同页 眉。将列表 表头标题文 本元素定义 为“标准页 眉”,列标 题定义为“ 列”。

第 1 和 5 页包含完整 的标准页眉 。第 2 页没有列表 表头。在第 3 页上,取消 整个页眉。 在第 4 页上,省略 列标题。

 

无条件分页

文章摘要: 要在页处理期间触发分页,请使用NEW-PAGE语句的基本格式: 语法 NEW-PAGE. 该语句 结束当前页。在新页上显示所有其他输出。 如果输出写入到当前页和NEW-PAGE之后的新页,则只开始新页。系统然后将SY-PAGN...

要在页处理 期间触发分 页,请使用 NEW-PAGE 语句的基本 格式:

语法

NEW-PAGE.

该语句

 

结束当前 页。在新页 上显示所有 其他输出。

如果输出 写入到当前 页和 NEW-PAGE 之后的新页 ,则只开始 新页。系统 然后将 SY-PAGNO 系统字段家 1。不能产 生空页。

不能触发 END-OF-PAGE 事件。这意 味着即使定 义了页脚, 系统也不输 出。

REPORT SAPMZTST LINE-SIZE 40.

TOP-OF-PAGE.

WRITE: 'TOP-OF-PAGE', SY-PAGNO.
ULINE AT /(17).

START-OF-SELECTION.

DO 2 TIMES.
  WRITE / 'Loop:'.
  DO 3 TIMES.
    WRITE / SY-INDEX.
  ENDDO.
  NEW-PAGE.
ENDDO.

该样本程序 使用列表表 头“标准页 眉”定义为 文本元素的 标准页眉和 自定义页眉 。每页都出 现两个页眉 。

DO 循环两次遇 到 NEW-PAGE 语句,但是 只执行一次 分页。在第 二条 NEW-PAGE 语句之后, 没有输出。

 

单个页眉

文章摘要:要分别定义页眉的格式,必须在紧随事件关键字TOP-OF-PAGE的处理块中定义: 语法 TOP-OF-PAGE.WRITE:.... TOP-OF-PAGE事件在系统开始处理列表新页时出现。系统在输出新页首行之前处理TOP-OF-PAGE后面的语句...

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

语法

TOP-OF-PAGE.
  WRITE: ....

TOP-OF-PAGE 事件在系统 开始处理列 表新页时出 现。系统在 输出新页首 行之前处理 TOP-OF-PAGE 后面的语句 。关于事件 和处理块的 详细信息, 参见 通过事件控制 ABAP/4 程序流 (页 错误!链接无效。) 。

如果以后要 启动实际列 表处理,记 住要通过使 用合适的事 件关键字, 例如 START-OF-SELECTION, 结束处理块 (参见 定义处理块 (页 错误!链接无效。) )。

自定义页眉 出现在标准 页眉之下。 如果要取消 标准页眉, 请使用 REPORT 语句的 NO STANDARD PAGE HEADING 选项:

语法

REPORT <rep> NO STANDARD PAGE HEADING.

使用该语句 时,系统不 在报表 <rep> 列表页上显 示标准页眉 。如果使用 TOP-OF-PAGE 定义单个页 眉,则系统 就将其显示 出来。

垂直滚动时 ,自定义页 眉与标准页 眉一样保持 可见。但是 ,自定义页 眉包括正常 列表行,因 此不能自动 符合窗口宽 度。

REPORT SAPMZTST 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 。输出如下 所示:

自定义页眉 包括六行。 程序标题来 自 SY-TITLE 系统字段, 页号来自 SY-PAGNO。 自定义页眉 与列表宽度 不等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值