【问题标题】:Jaspersoft iReport Can we do subtotals in a list component?Jaspersoft iReport 我们可以在列表组件中进行小计吗?
【发布时间】:2016-05-18 16:51:04
【问题描述】:

我只想知道是否可以在列表组件中进行小计?如果是这样,是否像使用变量并将重置类型设置为“组”并放置表达式?

【问题讨论】:

    标签: jasper-reports ireport


    【解决方案1】:

    List 组件有很多限制(计算、返回值、页眉和页脚……)。 请参阅 ireport-ultimate-guide 中的“13.1.3 列出组件问题”部分。

    尝试使用子报表而不是列表。它更适合对数据子集进行计算

    【讨论】:

    • 非常感谢 sanBez.. 是的,我阅读了该部分,但我只是想确保... :)
    • 列表对于小计来说功能不足(正如 sanBez 所写的那样),但是......对于您的问题,子报表可能过于强大(它们肯定会起作用,但它们会增加复杂性)。表格组件可能刚刚好。
    【解决方案2】:

    是的,这是可能的。

    1. 首先在数据集中创建一个变量,然后打开变量属性,设置计算总和 设置变量表达式要从列表组件中求和的字段(如$F{paidAmount})并保存
    2. 在主报表中创建一个变量 打开报表 XML 源,然后转到列表组件中的位置,并像这样将数据集中的值分配给主变量

      <returnValue fromVariable="sumOfPayment"toVariable="mainSumOfPayment"/>
      

    例子:

    <datasetRun subDataset="CreditorList" uuid="6aebc237-1aa2-47db-9435-8b133cef2b31">
     <dataSourceExpression><![CDATA[$F{invoices}]]></dataSourceExpression>
     <returnValue fromVariable="sumOfPayment" toVariable="mainSumOfPayment"/>               
    </datasetRun>
    
    1. 然后将邮件变量拖到可能的您要显示的总和列表组件字段的列表之外。然后打开变量属性面板,并且必须设置评估时间 - 报告

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      相关资源
      最近更新 更多