在组页脚中,如何为 Crystal 报告中的记录获取交替背景色

In a group footer, how to get alternating background colour for records in Crystal Reports

这与此 question 有关,但我想要组页脚中的交替背景色。我的子报表的详细信息部分被隐藏了,分组在最后给出了总计。

所以,我隐藏的细节是这样的(除了我有十几种类型而不是两种):

TypeA  100
TypeA   50
TypeB   50
TypeB   30
TypeB   20
Typec  150

我的组页脚有漂亮的总数

TypeA  150
TypeB  100
TypeC  150

我想要在组页脚中打开和关闭颜色。如果我在细节中,我会在该部分的颜色中使用公式:

IF RecordNumber MOD 2 = 1 THEN
   crNoColor
ELSE
   Color (234,234,234);

但是如果我在组页脚中这样做,RecordNumber 可能连续出现几次,然后是奇数,所以我会得到几行白色,然后是灰色的,然后是几行白色。

我一直在尝试创建一个变量,该变量在第一条记录上设置为 1,并在每次组更改时每次递增 1。然后我可以在颜色部分像 RecordNumber 一样对待它。到目前为止,我已经成功地制作了一个根本不会改变的变量,更不用说让任何东西在颜色选项卡中工作了。

使组页脚记录具有交替背景色的好方法是什么?

我认为您正在重置变量,因此它不会改变。请不要按照以下过程重置它。

在组页脚中创建一个公式@counter 并写下代码

Shared NumberVar counter;

counter:=counter+1 

现在在组页脚的专家部分转到颜色选项卡并编写以下代码:

shared numbervar counter;

if counter mod 2=0
then crMaroon
else crBlue

还有一个系统变量 - GroupNumber。如果你有简单的聚合方案,而不是嵌套组,那么这个数字可以像你使用的那样使用 RecordNumber.

创建一个运行总示例#shade #shade screenshot

将此 运行 总数放入您希望在报告中显示的 GroupFooter 中(您应该有一个不同的记录来计算)现在它应该有一个 1-through 但是您的 GF 中有很多记录,那么这个可以压制。 接下来创建一个名为 EvenOdd 的公式,并使用此公式:

If remainder({#shade},2) = 0 then "Even" else "odd"

将那个公式放到你的 GF 上并隐藏。

接下来去你的 selection expert,选择你的 GF,然后 Color 选项卡,select x-2 并使用这个公式:

If {@EvenOdd}= "Even" then crWhite else crSilver

这将每隔一行显示您的 GF,先是银色,然后是白色。 您可以选择多种配色方案

我这样做是因为有时您可能希望隐藏报告的详细信息并只显示一个组。希望这有帮助