star 发表于 2024-7-2 09:05:30

9.0.103 报表中某些特定条件的记录不能跨页展示如何做到?

例如我手里有一个订单-物品表,同一订单的可能有多个物品,但是不会超过一页显示的数量二十条,允许多个订单展示在一页,但是订单不能跨页,如何能做到?同时也需要尽量节约纸张。
如果报表一页固定显示20条,下面举个详细的例子便于理解我的问题:
A单5个苹果,B单7个梨子,C单10个橘子,D单4个香蕉,E单12个葡萄。
如果不做处理,报表打印时
第一页:A单5个苹果,B单7个梨子,C单8个橘子。
第二页:C单俩个橘子,D单4个香蕉,E单12个葡萄。
这样C单就跨页展示了,不符合需求。

我想的最符合要求的展示是
A单5个苹果,C单10个橘子,D单4个香蕉在一页
B单7个梨子,E单12个葡萄在一页。
这样又能同一订单不跨页,又能最大限度的节约纸张。

Lay.Li 发表于 2024-7-2 09:05:31

您好,这个的话,难点在于如何给已有的订单做分组排序
如果数据源本身是有一个排序字段的话。




我们直接创建一张rdl报表,通过 纸张的高度/表格每一行的高度 = 一张纸最多展示的表格行数。可以控制每页最多展示20行

然后给表格添加一个订单分组,可以设置同一个订单不会展示在不同的页数中。

但是如果没有排序字段的话,报表就会展示为A+B一页 C+D一页 E一页,一共三页。
我们可以给数据源本身添加一个排序字段,将展示顺序固定为A,C,D,B,E这样就可以展示为A+C+D一页,B+E一页了。
不过这个排序的计算的算法,就比较麻烦了,您可以在网上找找相关的算法:'(


页: [1]
查看完整版本: 9.0.103 报表中某些特定条件的记录不能跨页展示如何做到?