DevExpress 报告:分组:两个组合二为一?

DevExpress report: grouping: two groups as one?

不确定如何为 google/SO 搜索使用此短语,我不确定您需要查看什么代码(如果有的话)。如果您需要代码,请告诉我,我会插入它,但此时,我不确定您需要什么。另外,我是 DevExpress 的铁杆 "noob" 因此我的问题。我觉得这应该是一个小而简单的修复,但我不知道该怎么做(我希望我能在这里学到更多关于 devexpress 的知识)

我有一个使用 OrderDetail object 的报告,它本身有一个 byte 字段用于 status(我们使用 (byte)enum 来评估).目前,两个状态值(出于本报告的目的)是 Complete 和 Paid,在这种情况下,两者的含义相同,因此需要归入 "Complete" 组。

我发现,如果我将以下代码插入 subGroupHeader_BeforePrint,我会将它们全部标记为完成(付费状态的标题为“完成”),但付费项目会丢失其所有分组(我明白为什么:我是逐行处理它而不是 "whole report" 的基础)

            //not quite it... but gets close. It marks them all as complete but does not group them with complete.
            if (orderDetail.Status == (byte)OrderStatus.Paid)
            {
                orderDetail.Status = (byte)OrderStatus.Complete;
            }

所以我需要一种整体方法来将这些付费项目标记为完整而不修改 saved/stored 数据,然后使用已经存在的任何排序将它们与真正的完整项目分组. 我需要做什么才能告诉 DevExpress 报告处理 "Paid" 就好像它们实际上是 "Complete?" 在我看来应该有一种方法可以告诉报告由于 devexpress 似乎非常强大,因此在报告中这样做。

我的特定任务的答案是使用计算字段。使用找到的说明 here,创建一个计算字段(return 如果您不希望它成为您想要的数据类型(例如,如果 50 意味着 "Paid"和 90 表示 "Complete",如果它是付费的,则使用表达式构建到 return 90,否则使用列值。在这种情况下,[Status]),设置您的组 header 标签以使用它以及组 header band/section。