1

我一直在寻找答案,所以我希望我能在这里对这个话题有所了解。我已经很久没有使用水晶报表了,所以我将尽可能详细地提供。

我正在使用 VB.net (2005) 生成水晶报告。水晶报表使用了我在数据库中创建的视图。我可以正确访问所有数据并显示值。

我的报告中有一个按标识符字段分组的组。我还有一个名为“通过”的布尔字段,它是真或假,反映具有给定标识符的板是通过还是未通过测试。

例如,假设一个带有标识符的板:xxxxxx有 6 条记录,3 条真和 3 条假(意味着它通过了 3 次,失败了 3 次)。我被要求在组标题中提供电路板测试历史的总和,详细说明它通过和失败的测试次数。

  • 我已经考虑保留一个运行总计,但这将是不正确的,因为只有在评估记录后才能正确显示运行总计(在打印标题之前不会对记录进行评估)。
  • 我尝试使用共享或全局变量的路径,变量在详细信息部分递增,在组页脚中重置,并显示在组标题中。这可能会产生正确的值,但在下一组的开头打印它们,而不是当前组。
  • 我也尝试使用 Count 表达式,但我找不到任何关于如何以我需要的方式使其有条件的信息。
  • 我可以在子报告中做到这一点,但我认为有更好的方法。

有没有人有任何想法或至少暗示我可以在不使用子报告的情况下实现这一目标?

4

2 回答 2

0

在详细信息部分添加一个公式,在该公式中定义共享变量。将传递标识符的计数分配给一个共享变量,将失败的标识符分配给另一个共享变量。

在组标题中添加两个公式(一个代表通过,另一个代表失败)并放在下面的代码

shared numbervar num;

num;

请注意,这里的 num 是一个示例共享变量名称。您必须将其替换为详细部分中提到的共享变量名称。

在组页脚中添加另外两个公式并将共享变量值设置为 0。

我希望这有帮助。

于 2013-09-24T07:19:00.650 回答
0

对于某些标识符,您有 6 条记录中有 6 条通过,3 条失败,现在您想在标题上显示记录数。Below solution will satisfy this problem.

创建公式

`If <Field=false>
then 1
else 0`

现在将此条件放在详细信息部分并获取值的总和,类似地执行相同操作true并将其放置在详细信息部分。

Now you have the counts saperately for both true and false

现在创建另一个公式并粘贴以下代码并将其放在组标题部分。

EvaluateAfter({above created forumla});

Sum ({above created formula}, {ORDERDETAIL.DATEE})

执行相同的操作true并将其放在组头中。

现在您可以在组标题中进行计数

于 2013-09-25T05:00:04.633 回答