如何在 PPFA 代码中打印条件字段
How to print conditional fields in PPFA code
如何使用 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
将在该位置打印给定的文本。但是基于我想要打印给定文本或图像的值。我该怎么做?
这是来自 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 截断是 z/OS 上的一个难题。
在此示例中,名为 PRTTXT
的 PAGEFORMAT
包含条件为真时的所有格式化和打印指令,另一个名为 PRTIMAGE
的包含打印条件所需的所有指令图片。
HTH
如何使用 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
将在该位置打印给定的文本。但是基于我想要打印给定文本或图像的值。我该怎么做?
这是来自 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 截断是 z/OS 上的一个难题。
在此示例中,名为 PRTTXT
的 PAGEFORMAT
包含条件为真时的所有格式化和打印指令,另一个名为 PRTIMAGE
的包含打印条件所需的所有指令图片。
HTH