JasperReports: вложенные отчеты не работают с positionType = 'Float' - PullRequest
4 голосов
/ 09 декабря 2008

В этом примере перекрываются суботчеты - что я делаю не так? Второй должен «плавать» ниже первого, а его атрибут «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>

Ответы [ 2 ]

12 голосов
/ 11 декабря 2008

Я получил ответ! (Я тот, кто спросил, другой IP, я думаю) Согласно документации, у плавающего элемента его атрибут y будет игнорироваться. Я понял это буквально, попробовал произвольные значения для y и увидел, что каждый раз, когда элемент помещается в указанную позицию.

Но нет, вам нужно установить y, чтобы расположить элемент прямо под предыдущим, в соответствии с объявленным этим элементом y и высотой , хотя его фактическая высота может быть растянута при заполнении данными. В моем примере кода второй подотчет должен был иметь y = "50".

Кроме того, я вижу, что объявленная высота элемента принимается за минимальную высоту. Если фактический подотчет короче высоты, включающий элемент не будет сокращаться, поэтому было бы неплохо установить минимальную ожидаемую высоту для элементов, которые могут быть растянуты.

2 голосов
/ 05 октября 2012

Вы правы, но вам нужно больше. Вам необходимо удалить поля из вложенных отчетов.

  • Из меню -> Формат -> Удалить поля отчета из меню

  • Формат -> Формат страницы -> Сделать поля 0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...