注意:重置类型是页面,因为我应该显示每页的总和。
但也无济于事。也许还有另一种方法。(我用的是TIBCO jasper soft Studio 6 . 8 . 0-jasper reports 6 . 8 . 0的可视化设计器。)
数据集返回值没有帮助,因为该值仅在表完成时返回,而不是在每次分页符时返回。
一种(巧妙的)方法是将值容器对象传递给表子数据集,并在表中编写一个表达式,设置对象中的值作为副作用。
例如,您可以使用 AtomicInteger
作为值持有者,请注意,我们不需要原子性,我们只将其用作可变整数。
解决方案看起来像这样:
AtomicInteger
的变量 TableTotal
TableTotal
作为名为 PageTotalHolder
的参数传递给表子数据集PageTotal
的变量(我们希望在页面页脚中显示的值)PageTotal
值设置为PageTotalHolder(并且始终返回true):$P{PageTotalHolder
}.getAndSet($V{PageTotal})
为方便起见,在此处粘贴完整的 JRXML。您可以在Jaspersoft Studio中使用一个空记录运行它。
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.8.0.final using JasperReports Library version 6.8.0-2ed8dfabb690ff337a5797129f2cd92902b0c87b -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Blank_A4_10" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="f750af4c-d61b-4bdb-b537-6d71b6754832">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
<style name="Table_TH" mode="Opaque" backcolor="#F0F8FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table_CH" mode="Opaque" backcolor="#BFE1FF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<style name="Table_TD" mode="Opaque" backcolor="#FFFFFF">
<box>
<pen lineWidth="0.5" lineColor="#000000"/>
</box>
</style>
<subDataset name="Dataset1" uuid="8668793a-f800-4489-9589-c9b6d2ee97a0">
<parameter name="PageTotalHolder" class="java.util.concurrent.atomic.AtomicInteger"/>
<variable name="Value" class="java.lang.Integer">
<variableExpression><![CDATA[(int) (10 + 10 * Math.sin($V{REPORT_COUNT}))]]></variableExpression>
</variable>
<variable name="PageTotal" class="java.lang.Integer" resetType="Page" calculation="Sum">
<variableExpression><![CDATA[$V{Value}]]></variableExpression>
</variable>
</subDataset>
<variable name="TableTotal" class="java.util.concurrent.atomic.AtomicInteger" calculation="System">
<initialValueExpression><![CDATA[new java.util.concurrent.atomic.AtomicInteger()]]></initialValueExpression>
</variable>
<detail>
<band height="203" splitType="Stretch">
<componentElement>
<reportElement x="0" y="0" width="200" height="200" uuid="657ddbb8-e98b-43de-be5e-10645069dc44"/>
<jr:table xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd">
<datasetRun subDataset="Dataset1" uuid="2eb1dde6-8cf9-45c1-94ce-0bdcb26e120a">
<datasetParameter name="PageTotalHolder">
<datasetParameterExpression><![CDATA[$V{TableTotal}]]></datasetParameterExpression>
</datasetParameter>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource(200)]]></dataSourceExpression>
</datasetRun>
<jr:column width="120" uuid="51f2b0c5-0655-4cc3-8d57-75149a7514f6">
<property name="com.jaspersoft.studio.components.table.model.column.name" value="Column1"/>
<jr:columnHeader style="Table_CH" height="30"/>
<jr:columnFooter style="Table_CH" height="30">
<textField>
<reportElement x="0" y="0" width="120" height="30" uuid="95a0ff6d-cab6-44df-9aa0-3e41774194e2">
<printWhenExpression><![CDATA[$P{PageTotalHolder}.getAndSet($V{PageTotal}) >= Integer.MIN_VALUE]]></printWhenExpression>
</reportElement>
<textElement textAlignment="Right"/>
<textFieldExpression><![CDATA[$V{PageTotal}]]></textFieldExpression>
</textField>
</jr:columnFooter>
<jr:detailCell style="Table_TD" height="30">
<textField>
<reportElement x="0" y="0" width="120" height="30" uuid="c3ee39f0-59fd-47a3-8cba-90f009dc42ca"/>
<textElement textAlignment="Right"/>
<textFieldExpression><![CDATA[$V{Value}]]></textFieldExpression>
</textField>
</jr:detailCell>
</jr:column>
</jr:table>
</componentElement>
</band>
</detail>
<pageFooter>
<band height="54" splitType="Stretch">
<textField>
<reportElement x="200" y="0" width="100" height="30" uuid="eb1905ee-50d5-4601-b8ed-62864e6caea5"/>
<textFieldExpression><![CDATA[$V{TableTotal}.get()]]></textFieldExpression>
</textField>
</band>
</pageFooter>
</jasperReport>
诸如此类。 我尝试使用iReport将“组页脚”频段中的最大化频段高度属性设置为true,但当我尝试查看时,会添加一些空页。
问题内容: 让 假设我要对列表中每个列表的索引元素求和,例如在矩阵列中添加数字以获得单个列表。我假设数据中的所有列表的长度均相等。 如何遍历列表列表而不会出现索引超出范围错误?也许lambda?谢谢! 问题答案: 您可以尝试以下方法: 这里使用的组合和解压的列表,然后根据自己的索引压缩的项目。然后,您可以使用列表推导来遍历相似索引的组,对其进行求和并返回其“原始”位置。 为了更清楚一点,下面是迭代
我有一个7x12的2d数组。我一直在研究如何获得它的每一列和每一行的总和,并将每个结果放入列表中,一个是每列总和的结果,另一个是每个行的结果。 因此,对于列,我想将每列的结果保存在一个临时整数变量中,在每一行中使用“a”进行迭代,当“a”等于12(即行数)时,然后检查“p”(即列数)是否等于7并退出循环(这意味着每列的总和已添加到新数组中),如果不是这样,则临时变量将被添加到新数组中,临时变量和“
问题内容: 在SQL表中如何乘以从SQL表中获取的数字数组 如下表所示 编码 如何获得货币列仅分隔行并与给定数相乘并存储到数组中返回 问题答案: 假设是一个mySQLi连接。 此代码用于将钱乘以一个数字。 这段代码是将所有资金存储在array中。 希望对您有所帮助。
问题内容: 我有这种格式的json数组: 现在,我想解析并以表格格式在Javascript或jQuery中显示它。该表有四列,每一列指示此数组中每个元素的每个属性。该表的第一行是这四个键的名称。其他行是这些键的值。 我不知道如何编写JavaScript代码来实现此功能。你能帮我吗? 问题答案: 演示
我不知道此选项需要哪些设置。