【问题标题】:JRecord - Handling duplicate columns in cobol copybookJRecord - 处理 cobol 抄写本中的重复列
【发布时间】:2015-01-10 03:41:02
【问题描述】:

我在 git https://github.com/tmalaska/CopybookInputFormat/ 上使用 CopybookInputFormat 从 COBOL 副本生成配置单元表定义。我的字帖有很多填充物(重复的列) 但看起来 JRecord 没有正确处理重复的列名。 对于下面的字帖,当我迭代列时,JRecord 只打印第二个填充物并忽略第一个填充物。

  05 Birth-day              PIC X(002)
  05 Filler                 PIC X(008)
  05 Birth-Month            PIC X(002)
  05 Filler                 PIC X(008)
  05 Birth-year             PIC X(004)

有人对此有任何解决方案吗?我知道 JRecord 0.80.6 以后正在处理重复的列,但是方法 getUniqueField("FIRST-NAME", "PRESIDENT") 需要一个组名.. 但是如果组有重复的列怎么办?

【问题讨论】:

    标签: cobol jrecord


    【解决方案1】:

    您不需要导入 Filler。在 Cobol 中,不能直接访问 Filler。在 Cobol 中,一个 Filler 表示 Ignore 这个 Field(或通过其他方法访问它)。

    Cobol-Copybook 就像一块内存的掩码;填充符用于跳过一些内存。

      Data         !##........##........##   (# - accessible bytes; . - inaccessible bytes)
                    ^         ^         ^                               
                    !         !         !
    Birth-day    ---+         !         ! 
    Filler                    !         ! 
    Birth-Month  -------------+         !  
    Filler                              !
    Birth-year   -----------------------+   
    

    填充物可用于:

    • 屏蔽不再使用的字段。
    • 重新定义中使用的掩码数据
    • 当您不需要所有字段时,创建一个简化版的字帖
    • 初始化输出字段,即
    05 报告-出生日期 10 日图片 99。 10 填充图片'/'。 10 毫米图片 99。 10 填充图片'/'。 10 年 yyyy 图片 9999。
    • 设置表格数据
    05 代码。 10 代码出现 5 pic 99。 05 填充重新定义代码 pic x(10) 值“0204050612”。

    我想问问 Cobol 专家 你在哪里工作 发生了什么 ???。可能的答案是:

    • 可能不需要填充数据。
    • 您应该使用其他更复杂的 Copybook。
    • 应使用实名填写者更新字帖。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-12
      • 2012-01-15
      • 2021-01-11
      • 2021-04-03
      相关资源
      最近更新 更多