Jasper reports 返回除最后一页以外的空值的子报表

Jasper reports 返回除最后一页以外的空值的子报表,jasper-reports,ireport,Jasper Reports,Ireport,我对iReport使用子报表有问题,我使用的是XML源 XML源 1. 信息 ... ... ... ... ... ... ... 问题描述 我的主报告正在节点上迭代。 子报表(在主报表中)正在节点上迭代,在“详细信息部分”的底部有一个分页符。 (如果在每个节点上迭代,子报告中会有一个子报告,但它在我的问题中并不重要) 我需要做的是,在主报告的“页脚”部分,显示节点的值 我所做的 我在每个报告中添加了1个名为“numPage”的变量,它们都是java.lang.String 我的子报表中

我对iReport使用子报表有问题,我使用的是XML源

XML源

1.
信息
...
...
...
...
...
...
...
问题描述 我的主报告正在节点上迭代。
子报表(在主报表中)正在节点上迭代,在“详细信息部分”的底部有一个分页符。
(如果在每个<剂量计>节点上迭代,子报告中会有一个子报告,但它在我的问题中并不重要)

我需要做的是,在主报告的“页脚”部分,显示节点的值

我所做的 我在每个报告中添加了1个名为“numPage”的变量,它们都是java.lang.String

  • 我的子报表中的一个包含“变量表达式”$F{numpage}

  • 主报表上的报表通过“返回值”属性中的子报表链接到第一个报表

我得到了什么 我的主报告在我的节点上进行了很好的迭代
我的子报表正在我的节点上很好地迭代
如果我在子报表中打印$F{numpage}字段,我可以看到它。
如果我在子报表中打印变量$V{numPage},我可以看到它

但是如果我在我的主报告中打印变量$V{numPage},我只能在最后一次“节点迭代中看到它的值,否则我会得到一个漂亮而平滑的“null”

我不知道该怎么办。。。我试着玩变量的“重置类型”,玩文本字段的“评估时间”。 但是每一次尝试都是无效的

再见 我希望我能很好地解释我的问题,我不是一个以英语为母语的人,所以我为糟糕的英语道歉。。。我的英语不好。。。我应该感到很难过

非常感谢你的帮助


尼古拉斯

你是在试图获得页码吗?如果是,您只需从主报告页脚的iReport调色板中删除页码字段。

我知道有人问过这个问题,但我也有类似的问题。我试图获取各种子报告的返回值,以便更新页脚中的“引用”

我相信这是因为子报告中的“返回值”只有在整个子报告完成后才返回,因此在此之前变量不可用

我还没有找到解决这个问题的方法,并且已经尝试过重置类型、计算类型和计算时间

编辑我发现解决这个问题的唯一方法是创建一个自定义scriptlet。您可以将scriptlet传递给子报表。类的同一实例传递给子报表,因此您可以在构建模板的过程中随时设置和检索值


为了在scriptlet中调用一个方法,我在子报表中定义了一个变量,并在表达式中执行了类似于
$p{scriptlet}.setString(“foo”)
的操作。setString方法必须返回一个字符串,以便可以设置变量,然后可以调用主报表
$P{report\u SCRIPTLET}.getString()中的另一个方法来随时获取值。

不,我需要xml源中字段的值。(我没有提到还有其他字段,其他变量,比如节点,我不知道为什么,以及它们之间的关系是什么,但是你的评论让我想:“天哪,也许我可以把页脚放在子报表中,而不是主报表中。”这解决了问题,thx;)
<bordereaux>
    <bordereau>
        <pages>
            <page>
                <numpage>1</numpage>
                <dosimetres>
                    <dosimetre>
                        <information>information</information>
                    </dosimetre>
                    <dosimetre>
                        ...
                    </dosimetre>
                    <dosimetre>
                        ...
                    </dosimetre>
                </dosimetres>
            </page>
            <page>
                ...
            </page>
            <page>
                ...
            </page>
            <page>
                ...
            </page>
        </pages>
    </bordereau>
    <bordereau>
        ...
    </bordereau>
    <bordereau>
        ...
    </bordereau>
<bordereaux>