在我的CR中。我有很多子报告。对于我的所有子报表,我在ReportHeaderSection2(报表头b)中创建并插入了组名。在同一个Report Header Section中,我使用Count进行了总结。然后再在ReportFooterSection1(报告页脚a)中显示总计。与其他表相关,我创建了6条显示各种数据的记录。
例如,我选择了一个名为Employeees.MainDetails.EOAsianOrAsianBritish的表,并在ReportHeaderSection2(Report Header b)中插入了组名。
现在,如果没有选择任何内容(例如前端应用程序中的combox,内置C#),CR数据显示的内容就像这样(作为示例种族数据)......
Asian or Asian British < this is just a header title
6
Total 6
我希望CR显示为......
Asian or Asian British
0
Total 0
在Reports Options中,我检查了将Database Database NULL值转换为Default并将其他NULL值转换为Default。这没用。我也试过以下......
我右键单击,对于ReportHeaderSection2(Report Header b)和ReportFooterSection1(Report Footer a)中的Employeees.MainDetails.EOAsianOrAsianBritish,Format Object&gt;格式编辑器菜单出现&gt;选择数字标签&gt;点击Customize&gt; Checked抑制如果零和显示零值为0.这也不起作用?
EDITED FYI
我在Visual Studio 2010中使用CR.Crystal Report Viewer。
如果有人能帮助我,我将不胜感激。
非常感谢
更新1
我右键点击了汇总的Count(CountofEOAsianOrAsianBritish),然后选择了Select Expert&gt;记录&gt;选择等于并输入以下形式......
{Employeees.MainDetails.EOAsianOrAsianBritish} =“0”。这已经激活了6但是如果我尝试在前端输入一些文本值,没有值显示CR?所以我正在研究它。
更新2
在我的Comboox中,我有我输入的集合列表。我故意在开头列出一个空白然后列出了收藏品。 CR可能会选择这个。我想要一个公式,所以CR不计算空白,除非我在汇总的Count中做错了,CountofEOAsianOrAsianBritish
更新3
我尝试了Nick解决方案,但我得到了),是否缺少Visual Studio 2010中的DLL。
更新4
如果我这样做...(不是Isnull({Employeees.MainDetails.EOAsianOrAsianBritish}))那么CR显示输出如下
Asian or Asian British
2
Bangladeshi 1
Indian 1
Pakistani 2
Total: 6
这是不正确的,正确的输出应显示....
Asian or Asian British
Bangladeshi 1
Indian 1
Pakistani 2
Total: 4
所以这告诉我的是CR正在计算comboox中的空白字段。所以我想知道在CR中是否可以做任何事情?还需要修剪,因此当有空白时,行不显示空行。
更新5
我试过......
if isnull({Employeees.MainDetails.EOAsianOrAsianBritish}) then
0 else ({Employeees.MainDetails.EOAsianOrAsianBritish})
这给了我以下错误
“这里需要一个数字”
突出显示Employeees.MainDetails.EOAsianOrAsianBritish 否则声明?在else语句中,不应该公式计算种族然后在页脚中显示总数?
尼克
我得到的输出是
Asian or Asian British
2
Total: 2
什么时候显示......
Asian or Asian British
Indian 1
Pakistani 3
Total: 4
答案 0 :(得分:2)
在你的公式中试试这个:
If(Isnull({Employeees.MainDetails.EOAsianOrAsianBritish}) or ({Employeees.MainDetails.EOAsianOrAsianBritish}) = "") then (
false
)else(
true
);
答案 1 :(得分:1)
这是一个创建包含子报表和子报表分组的报表的解决方案,其中聚合值随后会传递到主报表。
先决条件:让Crystal Reports设计器对您的报表开放,并连接,登录和验证数据源。
您现在有一个空白的子报告准备就绪,接下来我们将开始分组。
我们正在子报告中创建一个指定的组来限制数据量,以便我们没有空行。
现在应创建指定的组,该组将仅过滤子报表中所需的值,并且应将标题添加到组标题中。
您现在应该有两个组,一个包含您的主组标题,另一个包含您的摘要组标题。现在,我们需要压制细节。
这是重要的,否则您将获得一堆不需要的数据。右键单击Detail部分行标题,然后选择&#34; Suppress。&#34;另外,抑制报表页眉和页脚,因为我们不需要它们。
现在,我们将创建我们的汇总字段,例如,我们的计数。
从技术上讲,您的子报告已完成。如果只预览子报告本身,它应该显示正确的聚合数据。
这是可选的,但很多时候,您希望将此值传递给主报告。
Shared NumberVar TotalCount := Sum({EmployeeNum}, {EOAsianOrAsianBritish})
注意:这样做是创建一个共享的NumberVar,然后您可以在主报表中使用它。为了使自己更容易,而不是在:=
之后输入所有内容,您只需在报告字段中滚动摘要字段(例如,在主要组上计数),然后双击它以将其添加到公式中。现在,您可以将总数传递给主报告。需要注意的一些事项是:整个子报告可以在其自身内被抑制,但仍然可以将数字传递给主要报告。但是,如果它在主报告中被抑制,则该数字不会通过。最后,主报告中公式字段的公式为Shared NumberVar TotalCount
,它将为您提供可以使用的数字。
是的,我知道有一些记录选择技术也可用于完成子报告中的数据限制。但是,如果需要,此方法允许您为子报告提供一个或多个组,而不仅仅是报告页眉和页脚。
如果您有任何疑问,请随时提出。我知道这有很多信息要扔给你。