首页 > 解决方案 > OpenEdge BREAK-BY 数量和行总和

问题描述

我有一个包含 QTY 字段的订单表,我想按照图像中显示的方式对项目进行分组。

在此处输入图像描述

我尝试使用这个:

FOR EACH RobotOrderline NO-LOCK
    BREAK BY RobotOrderline.OrderedQty.
        DISPLAY RobotOrderline.OrderedQty.
END.

但即使是分组似乎也是错误的。

在此处输入图像描述

标签: openedgeprogress-4gl

解决方案


您需要实际汇总数量。同样,for each 仍然针对表中的每一行运行,它只对它们进行排序并为不同的位置设置标志(第一个、最后一个、第一个、最后一个)。

DEFINE VARIABLE iQty AS INTEGER NO-UNDO.

FOR EACH RobotOrderline NO-LOCK
    BREAK BY RobotOrderline.OrderedQty.
    iQty = iQty + RobotOrderline.OrderedQty.
    IF LAST-OF(RobotOrderline.OrderedQty) THEN DO:
        DISPLAY RobotOrderline.OrderedQty iQty.
        iQty = 0.
    END.
END.

推荐阅读