【发布时间】:2014-11-24 11:42:33
【问题描述】:
我需要在 iReport 中找到一个字段的计数。例如,我需要创建一个名为“CallCount”的变量,其中包含“CallType”字段的计数。所以我需要使用 Piechart 的 Category 部分中的“CallType”字段和“CallCount”变量作为度量。因此,该饼图将显示调用类型及其调用计数。请帮我解决这个问题......
【问题讨论】:
我需要在 iReport 中找到一个字段的计数。例如,我需要创建一个名为“CallCount”的变量,其中包含“CallType”字段的计数。所以我需要使用 Piechart 的 Category 部分中的“CallType”字段和“CallCount”变量作为度量。因此,该饼图将显示调用类型及其调用计数。请帮我解决这个问题......
【问题讨论】:
如果使用社区图表 (JFreeCharts),您可以这样做。
您需要向报告中添加一个组。右键单击报告检查器窗口中的根对象。单击“添加报告组”。然后添加一个包含您感兴趣的字段的组。您不必添加页眉/页脚带。
这也会为您创建变量。它应该被命名为“GROUP_NAME_GROUP_COUNT”
将新图表拖到摘要带上。 (我相信它必须在一个总结带中,尽管我可能是错的)。将唯一标识符(键表达式)设置为“$F{CallType}”,将数值(值表达式)设置为“$V{GROUP_NAME_GROUP_COUNT}”)
如果这不起作用,请尝试手动创建变量。添加一个变量,将其命名为“CallCount”。将类设置为“java.lang.Integer”,将计算设置为“Count”,并将类型重置为“Group”。重置组应与您之前创建的组匹配。变量表达式应该是您感兴趣的字段。在本例中为“CallType”。将数值设置为'CallType'
【讨论】:
使用子数据集创建饼图:
什么是子数据集?
报告生成基于单个数据源,例如查询、JavaBean 集合或 XML 文件。对于图表或交叉表,这可能还不够,或者使用特定查询或通常使用另一个数据集检索数据可能更容易。同样,您可以使用子数据集来提供嵌套在报表中的辅助记录(使用新数据源或什至用于填充主报表的相同连接执行附加查询)。目前,您可以使用子数据集来填充 Chart、Crosstab 和 List 元素,但开发人员可以通过创建自定义组件以其他方式使用它。
您可以在报告中拥有任意数量的子数据集。每个都有自己的字段、变量和参数,并且可以根据需要执行查询。数据集记录可以分组为一个或多个组(如在主报表中);这些组用于子数据集变量。
子数据集通过数据集运行链接到其元素。数据集运行指定子数据集检索和过滤数据以及处理用于填充元素的行所需的所有信息。
使用子数据集创建报表的步骤:
添加一个新的子数据集。
转到报告检查器->右键单击文档->添加->子 数据集。
会出现如下窗口。
为子数据集命名。
iReport 允许您从查询对话框编辑子数据集的查询、排序和过滤选项。查询对话框可用于自动注册子数据集中的字段,方式与主报表相同(即从 SQL 查询中获取字段)。
在数据集的上下文中,组仅用于对记录进行分组,并且报表中没有与它们相关联的离散部分(例如,与组关联的页眉和页脚区域)。首先,数据集组与变量计算结合使用。
现在我们的子数据集已创建。
我们需要用我们的饼图来映射它。
Select the pie chart and Right click on it.
右键->图表属性->图表数据
首先,您从主报表发送的所有参数都必须在子数据集中声明(并且类型相同)。 选择您的图表或表格并转到其数据集栏,您将找到数据集运行、参数和参数映射。选择参数就可以了。
现在为此添加一个参数到列表中,您需要在表达式编辑中打开参数选项并从中选择您在子数据集中创建的参数,其名称与主报告输入的参数名称相同。 现在您必须再次为此提及参数的表达式转到参数选项并选择您在子数据集中创建的参数,其名称与主报告输入的参数名称相同。
现在在同一窗口的详细信息部分,添加键表达式、值表达式和标签表达式(可选)。
就是这样。 现在运行报告。
【讨论】: