Ibm midrange RPGLE子文件程序中记录的选择

Ibm midrange RPGLE子文件程序中记录的选择,ibm-midrange,rpgle,Ibm Midrange,Rpgle,我手头有一个相当有趣的问题。有一个子文件程序,用于显示存储在文件(如FILEA)中的某些生产订单记录和详细信息。该程序使用RPG操作读取和显示文件中的数据 出现了一个新的要求,即根据某些标准筛选出显示的生产任务单。标准并不简单,也不依赖于FILEA的直接字段值。相反,它取决于一组需要一些计算的复杂规则 现在,有另一个程序(比如PGMLOGIC)根据这些规则过滤出MOs并将其放入输出文件中 我想到的是想出某种机制,在这种机制中,我可以利用现有的程序PGMLOGIC,并像通常一样在输出文件中获得所需

我手头有一个相当有趣的问题。有一个子文件程序,用于显示存储在文件(如FILEA)中的某些生产订单记录和详细信息。该程序使用RPG操作读取和显示文件中的数据

出现了一个新的要求,即根据某些标准筛选出显示的生产任务单。标准并不简单,也不依赖于FILEA的直接字段值。相反,它取决于一组需要一些计算的复杂规则

现在,有另一个程序(比如PGMLOGIC)根据这些规则过滤出MOs并将其放入输出文件中

我想到的是想出某种机制,在这种机制中,我可以利用现有的程序PGMLOGIC,并像通常一样在输出文件中获得所需的MOs。使用所需记录创建此输出文件后,我希望使子文件RPG仅显示由PGMLOGIC和FILEA创建的输出文件中的那些MOs

我知道这可以通过修改子文件程序来完成,在显示之前进行条件检查,查看文件a中的MO是否也存在于输出文件中

然而,我有兴趣知道,因为这是一个记录选择的问题,这可以通过其他方式完成,如OPNQRYF等

然后,步骤的顺序是:

1) 调用PGMLOGIC创建输出文件。 2) 对文件A执行覆盖以仅选择输出文件中存在的那些MOs。 3) 调用子文件程序


这样做可能吗?

谢谢您的回复。我心里确实有一个坚实的计划,我认为适合这种情况。因此,计划是调用创建具有所需mos的输出文件的程序。将其与FILEA连接以创建新的临时输出文件。将FILEA重写为新的临时文件。调用子文件程序。现在将只显示所需的mos。

我认为对于您正在做的事情,如果您将程序改为SQLRPGLE,并在FILEA和创建的outfile之间进行内部连接,它可能看起来更干净,更容易理解。只是想一想,你计划做的事情应该会奏效。

我肯定地说,也许你可以用另一种方式来做。更确切的答案是,我们需要明确的例子。这个文件看起来像什么?FILEA看起来像什么?您是否能够对PGMLOGIC进行修改,以便将数据处理部分放入服务程序中?不要使用OPNQRYF。嵌入式SQL功能更强大,更易于阅读,并且幸运地避免了OVRDBF范围问题。是的,记录可以通过多种方式进行筛选。事实上,您甚至可以从outfile加载子文件,或者在SQL中连接FILEA和outfile。甚至是直接的RPG。不幸的是,我不能给你一个很好的答案,因为你的问题中只有模糊的概念。为什么不在输出文件中加载所有MOs,调用PGMLOGIC pgm删除不需要的条目,返回到主程序,读取子文件中的所有记录,链接输出文件。如果没有“匹配”,则删除子文件