子报表中的变量在主报表上始终为null

时间:2017-05-03 15:36:27

标签: jasper-reports subreport

子报表:

<variable name="rota" class="java.lang.String" resetType="None"/>
<title>
    <band height="41">
        <textField isBlankWhenNull="false">
            <reportElement x="0" y="6" width="100" height="30" uuid="e7e71af8-3694-4255-9b94-0587f377f7d4"/>
            <textElement markup="html">
                <font size="18"/>
            </textElement>
            <textFieldExpression><![CDATA[$V{rota}]]></textFieldExpression>
        </textField>
    </band>
</title>
<detail>
    <band height="282">
        <printWhenExpression><![CDATA[$V{REPORT_COUNT} == 1]]></printWhenExpression>
        <subreport>
            <reportElement x="-10" y="0" width="560" height="200" isPrintInFirstWholeBand="true" uuid="4bd58f02-975c-430f-87ad-41a55bd422ea">
                <printWhenExpression><![CDATA[$V{PAGE_COUNT} == 1]]></printWhenExpression>
            </reportElement>
            <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
            <returnValue subreportVariable="rota" toVariable="rota"/>
            <subreportExpression><![CDATA["C:/Users/Pedro Fernandes/JaspersoftWorkspace/MyReports/ticketspartidasubreport.jasper"]]></subreportExpression>
        </subreport>
    </band>
</detail>

主要报告:

import collections


lt = [ (1,2) , (2,3) , (2,3) , (4,5) , (1,2)]

counter = collections.Counter()
counter.update(lt)
print(dict(counter))

主报表上的变量$ F {rota}始终为NULL。我知道这个主题已经发布,但没有一个解决方案适合我。 有人能帮我吗? THKS!

2 个答案:

答案 0 :(得分:0)

您的问题似乎是子报表出现在打印变量$ V {r​​ota}下方的一个带上。在子报表返回值之前,不会检索变量,因此您必须在子报表元素之后的某个波段上打印/使用该变量。尝试切换乐队的顺序。希望这有帮助

答案 1 :(得分:0)

问题是我想在最后使用的变量必须具有计算类型 SYSTEM 。这样做,问题就解决了。