Crystal reports 如何根据子组的摘要字段对组进行排序
我有一份报告基本上Crystal reports 如何根据子组的摘要字段对组进行排序,crystal-reports,Crystal Reports,我有一份报告基本上 命令 订单详情1 订单详情 订单详细信息 这些详细信息可能包含与之相关的零件和/或人工成本 目前,我基于OrderId进行分组,然后在报告的详细信息部分提供OrderDetail信息。这很好用 但是,现在我需要根据整个订单的两个标准OrderType和LabourCost对订单进行分组。我已经整理了一个快速公式来确定顺序 if(Sum({order.Labour}, {order.OrderId})> 0) then if({order.type} = "t
- 命令
- 订单详情1
- 订单详情
- 订单详细信息
OrderId
进行分组,然后在报告的详细信息部分提供OrderDetail
信息。这很好用
但是,现在我需要根据整个订单的两个标准OrderType
和LabourCost
对订单进行分组。我已经整理了一个快速公式来确定顺序
if(Sum({order.Labour}, {order.OrderId})> 0) then
if({order.type} = "type1") then 1 else 2
else
if({order.type} = "type1") then 3 else 4
基本上,如果应该根据劳动力分类,那么就应该根据类型分类。(求和({order.Labour},{order.OrderId})根据OrderId对人工分组求和)
但是,当我转到Group Expert
并将Group by字段添加到我的公式中,然后预览我的报告时,它会旋转(我在一分钟后取消了预览)。如果我删除公式中的Sum
部分,则所需时间不到一秒钟
是否有办法订购此报告?我将如何处理: 首先,创建一个
sql expression
字段,用于计算每个订单的人工总数:
// {%TOTAL_LABOR}
(
SELECT Sum(Labour)
FROM OrderDetail
WHERE OrderId=Order.OrderId
)
接下来,创建一个公式
字段:
// {@OrderGroup}
if({%TOTAL_LABOR}> 0) then
if({order.type} = "type1") then 1 else 2
else
if({order.type} = "type1") then 3 else 4
最后,根据
公式
字段创建一个新组,确保它在订单组之前分组。如果需要,您可以取消显示组的页眉和页脚。是人工成本
的订单
(如公式中所示)还是订单详细信息
?Type
也是这样吗?@craig,LabourCost是OrderDetail上的一个字段,但是,我创建了一个视图,将Order和OrderDetail连接在一起,因此它只是一个重复了OrderId和其他订单信息的表。如果使用视图,效果会更好;您可以跳过sql表达式
,将摘要作为标量值构建到SELECT
子句中。