Crystal reports 子报表中的变量是否可用于对主报表中的信息进行分组(crystal 10)

Crystal reports 子报表中的变量是否可用于对主报表中的信息进行分组(crystal 10),crystal-reports,subreports,Crystal Reports,Subreports,我已经设置了一个主报告,其中包含两个子报告。 主要报告包括: 一个表:房间和两个参数:开始日期和结束日期。 日期范围仅在主报告中,因此可以显示在标题区域中。更重要的是,它链接到2个子报告 现在,主报告按设施分组,然后按房间名称分组。在我尝试运行一天以上之前,一切都很好。我想要的是主报告也按日期分组,但我不知道这是否可行,因为房间表不包含链接参数的日期字段,因此我可以在分组中使用它 是否可以在子报表中创建一个日期变量,然后将其传递回主报表以用于分组?如果这是一个愚蠢的问题,我很抱歉,但我不经常使用

我已经设置了一个主报告,其中包含两个子报告。
主要报告包括: 一个表:房间和两个参数:开始日期和结束日期。 日期范围仅在主报告中,因此可以显示在标题区域中。更重要的是,它链接到2个子报告

现在,主报告按设施分组,然后按房间名称分组。在我尝试运行一天以上之前,一切都很好。我想要的是主报告也按日期分组,但我不知道这是否可行,因为房间表不包含链接参数的日期字段,因此我可以在分组中使用它


是否可以在子报表中创建一个日期变量,然后将其传递回主报表以用于分组?如果这是一个愚蠢的问题,我很抱歉,但我不经常使用变量,共享变量甚至比其他任何变量都少。

简短回答:不。您永远不能使用子报表中的变量对主报表进行分组。Crystal在评估过程的早期确定报告的组,然后再查看任何子报告


通常,您可能首先要问自己如何避免使用子报表。在我看来,如果没有其他方法可以在单个报表中完成您想要的内容,那么使用子报表是最后的努力。在您的情况下,如果主报表仅由一个表(文件室)组成,则只需将这些表从子报表移动到主报表,然后将它们连接到文件室。这样做将使您可以轻松地对所需的任何字段进行分组。

从技术上讲,您可以将这些值从子报告中获取到主报告中

本简介描述了“共享”范围变量

共享变量(水晶语法)

共享变量使用同一内存块在整个主报表及其所有子报表中存储变量的值。因此,共享变量比全局变量更通用。要使用共享变量,请在主报表的公式中声明它,如下例所示:

共享数为x:=1000

并在子报表中的公式中声明,如下例所示:

共享数x

为了使用共享变量,必须先声明变量并为其赋值,然后才能在主报表和子报表之间传递该变量

共享变量对于跨越主报表和一个或多个子报表的聚合(总和等)非常有用


更多信息可在此处找到:通过搜索“可变范围”

如何将房间表与子报表数据绑定?子报告中是否有房间ID或您正在选择的内容?子报告由参数日期和房间ID链接。这是我最初尝试的方式,但我希望能够显示所有房间,即使房间中没有该日期的应用程序。我最初的计划是从ROOM到PCEDATA执行LOJ,但由于信息是由PCEDATA中的日期字段确定的,Crystal将其视为内部连接。我不认为分组会以这种方式工作,但我宁愿询问并确定,然后假设它不会。。。谢谢你的帮助!啊,我明白了。在这种情况下,如果您离开外部联接室到PCEDATA,然后将{@STARTDATE}中的记录选择公式
isnull({PCEDATA.DATE})或{PCEDATA.DATE}设置为{@ENDDATE]
如果我没记错的话,那是我尝试的第二件事,但当我这么做的时候,它开始吸引数千条记录。那是我去子报表的时候,因为我知道那会起作用。我可以接受它的方式……它已经给了他们比我想象的更多的信息他们…有时得到99%的你想要的比浪费几天或几周继续尝试100%要好。再次感谢你的洞察力:)