【问题标题】:How to print conditional fields in PPFA code如何在 PPFA 代码中打印条件字段
【发布时间】:2021-06-07 04:26:06
【问题描述】:

如何使用 PPFA 代码打印条件字段。当一个值为“X”时,我想打印它。但是,如果“X”不存在,那么我想打印一张图像。这是我的代码:

LAYOUT C'mylayout' BODY
  POSITION .25  in ABSOLUTE .25 in
  FONT TIMES
  OVERLAY MYTEMPOVER  8.5 in 11.0 in;
  FIELD START  1 LENGTH 60
  POSITION 2.0  in 1.6  in;

FIELD START 1 LENGTH 60 将在该位置打印给定的文本。但基于我想打印给定文本或图像的值。我该怎么做?

【问题讨论】:

    标签: mainframe zos afp ppfa


    【解决方案1】:

    这是来自 AFP-L 列表的答案:

    我会创建两个PAGEFORMATS,一个用于文本的布局,一个用于图像的布局。使用CONDITION,您可以在页面格式之间跳转(其中 Copygroup 始终为“NULL”)

    如果您在 z/OS 环境中工作,请注意“JES Blanc Truncation”。 这意味着一句话:

    • 如果数据中有 X,则条件为真
    • 如果数据中没有任何内容,则条件不起作用并且总是错误的(没有任何反应) 在这种情况下,您必须创建一个始终为真的条件。我称之为虚拟条件。

    PPFA 示例语法:

    CONDITION TEST start 1 length 1 
    when eq 'X' NULL PAGEFORMAT PRTTXT
    when ge x'00' NULL PAGEFORMAT PRTIMAGE;
    

    您必须在LAYOUT 命令之后将此CONDITION 复制到PAGEFORMATS 中。 Blanc truncation 是 z/OS 上的一个难题。

    在这个示例中,名为PRTTXTPAGEFORMAT 包含条件为真时的所有格式和打印指令,另一个名为PRTIMAGE 的指令包含打印图像所需的所有指令。

    HTH

    【讨论】:

    • 哇,谢谢你的回答。我会试试看。
    猜你喜欢
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多