Jasper reports JasperReports:列表的拉伸行为

Jasper reports JasperReports:列表的拉伸行为,jasper-reports,Jasper Reports,我在报告中使用了列表组件,在列表后面/下面还有更多的报告元素 列表的基础集合可以包含1到50条记录,因此我不知道在报表设计时列表会变得多大,所以我不知道下面这些元素的确切位置 我正在寻找一种方法,使列表像textField一样正确地拉伸,但是isStretchWithOverflow属性仅为textFields定义,而不是为列表定义。 目前,对于较大的列表,该列表与以下报表元素重叠 有人知道列表的预期拉伸行为是什么,或者我如何解决我的问题吗 另外,我已经在网站上交叉张贴了这个问题,但没有答案:(

我在报告中使用了列表组件,在列表后面/下面还有更多的报告元素

列表的基础集合可以包含1到50条记录,因此我不知道在报表设计时列表会变得多大,所以我不知道下面这些元素的确切位置

我正在寻找一种方法,使列表像textField一样正确地拉伸,但是isStretchWithOverflow属性仅为textFields定义,而不是为列表定义。 目前,对于较大的列表,该列表与以下报表元素重叠

有人知道列表的预期拉伸行为是什么,或者我如何解决我的问题吗

另外,我已经在网站上交叉张贴了这个问题,但没有答案:(

下面是一个代码示例:


$F{SpotAirwayRates}
“这是非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长的textFieldExpression”
列表内容之外的静态文本!!文本的位置是关键!!!]>

尝试设置如下示例中的属性:

<detail>
    <band height="20" splitType="Stretch">
        <componentElement>
            <reportElement stretchType="RelativeToTallestObject" x="186" y="0" width="57" height="20"/>
            <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
                <datasetRun subDataset="dataset1">
                    <datasetParameter name="parameter1">
                        <datasetParameterExpression><![CDATA[$F{PRODUCT_ID}]]></datasetParameterExpression>
                    </datasetParameter>
                    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                </datasetRun>
                <jr:listContents height="20" width="57">
                    <textField isStretchWithOverflow="true">
                        <reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="41" height="10"/>
                        <textElement/>
                        <textFieldExpression><![CDATA[String.valueOf($F{POSITIONS_POSITIONNO}).concat("LONG STRING, very long string ")]]></textFieldExpression>
                    </textField>
                </jr:listContents>
            </jr:list>
        </componentElement>
        <textField isStretchWithOverflow="true">
            <reportElement stretchType="RelativeToTallestObject" x="0" y="0" width="100" height="20"/>
            <textElement/>
            <textFieldExpression><![CDATA[$F{PRODUCT_ID}]]></textFieldExpression>
        </textField>
    </band>
</detail>


我已经为
列表
列表中的
文本字段和
外部文本字段设置了
属性,并为
外部文本字段
设置了
isStretchWithOverflow
,请尝试将列表置于后台

<background>
    <band height="842" splitType="Prevent">
        <frame>
            <reportElement uuid="9020735c-7a94-4807-9596-1aabac997a00" x="28" y="492" width="290" height="14"/>
            <componentElement>
                <reportElement uuid="4259289c-8858-4336-a37b-8ad5a7a1ba51" mode="Transparent" x="0" y="0" width="290" height="14"/>
                <jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
                    <datasetRun subDataset="dataset1" uuid="bf8de899-aa0b-43b4-9f4d-1e999524f66d">
                        <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{inclusions})]]></dataSourceExpression>
                    </datasetRun>
                    <jr:listContents height="14" width="290">
                        <textField isStretchWithOverflow="true">
                            <reportElement uuid="f8997d71-b315-4be6-9bdf-c3d0c20d0424" positionType="Float" stretchType="RelativeToTallestObject" x="14" y="3" width="271" height="8" isPrintWhenDetailOverflows="true" forecolor="#4A4A49"/>
                            <textElement>
                                <font fontName="Avenir-Medium" size="11" isBold="false"/>
                                <paragraph lineSpacing="Proportional" lineSpacingSize="1.03"/>
                            </textElement>
                            <textFieldExpression><![CDATA[$F{inclusion}]]></textFieldExpression>
                        </textField>
                    </jr:listContents>
                </jr:list>
            </componentElement>
        </frame>
    </band>


现在,我的工作方式与此类似。在列表中包含的每个文本字段中,我设置了isStretchWithOverflow=“true”。在表后面的元素上,我设置了positionType=“Float”因此,它们根据列表所需的额外空间浮动。我很确定我之前确实尝试过,但可能我做错了什么……Alex的解决方案对我不起作用-我的下一个元素是子报表,将其设置为浮动会使其消失:-(关于如何更好地解决这个问题,有什么想法吗?我所要做的就是将外部文本字段(如下表)设置为使用positionType=“Float”@DaDaDom:也许子报告消失了,因为它不再有足够的空间出现在乐队中?尝试增加乐队高度。最终,我们放弃了使用JR的想法,并将iReport发送给客户,实现了我们自己的设计师,以满足我们的需要