COBOL XML Generate:输入子变量值

问题描述

我有一个关于XML Generate在COBOL上的功能的案例。 我的本抄写本:

01 ABC.
   02 a  PIC X(02) VALUE SPACES.
   02 b  PIC X(02) VALUE SPACES.
   02 c  PIC X(02) VALUE SPACES.

结果:

<ABC><a>aa</a><b>bb</b><c>cc</c></ABC>

但是我输出的最大长度只有ZZ个字符。 因此,我想我必须在其中插入带有预期结果的“输入”字符:

<ABC><a>aa</a><b>bb</b>
<c>cc</c></ABC>

所以我试图编辑本抄写本,就像这样:

01 ABC.
   02 a  PIC X(02) VALUE SPACES.
   02 b  PIC X(02) VALUE SPACES.
   02 FILLER  PIC X VALUE IS X'7D'.
   02 c  PIC X(02) VALUE SPACES.

但是它不起作用。 关于这个案例有什么建议吗?

非常感谢

解决方法

amount_every_person_owes = total_spent / number_of_people for person in group: amount_this_person_owes = amount_every_person_owes - amount_this_person_spent 是对COBOL标准的常见扩展。它仅将输出格式指定为XML,并具有一组定义的规则,以哪种方式和格式包括哪些数据项。它不保证“打印格式”,并指定您需要目标足够大(有时是COBOL数据的5倍),以免出现异常。

给定实现的某些版本甚至可能输出“漂亮的字样”(元素之间有很多空格),而另一个版本则没有。

因此,您可以执行以下操作:

  • 使用足够大的目标字段
  • 然后通过XML GENERATE将目标字段拆分为请求的大小。

有关PERFORM的更多信息,请参见IBM DocumentationMicro Focus docsACUCOBOL-GT docs