如何根据子组的摘要字段订购组

时间:2014-02-21 14:58:03

标签: crystal-reports

我的报告基本上是

  • 订单
    • OrderDetail 1
    • OrderDetail ..
    • OrderDetail n

这些细节可能包含与之相关的零件和/或人工成本。

目前,我根据OrderId进行分组,然后在报告的详细信息部分中显示OrderDetail信息。这非常有效。

但是,现在我需要根据整个订单的两个条件OrdersOrderTypeLabourCost进行分组。我已经制定了一个快速公式来确定订单。

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

基本上,如果它应该基于劳动然后在类型上进行分类。 (Sum({order.Labour}, {order.OrderId})根据orderid对劳动分组进行求和)

然而,当我转到Group Expert并按字段添加到我的公式然后预览我的报告时,它会旋转(我在一分钟后取消了预览)。如果我删除公式的Sum部分,则需要不到一秒钟。

有没有办法订购此报告?

1 个答案:

答案 0 :(得分:1)

我将如何处理它:

首先,创建一个sql-expresssion字段,用于计算每个订单的人工总数:

// {%TOTAL_LABOR}
(
SELECT Sum(Labour)
FROM   OrderDetail
WHERE  OrderId=Order.OrderId
)

接下来,创建一个formula字段:

// {@OrderGroup}
if({%TOTAL_LABOR}> 0) then
  if({order.type} = "type1") then 1 else 2
else
  if({order.type} = "type1") then 3 else 4

最后,根据formula字段创建一个新组,确保它在订单组之前进行分组。如果需要,您可以取消组的页眉和页脚。