我在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的操作,因为有些工作没有完成任何操作,而且这些工作也需要出现在报告中。
答案 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,否则""。然后我在公式上做了一个最大值()。
我认为在发布之前我必须进行大脑冻结或其他事情。)
再次感谢。
大卫。