条件组最大值

时间:2015-07-01 12:13:13

标签: crystal-reports

我在CR9中创建了一个水晶报告,显示所有实时订单。 每个实时订单都有几个与之关联的操作,每个操作都有一个状态(基本上如果它是null,则它是不完整的,如果它是9那么它就完成了)。 例如:

订购1 - 200 - 钢件

   Op 1      Issue Bar         (null)
   Op 2      Cut bar             9
   Op 3      Deburr Bar        (null)

基本上我想做的是将最后完成的操作放在与订单相同的行上。所以在上面的例子中,最后完成的操作是Op 2(剪切条),因为它是包含9的最新操作号。

我已对其进行设置,因此订单号为组,详细信息为操作。

我已经看过按组使用Maximum(),但我不知道如何在条件为真的语句中做最大值。最大值只是按字母顺序返回最新的一个,我需要它与操作号相关。 我也尝试过抑制结果,但我不知道如何报告抑制结果。

我无法使用精选专家来显示status = 9的操作,因为有些工作没有完成任何操作,而且这些工作也需要出现在报告中。

2 个答案:

答案 0 :(得分:0)

假设操作号始终采用Op#格式,请在详细信息部分创建此公式,然后在组标题中对此公式使用Maximum()摘要。您可以从详细信息中删除此公式

numbervar a := tonumber(split({table.op#}," ")[2]);
numbervar b;
stringvar output;
if {table.finished} = 9 and a > b then 
    (b:= a;
    output := {table.op#} & " " & {table.op_description}
    );
output

答案 1 :(得分:0)

非常感谢您花时间回复并提出答案。 CoSprings你们指出了我正确的方向。

我只是通过显示操作号和&来简化它。 " " &安培;描述如果op的状态是9,否则""。然后我在公式上做了一个最大值()。

我认为在发布之前我必须进行大脑冻结或其他事情。)

再次感谢。

大卫。