【问题标题】:JasperReports: subreports not working with positionType='Float'JasperReports:子报表不使用 positionType='Float'
【发布时间】:2022-03-23 21:10:07
【问题描述】:

此示例中的子报表重叠——我做错了什么?第二个应该“浮动”在第一个之下,它的 'y' 属性被忽略,但事实并非如此。

谢谢!!

<?xml version="1.0" encoding="UTF-8"?>
<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="report name" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20">
    <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
        <defaultValueExpression><![CDATA["C:\\reportFolder\\"]]></defaultValueExpression>
    </parameter>
    <background>
        <band/>
    </background>
    <detail>
        <band height="200">
            <subreport>
                <reportElement positionType="FixRelativeToTop" x="19" y="0" width="200" height="50"/>
                <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource()]]></dataSourceExpression>
                <subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "report1.jasper"]]></subreportExpression>
            </subreport>
            <subreport>
                <reportElement positionType="Float" mode="Transparent" x="19" y="20" width="200" height="50" backcolor="#FFFF66"/>
                <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.JREmptyDataSource()]]></dataSourceExpression>
                <subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "report1.jasper"]]></subreportExpression>
            </subreport>
        </band>
    </detail>
</jasperReport>

【问题讨论】:

    标签: jasper-reports


    【解决方案1】:

    我得到了答案! (我是那个问的,我猜是不同的IP) 根据文档,浮动元素的 y 属性将被忽略。我从字面上理解了这一点,尝试了 y 的任意值,并看到每次将元素放置在指定位置。

    但是不,您需要设置 y 以将元素定位在前一个元素的正下方,根据该元素声明的 y 和高度,即使它的实际高度在填充数据时可能会被拉伸。在我的示例代码中,第二个子报表应该有 y="50"。

    此外,我看到元素的声明高度被视为最小高度。如果实际子报表短于高度,则封闭元素不会缩小,因此最好为可以拉伸的元素设置最小预期高度。

    【讨论】:

      【解决方案2】:

      你是对的,但你需要更多。您需要从子报表中删除边距。

      • 从菜单 -> 格式 -> 从菜单中删除报表边距

      • 格式 -> 页面格式 -> 将页边距设为 0

      【讨论】:

        【解决方案3】:

        将位置类型设置为“浮动”并将拉伸类型设置为“无拉伸”

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-10-14
          • 2013-11-11
          • 2011-05-18
          • 1970-01-01
          • 2011-01-09
          • 1970-01-01
          • 2013-09-10
          相关资源
          最近更新 更多