Crystal reports 一份报告中的前10名和后10名

Crystal reports 一份报告中的前10名和后10名,crystal-reports,Crystal Reports,我希望在一个报告中同时包含前10个和下10个数据记录。我已经开始通过添加组和组排序来获得前10名。但是如何插入第二个组,使buttom 10的值如下所示: Top 10: Group1 Value1 Group1 Value2 Group1 Value3 .. Group1 Value 10 Buttom 10: Group1 Value1 Group1 Value2 Group1 Value3 .. Group1 Value 10 非常感谢您因为您已经成功地显示了前10条记录,那么您所

我希望在一个报告中同时包含前10个和下10个数据记录。我已经开始通过添加组和组排序来获得前10名。但是如何插入第二个组,使buttom 10的值如下所示:

Top 10:
Group1 Value1
Group1 Value2
Group1 Value3
..
Group1 Value 10


Buttom 10:

Group1 Value1
Group1 Value2
Group1 Value3
..
Group1 Value 10

非常感谢您

因为您已经成功地显示了前10条记录,那么您所需要做的就是显示底部的10条记录。为此,请执行以下步骤

  • 在报表页脚或页脚中创建子报表(重要的是,如果将其放在报表页脚上,则必须在该部分的“section expert”中选中“在页面底部打印”)
  • 在database expert的子报表中添加与主报表相同的数据源,但只需按其他方式排序(降序)
两个报表(主报表和子报表)的设计应该是相同的(只有排序是其他的),但是对于以单独的方式迭代两次,您需要使用子报表,因为没有其他方法可以这样做

如果你还需要帮助,尽管问吧。这只是解决您的问题的一点指导

希望有帮助。

尝试以下解决方案:

创建数组并存储值,然后显示

详细填写以下公式并存储数据:

Shared Numbervar array intarr;

intarr:=intarr+Databasefield;
databasefield
将下面的公式放在组页脚中:

Shared Numbervar array intarr;
Shared Stringvar array firstten;
Shared Stringvar array lastten;
Local Numbervar i;

for i:=1 to 10 do
(

firstten:=firstten+ToText(intarr[i]);
);

for i:=(UBound(intarr)-10) to UBound(intarr) do
(
lastten:=lastten+ToText(intarr[i]);
);

Join(firstten,",")&"-------------"&Join(lastten,",");
//firstten具有前十个值

//lastten具有lastten值


//根据需要使用和显示

在第一个组的页脚后插入第二个组如何在cr13中执行此操作?当我按下下面的insert section时,只有两个页脚?你可以使用ArrayS来做。你有这样的例子吗?pls@Simon检查我的答案谢谢你的回答。由于性能问题,无法使用子报表。。。还有其他解决办法吗?数据基于bw查询-因此,使用您的解决方案,查询将执行2次-对吗?如果无法使用子报表,则您应该修改数据源中总共有20条记录的数据,前10条记录得到1列值
top
,最后10条记录得到了列值
bottom
,您在报告中对该列进行分组。所以,要么在生成报告之前准备好数据,要么使用子报告。首先,在问题中定义可以做什么和不能做什么。在所有允许你做的事情之后,我可能会为你提供解决方案。我能做什么和不能做什么都很简单:没有子报表,也没有查询修改:)好吧,下次在要求解决方案之前写下有问题的信息