如何在 Easytrieve 内部 SORT 中加入记录?

Posted

技术标签:

【中文标题】如何在 Easytrieve 内部 SORT 中加入记录?【英文标题】:How to join records in Easytrieve internal SORT? 【发布时间】:2019-03-13 10:47:16 【问题描述】:

我有一个要求,我需要从单个输入文件中提取 2 种类型的记录并将它们加入以进行 EZT 报告处理。 目前,我已经编写了一个 ICETOOL 步骤来执行提取和连接。 ICETOOL 步骤的输出被馈送到 Easytrieve 报告步骤。 提取卡如下-

SORT    FIELDS=(14,07,PD,A)
OUTFILE FNAMES=FILE010,INCLUDE=(25,03,CH,EQ,C'010')
OUTFILE FNAMES=FILE011,INCLUDE=(25,04,CH,EQ,C'011')
OPTION  DYNALLOC=(SYSDA,05)

这是加入卡片-

SORT     FIELDS=(14,07,PD,A)
JOINKEYS F1=FILE010,FIELDS=(14,07,A),SORTED,NOSEQCHK
JOINKEYS F2=FILE011,FIELDS=(14,07,A),SORTED,NOSEQCHK
REFORMAT FIELDS=(F1:14,07,
                 F2,25,10)
OUTREC   BUILD=(1,17,80:X),VTOF
OPTION   DYNALLOC=(SYSDA,05)

我想知道是否可以在 EasyTrive 中执行上述 SORT/ICETOOL 操作。我使用了 Easytrieve 内部 SORT,但它是用于简单的提取。我们可以在 Easytrieve 中执行 join 操作吗?

注意 - 我们的想法是有一个 EZT 步骤。

【问题讨论】:

【参考方案1】:

您可以使用 Easytrieve 中的同步文件处理工具 (SFP) 来完成任务。阅读更多关于它的信息here。

FILE FILE010
KEY1 14 7 N
*
FILE FILE011
KEY2 14 7 N
FIELD1 25 10 A
*
FILE OUTFILE FB(80 0)
OKEY 1 7 N
OFIELD 8 10 A
*
WS-COUNT W 5 N VALUE 0
*
JOB INPUT FILE010 KEY KEY1 FILE011 KEY KEY2 FINISH(DIS)
*
IF EOF FILE010
STOP
END-IF
*
IF MATCHED
OKEY = KEY1
OFIELD = FIELD1
WS-COUNT = WS-COUNT + 1
PUT OUTFILE
END-IF
*
DIS. PROC
DISPLAY 'RECORDS WRITTEN: ' WS-COUNT
END-PROC

请注意,

上面的代码没有经过测试,它只是一个展示想法的草稿 使用 Easytrieve 进行文件匹配以完成任务。 假定数据项的数据类型。您可能需要适当地更改它们。 您可能必须在FILE 中定义变量输入数据集 声明。 您可以在IF MATCHED 条件中为 创建报告。

希望这会有所帮助!

【讨论】:

嗨 Srinivasan,我们的想法是将单个文件作为输入。将其拆分为 2,然后将拆分的文件用于处理。一步到位。

以上是关于如何在 Easytrieve 内部 SORT 中加入记录?的主要内容,如果未能解决你的问题,请参考以下文章

深入了解javascript的sort方法

无法在 python 中加载 c++ DLL

算法与数据结构整理-排序

如何在html的表格中加入边框线

如何在页面加载时调度 redux 操作以在 useEffect 中加载数据

在 pyqt 中加载图像和文本