【问题标题】:Need to create count variable in iReport需要在 iReport 中创建计数变量
【发布时间】:2014-11-24 11:42:33
【问题描述】:

我需要在 iReport 中找到一个字段的计数。例如,我需要创建一个名为“CallCount”的变量,其中包含“CallType”字段的计数。所以我需要使用 Piechart 的 Category 部分中的“CallType”字段和“CallCount”变量作为度量。因此,该饼图将显示调用类型及其调用计数。请帮我解决这个问题......

【问题讨论】:

    标签: jasper-reports pie-chart


    【解决方案1】:

    如果使用社区图表 (JFreeCharts),您可以这样做。

    您需要向报告中添加一个组。右键单击报告检查器窗口中的根对象。单击“添加报告组”。然后添加一个包含您感兴趣的字段的组。您不必添加页眉/页脚带。

    这也会为您创建变量。它应该被命名为“GROUP_NAME_GROUP_COUNT”

    将新图表拖到摘要带上。 (我相信它必须在一个总结带中,尽管我可能是错的)。将唯一标识符(键表达式)设置为“$F{CallType}”,将数值(值表达式)设置为“$V{GROUP_NAME_GROUP_COUNT}”)

    如果这不起作用,请尝试手动创建变量。添加一个变量,将其命名为“CallCount”。将类设置为“java.lang.Integer”,将计算设置为“Count”,并将类型重置为“Group”。重置组应与您之前创建的组匹配。变量表达式应该是您感兴趣的字段。在本例中为“CallType”。将数值设置为'CallType'

    【讨论】:

    • 嗨史蒂文,感谢您的回复..我尝试使用您提供的上述建议。但是饼图给出了 calltypes 的计数位置。我需要该 calltype 的记录数。示例我有一个名为“fire”的调用类型。我需要数据库中称为“fire”的调用类型记录数。我正在使用域数据集使用 iReports 创建报告。请帮我解决这个问题
    • 你是对的。我忘记添加组了。添加组实际上使这更容易。检查更新的答案。
    • 嗨史蒂文,再次感谢您的回复。我尝试使用您提供的更新答案。但是我无法得到我想要的...我已经使用 Calltype 字段创建了组,并且我已经使用您提到的组创建了变量“CallCount”,并且我在饼图的类别部分中使用了“CallType”字段而不是我创建的“CallType”组。而且我在饼图的值表达式中使用了“CallCount”变量。当我运行报告时,我得到所有 CallTypes 将 callCount 值显示为 1。这不是我想要的。请帮助我。等待您宝贵的cmets。
    • 嗨史蒂文,当我使用 html5 图表时,我们在饼图的数据轴中有计算类型选项。当我为 calltype 字段提供计数选项时,我得到了我预期的 callcount。但是我需要使用变量来获得相同的输出,因为我将使用变量来实现其他一些功能。请帮帮我.....
    • 您是否尝试过使用自动创建的变量?
    【解决方案2】:

    使用子数据集创建饼图:

    什么是子数据集?

    报告生成基于单个数据源,例如查询、JavaBean 集合或 XML 文件。对于图表或交叉表,这可能还不够,或者使用特定查询或通常使用另一个数据集检索数据可能更容易。同样,您可以使用子数据集来提供嵌套在报表中的辅助记录(使用新数据源或什至用于填充主报表的相同连接执行附加查询)。目前,您可以使用子数据集来填充 Chart、Crosstab 和 List 元素,但开发人员可以通过创建自定义组件以其他方式使用它。

    您可以在报告中拥有任意数量的子数据集。每个都有自己的字段、变量和参数,并且可以根据需要执行查询。数据集记录可以分组为一个或多个组(如在主报表中);这些组用于子数据集变量。

    子数据集通过数据集运行链接到其元素。数据集运行指定子数据集检索和过滤数据以及处理用于填充元素的行所需的所有信息。

    使用子数据集创建报表的步骤:

    • 创建 ireport。
    • 添加一个新的子数据集。

         

    • 转到报告检查器->右键单击文档->添加->子 数据集。

         会出现如下窗口。

    • 为子数据集命名。

    iReport 允许您从查询对话框编辑子数据集的查询、排序和过滤选项。查询对话框可用于自动注册子数据集中的字段,方式与主报表相同(即从 SQL 查询中获取字段)。

    • 点击查询并添加查询。

    在数据集的上下文中,组仅用于对记录进行分组,并且报表中没有与它们相关联的离散部分(例如,与组关联的页眉和页脚区域)。首先,数据集组与变量计算结合使用。

    现在我们的子数据集已创建。

    我们需要用我们的饼图来映射它。

    Select the pie chart and Right click on it.
    

    右键->图表属性->图表数据

    首先,您从主报表发送的所有参数都必须在子数据集中声明(并且类型相同)。 选择您的图表或表格并转到其数据集栏,您将找到数据集运行、参数和参数映射。选择参数就可以了。

    现在为此添加一个参数到列表中,您需要在表达式编辑中打开参数选项并从中选择您在子数据集中创建的参数,其名称与主报告输入的参数名称相同。 现在您必须再次为此提及参数的表达式转到参数选项并选择您在子数据集中创建的参数,其名称与主报告输入的参数名称相同。

    现在在同一窗口的详细信息部分,添加键表达式、值表达式和标签表达式(可选)。

    就是这样。 现在运行报告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      • 2015-04-02
      • 2013-01-05
      • 1970-01-01
      • 2012-07-12
      • 1970-01-01
      相关资源
      最近更新 更多