编写此循环的更好方法

better way to code this loop

嗨,我有一个用于从运输系统获取一些数据的程序,该程序已被替换。以前的代码链接到运输系统 公司 命令# 发布# 从订单详情中获取这些 table。请注意,订单可以有多行,其中的商品编号不同。

现在新的运输系统没有发布号。每个订单确实有一个行计数器#但是所以我们会有

company order   phno

001     123       1
001     123       2
001     123       3

所以对于代码,我想知道是否有更简洁的编码方式。

我认为可行的是,

为以上 3 列创建逻辑。

仅创建一次 运行 将“1”移动到密钥列表 comp, order#, counter '1'(仅限程序的第一次)

连锁。将补偿和订单移动到 prev_comp、Prev_order

然后下一次在子例程中,检查 order# = prev_order if = 将 1 添加到 phno,链,继续直到 order# not = 到 prev_order。 然后 Z-add1 到计数器链,设置 prev 字段,重复循环/

您可以对前两列使用 SetLL,然后使用 ReadE 来读取订单中的每个项目。

如果您的逻辑文件声明为 "Company, Order, PhNo",结果将按相同的顺序排列。

免费示例:

SetLL (Company:Order) YourFile;
ReadE (Company:Order) YourFile;
DoW not %EoF(YourFile);
  ... //Your logic per item here
  ReadE (Company:Order) YourFile;
EndDo;