基于水晶报表中的运行总字段对组进行排序

时间:2016-07-10 22:30:07

标签: crystal-reports crystal-reports-2008 crystal-reports-2010

我的报告旨在显示给定商店中给定商品的净销售额和购买额。报告有2组,第一组在商店,第二组在商品上,它看起来像下面的例子:

商店:store_name [Group Header]
项目:item_name [组头]

[数量] [DocNum] [DocType] [详细]
[500] [8] [S]
[200] [3] [P]

总销售额500 [组页脚]
总购买量200

[组页脚]

总计字段是运行总计字段,而不是摘要字段。我所需要的只是根据较高的销售额或购买金额对商店组内的商品进行排序,这种排序将通过布尔参数值表示的排序选项来完成。如果参数值为false,则销售额较高的项目将首先按顺序排列,然后是金额等的下一项目。如果参数值为true,则具有较高购买金额的项目将首先按顺序排列,然后是下一项目不幸的是,我不能使用报告菜单下的组排序选项,因为我没有基于组的摘要,因此组排序选项被禁用,即使它不是,它将根据不在的摘要字段排序运行总字段。有没有人知道如何实现这样的排序?!!!

我尝试过:

我尝试使用order by子句通过数据库实现结果,但是无法按预期正常工作

3 个答案:

答案 0 :(得分:0)

如何实现这一目标有两种方法:

  • 更简单的是制作2份不同的报告,具体取决于此 布尔值调用不同的报告。不是最好的解决方案因为 报告的每一次更改都必须改变它们等......
  • "更好的方式"要在调用报表之前对数据进行排序,因此当您在报表中使用分组时,您可以使用选项"按原始顺序对#34;进行分组。 (下图)。您的数据将按照您在调用报告之前对其进行排序的方式进行排序,并且对于这两种情况仅使用1个报告。

enter image description here

这样做对你来说更容易,两种方式都有效,但需要的方法与现在不同。有可能采用第三种方式加下划线的逻辑和许多if-then-else逻辑,但你需要很多条件,有时候你可能会很乱。

希望它可以帮到你

答案 1 :(得分:0)

而不是操纵运行总计..​​操纵数量部分,以便在数量改变时运行总计将自动更改。

尝试以下方法并告诉我。

使用Quantity再插入一个组(在您的情况下是第3组)并详细记录数量并写下您的总计。

现在,对于第3组,转到change group并选择使用Formula as group sort order

选项

打开公式窗口时,请写下代码。

if paramter="false"
then crDescendingOrder
else crAscendingOrder

让我知道它是怎么回事。

答案 2 :(得分:0)

首先感谢每个人都试图帮助或给我一个想法:)。最后,我必须通过向其发送一个附加参数来指定sort选项,从而对存储过程进行更改。我通过将我的选择放在一个公用表表达式中然后从表中选择按商店和项目分组的净销售和净购买,然后根据参数值我选择净销售字段或净购买字段进行订购和在报告中我选择了订单选项作为原始订单。它工作正常,我从一开始就知道这个解决方案,但我不想直接转向它作为避免查询执行速度慢的第一个解决方案。