JasperReports: sub-relatórios não trabalhar com positionType = 'Float'

votos
4

Sub-relatórios sobrepõem neste exemplo - o que estou fazendo de errado? O segundo é suposto float abaixo do primeiro, com seu atributo 'y' ser ignorado, mas não é.

Obrigado !!

<?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>
Publicado 09/12/2008 em 20:28
fonte usuário
Em outras línguas...                            


2 respostas

votos
12

Eu tenho a resposta! (Eu sou o único que pediu, IP diferente, eu acho) De acordo com a documentação, o elemento flutuante teria seu atributo y ignorado. I tinha que literalmente, tentou valores arbitrários para y e viu que cada vez que o elemento foi colocado na posição especificada.

Mas não, você precisa definir y para posicionar o elemento logo abaixo do anterior, de acordo com aquele elemento da declarou y e altura , apesar de sua altura real poderia ser esticado quando preenchido com dados. No meu código de exemplo, o segundo sub-relatório deveria ter y = "50".

Além disso, vejo que a altura declarado de um elemento é tomado como uma altura mínima. Se o sub-relatório real é menor do que a altura, o elemento delimitador não vai ser reduzido, de modo que seria uma boa idéia para definir a altura mínima esperada para elementos que poderiam ser esticados.

Respondeu 11/12/2008 em 12:54
fonte usuário

votos
2

Você está certo, mas você precisa mais. Você precisa remover margens de sub-relatórios.

  • A partir do Menu -> Formatar -> Remover apresentar margens a partir do Menu

  • Formatar -> Format Página -> Faça margens de 0

Respondeu 05/10/2012 em 08:20
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more