0

如何使用 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在该位置打印给定的文本。但基于我想打印给定文本或图像的值。我该怎么做?

4

1 回答 1

1

以下是 AFP-L 列表中的答案:

我会创建两个PAGEFORMATS,一个带有 LAYOUT 用于 TEXT,一个带有 LAYOUT 用于 IMAGE。您可以在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;

您必须在命令之后将其复制CONDITION到两者中。Blanc truncation 是 z/OS 上的一个难题。PAGEFORMATSLAYOUT

在此示例中,PAGEFORMATnamedPRTTXT包含条件为真时的所有格式和打印指令,而另一个 callPRTIMAGE包含打印图像所需的每个指令。

HTH

于 2021-06-07T20:16:14.803 回答