iReport;具有相同数据源表达式的两个子报表;评估第一个时,第二个永远不会打印

时间:2019-05-21 22:07:39

标签: ireport subreport

我有一个主报告和两个单独的子报告。

第一个仅用于从子查询中计算一些值,然后我需要在主报告中使用这些值。此子报表1高一个px,位于标题区域内。标题栏中没有其他元素。

第二个放置在页面标题内,所有其他可见元素也放置在页面标题内。该子报表实际上应该打印一些内容,但不向主报表返回任何值。

两个子报表都配置了相同的数据源,因为这是必需的。之所以使用2个单独的子报表,是因为我需要第一个子报表的结果来控制主报表上其他字段的“表达时打印”,并且在打印第二个子报表之前需要它们。

这是与iReports 0.5.6一起使用的,我无法在运行时在同一范围内的主报告中的变量中获得对返回值集的评估。对我而言,唯一可靠的方法是创建一个单独的子报表,并将其放在一个波段中,该波段在我需要数据的波段之前进行评估。


现在的问题是,当我让第一个子报表在“标题”区域中评估的时候(返回值在“主报告”中设置正确,在标题区域中没有打印任何内容,因为没有内容可打印)-但是第二个子报表不再显示在结果渲染中。

当第二个子报表上的表达式不打印时-不在其中的任何字段中。

我可以通过仅将第一个子报表上的表达式设置为false或true时的打印设置来切换此行为。

除了数据源表达式和参数映射表达式之外,我看不到任何类似或可能导致这种非理性行为的东西。


我在此请求的目标是找到一种方法,如何将两个子报告都放在同一个主报告中,并将一个仅用于返回值,另一个用于显示某些值。

主报告的相关部分:

    <title>
        <band height="2" splitType="Stretch">
            <subreport isUsingCache="false">
                <reportElement key="subreport_promotions_Calc" positionType="Float" mode="Opaque" x="0" y="0" width="469" height="1" isRemoveLineWhenBlank="true" isPrintInFirstWholeBand="true" isPrintWhenDetailOverflows="true" forecolor="#000000" backcolor="#FFFFFF" uuid="7b5b61a8-55a8-48e9-a8f1-c6f3108eed70">
                    <printWhenExpression><![CDATA[true]]>    </printWhenExpression>
                </reportElement>
                <parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression>
                <subreportParameter name="text_VAT">
                    <subreportParameterExpression><![CDATA[$V{text_VAT}]]></subreportParameterExpression>
                </subreportParameter>
                <subreportParameter name="currency">
                    <subreportParameterExpression><![CDATA[$V{currency}]]></subreportParameterExpression>
                </subreportParameter>
                <dataSourceExpression><![CDATA[$P{promotionsSubReportData}]]></dataSourceExpression>
                <returnValue subreportVariable="Total_Promotions" toVariable="Total_Promotions"/>
                <returnValue subreportVariable="hasPromotions" toVariable="hasPromotions"/>
                <subreportExpression><![CDATA[$P{reportPath}+"\\0contractAbo_promotions_Calc.jasper"]]>   </subreportExpression>
        </subreport>
        </band>
    </title>

<pageHeader>
    <band height="694">
        <subreport isUsingCache="false">
            <reportElement key="subreport_promotions" positionType="Float" mode="Opaque" x="0" y="475" width="469" height="4" isPrintWhenDetailOverflows="true" forecolor="#000000" backcolor="#FFFFFF" uuid="b8575d48-af92-465d-9848-ded3c010d679"/>
            <parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression>
            <subreportParameter name="text_VAT">
                <subreportParameterExpression><![CDATA[$V{text_VAT}]]></subreportParameterExpression>
            </subreportParameter>
            <subreportParameter name="currency">
                <subreportParameterExpression><![CDATA[$V{currency}]]></subreportParameterExpression>
            </subreportParameter>
            <dataSourceExpression><![CDATA[$P{promotionsSubReportData}]]></dataSourceExpression>
            <subreportExpression><![CDATA[$P{promotionsSubReport}]]></subreportExpression>
        </subreport>
<pageHeader>
    <band height="694">
        <subreport isUsingCache="false">
            <reportElement key="subreport_promotions" positionType="Float" mode="Opaque" x="0" y="475" width="469" height="4" isPrintWhenDetailOverflows="true" forecolor="#000000" backcolor="#FFFFFF" uuid="b8575d48-af92-465d-9848-ded3c010d679"/>
            <parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression>
            <subreportParameter name="text_VAT">
                <subreportParameterExpression><![CDATA[$V{text_VAT}]]></subreportParameterExpression>
            </subreportParameter>
            <subreportParameter name="currency">
                <subreportParameterExpression><![CDATA[$V{currency}]]></subreportParameterExpression>
            </subreportParameter>
            <dataSourceExpression><![CDATA[$P{promotionsSubReportData}]]></dataSourceExpression>
            <subreportExpression><![CDATA[$P{promotionsSubReport}]]></subreportExpression>
        </subreport>
<pageHeader>
    <band height="694">
        <subreport isUsingCache="false">
            <reportElement key="subreport_promotions" positionType="Float" mode="Opaque" x="0" y="475" width="469" height="4" isPrintWhenDetailOverflows="true" forecolor="#000000" backcolor="#FFFFFF" uuid="b8575d48-af92-465d-9848-ded3c010d679"/>
            <parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression>
            <subreportParameter name="text_VAT">
                <subreportParameterExpression><![CDATA[$V{text_VAT}]]></subreportParameterExpression>
            </subreportParameter>
            <subreportParameter name="currency">
                <subreportParameterExpression><![CDATA[$V{currency}]]></subreportParameterExpression>
            </subreportParameter>
            <dataSourceExpression><![CDATA[$P{promotionsSubReportData}]]></dataSourceExpression>
            <subreportExpression><![CDATA[$P{promotionsSubReport}]]></subreportExpression>
        </subreport>

0 个答案:

没有答案