Problem with many subreports

By: Gianluca - potenza
Problem with many subreports
2002-10-01 01:27
I have a complex report which uses 8 subreports to create the various blocks on the report.
Thin to two subreports there are not problems but from third subreport the resulting pdf is

completely confused and strange.
I've tried the various options in the reportElement for the subreport to work.

This is the code:

<?xml version="1.0"?>
<!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="report_cartella_clinica" pageWidth="595" pageHeight="842" columnWidth="515" columnSpacing="0" leftMargin="40" rightMargin="40" topMargin="50" bottomMargin="25">
<reportFont name="Arial_Normal" isDefault="true" fontName="Arial" size="11" pdfFontName="Helvetica" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
<reportFont name="Arial_Bold" isDefault="false" fontName="Arial" size="11" isBold="true" pdfFontName="Helvetica-Bold" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
<reportFont name="Arial_Italic" isDefault="false" fontName="Arial" size="11" isItalic="true" pdfFontName="Helvetica-Oblique" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
<parameter name="CUSTOM_CONNECTION" class="java.sql.Connection"/>
.
.
.
<title>
<band height="95">
<!-- ################# Logo ################# -->
<image scaleImage="FillFrame">
<reportElement x="243" y="0" width="100" height="75"/>
<graphicElement pen="None"/>
<imageExpression>"logo.jpg"</imageExpression>
</image>
<staticText>
<reportElement x="0" y="65" width="515" height="25"/>
<textElement textAlignment="Left" lineSpacing="Single">
<font reportFont="Arial_Normal" size="18"/>
</textElement>
<text>Cartella clinica</text>
</staticText>
<line>
<reportElement x="0" y="94" width="515" height="0"/>
<graphicElement stretchType="NoStretch"/>
</line>
</band>
</title>
<pageHeader>
<band/>
</pageHeader>
<columnHeader>
<band height="0"/>
</columnHeader>
<detail>
<band height="647">
<!--################## Cognome ########################-->
<staticText>
<reportElement x="5" y="5" width="110" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Cognome:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="117" y="5" width="360" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{cognome}</textFieldExpression>
</textField>
<!--################## Nome ########################-->
<staticText>
<reportElement x="5" y="20" width="110" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Nome:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="117" y="20" width="360" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{nome}</textFieldExpression>
</textField>
<!--################## Data di nascita ########################-->
<staticText>
<reportElement x="5" y="35" width="110" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Data di nascita:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="117" y="35" width="100" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{data_nascita}</textFieldExpression>
</textField>
<!--################## Luogo di nascita ########################-->
<staticText>
<reportElement x="5" y="50" width="110" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Luogo di nascita:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="117" y="50" width="360" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{luogo_nascita}</textFieldExpression>
</textField>
<!--################## Sesso ########################-->
<staticText>
<reportElement x="5" y="65" width="110" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Sesso:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="117" y="65" width="100" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{sesso}</textFieldExpression>
</textField>
<!--################## Citt  di residenza ########################-->
<staticText>
<reportElement x="5" y="80" width="110" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Citt  di residenza:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="117" y="80" width="360" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{citta_di_residenza}</textFieldExpression>
</textField>
<!--################## Cap ########################-->
<staticText>
<reportElement x="5" y="95" width="110" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Cap:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="117" y="95" width="360" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{cap}</textFieldExpression>
</textField>
<!--################## Indirizzo ########################-->
<staticText>
<reportElement x="5" y="110" width="110" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Indirizzo:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="117" y="110" width="360" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{indirizzo}</textFieldExpression>
</textField>
<!--################## Telefono ########################-->
<staticText>
<reportElement x="5" y="125" width="110" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Telefono:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="117" y="125" width="360" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{telefono}</textFieldExpression>
</textField>
<!--################## Tessera sanitaria ########################-->
<staticText>
<reportElement x="5" y="140" width="110" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Tessera sanitaria:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="117" y="140" width="360" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{tessera_sanitaria}</textFieldExpression>
</textField>
<!--################## Medico curante ########################-->
<staticText>
<reportElement x="5" y="155" width="110" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Medico curante:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="117" y="155" width="180" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{medico_curante}</textFieldExpression>
</textField>
<!--################## Telefono Medico curante ########################-->
<staticText>
<reportElement x="297" y="155" width="40" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Tel:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="337" y="155" width="120" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{tel_medico}</textFieldExpression>
</textField>
<!--################## Persona di riferimento ########################-->
<staticText>
<reportElement x="5" y="170" width="150" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Persona di riferimento:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="157" y="170" width="180" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{persona_di_riferimento}</textFieldExpression>
</textField>
<!--################## Telefono Persona di riferimento ########################-->
<staticText>
<reportElement x="337" y="170" width="40" height="15"/>
<textElement textAlignment="Right" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Tel:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="377" y="170" width="120" height="15" isPrintWhenDetailOverflows="false"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{tel_medico}</textFieldExpression>
</textField>
<!--#################################################################-->
<!--############### SUBREPORT MANSIONI PRECEDENTI ###############-->
<!--#################################################################-->
<subreport isUsingCache="true">
<reportElement x="5" y="190" width="510" height="40" positionType="Float"/>
<subreportParameter name="matricola_addetto">
<subreportParameterExpression>
$F{matricola_addetto}
</subreportParameterExpression>
</subreportParameter>
<connectionExpression>
$P{CUSTOM_CONNECTION}
</connectionExpression>
<subreportExpression class="java.lang.String">
"subreport_prec_mansioni.jasper"
</subreportExpression>
</subreport>
<!--#################################################################-->
<!--############### SUBREPORT MANSIONI ATTUALI ####################-->
<!--#################################################################-->
<subreport isUsingCache="true">
<reportElement x="5" y="230" width="510" height="40" isPrintWhenDetailOverflows="false" positionType="Float"/>
<subreportParameter name="matricola_addetto">
<subreportParameterExpression>
$F{matricola_addetto}
</subreportParameterExpression>
</subreportParameter>
<connectionExpression>
$P{CUSTOM_CONNECTION}
</connectionExpression>
<subreportExpression class="java.lang.String">
"subreport_mansione_attuale.jasper"
</subreportExpression>
</subreport>
<!--################## Gruppo sanguigno ########################-->
<line>
<reportElement x="5" y="275" width="515" height="0" positionType="Float"/>
<graphicElement stretchType="NoStretch"/>
</line>
<staticText>
<reportElement x="5" y="280" width="110" height="15" positionType="Float"/>
<textElement textAlignment="Left" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Gruppo sanguigno:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="115" y="280" width="50" height="15" positionType="Float"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{gruppo_sanguigno}</textFieldExpression>
</textField>
<staticText>
<reportElement x="240" y="280" width="45" height="15" positionType="Float"/>
<textElement textAlignment="Left" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>HBsAg:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="285" y="280" width="70" height="15" positionType="Float"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>($F{hbsag}.equals("S")?"positivo":"negativo")</textFieldExpression>
</textField>
<staticText>
<reportElement x="420" y="280" width="25" height="15" positionType="Float"/>
<textElement textAlignment="Left" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>HIV:</text>
</staticText>
<textField isBlankWhenNull="true">
<reportElement x="445" y="280" width="70" height="15" positionType="Float"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>($F{hiv}.equals("S")?"positivo":"negativo")</textFieldExpression>
</textField>
<!--#################################################################-->
<!--################### SUBREPORT ALLERGIE #######################-->
<!--#################################################################-->
<subreport isUsingCache="true">
<reportElement x="5" y="295" width="510" height="40" isPrintWhenDetailOverflows="false" positionType="Float"/>
<subreportParameter name="matricola_addetto">
<subreportParameterExpression>
$F{matricola_addetto}
</subreportParameterExpression>
</subreportParameter>
<connectionExpression>
$P{CUSTOM_CONNECTION}
</connectionExpression>
<subreportExpression class="java.lang.String">
"subreport_allergie.jasper"
</subreportExpression>
</subreport>
<!--################## Note allergie ########################-->
<staticText>
<reportElement x="5" y="335" width="80" height="15" isRemoveLineWhenBlank="true" positionType="Float"/>
<textElement textAlignment="Left" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Note allergie:</text>
</staticText>
<textField isBlankWhenNull="true" isStretchWithOverflow="true">
<reportElement x="85" y="335" width="430" height="15" isRemoveLineWhenBlank="true" positionType="Float"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>$F{note_allergie}</textFieldExpression>
</textField>
<line>
<reportElement x="5" y="355" width="515" height="0" positionType="Float"/>
<graphicElement stretchType="NoStretch"/>
</line>
<!--#################################################################-->
<!--################### SUBREPORT VACCINAZIONI #######################-->
<!--#################################################################-->
<subreport isUsingCache="true">
<reportElement x="5" y="360" width="510" height="40" isPrintWhenDetailOverflows="false" positionType="Float"/>
<subreportParameter name="matricola_addetto">
<subreportParameterExpression>
$F{matricola_addetto}
</subreportParameterExpression>
</subreportParameter>
<connectionExpression>
$P{CUSTOM_CONNECTION}
</connectionExpression>
<subreportExpression class="java.lang.String">
"subreport_vaccinazioni.jasper"
</subreportExpression>
</subreport>
<!--#################################################################-->
<!--################### SUBREPORT MALATTIE #######################-->
<!--#################################################################-->
<subreport isUsingCache="true">
<reportElement x="5" y="400" width="510" height="40" isPrintWhenDetailOverflows="false" positionType="Float"/>
<subreportParameter name="matricola_addetto">
<subreportParameterExpression>
$F{matricola_addetto}
</subreportParameterExpression>
</subreportParameter>
<connectionExpression>
$P{CUSTOM_CONNECTION}
</connectionExpression>
<subreportExpression class="java.lang.String">
"subreport_malattie.jasper"
</subreportExpression>
</subreport>
<!--################## note malattie ########################-->
<staticText>
<reportElement x="5" y="440" width="50" height="15" isRemoveLineWhenBlank="true" positionType="Float"/>
<textElement textAlignment="Left" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Note:</text>
</staticText>
<textField isBlankWhenNull="true" isStretchWithOverflow="true">
<reportElement x="55" y="440" width="450" height="15" isRemoveLineWhenBlank="true" positionType="Float"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>($F{note_malattie} == null?"":$F{note_malattie})</textFieldExpression>
</textField>
<line>
<reportElement x="5" y="460" width="515" height="0" positionType="Float"/>
<graphicElement stretchType="NoStretch"/>
</line>
<!--################## Interventi chirurgici ########################-->
<staticText>
<reportElement x="5" y="465" width="120" height="15" isRemoveLineWhenBlank="true" positionType="Float"/>
<textElement textAlignment="Left" lineSpacing="Single">
<font reportFont="Arial_Bold"/>
</textElement>
<text>Interventi chirurgici:</text>
</staticText>
<textField isBlankWhenNull="true" isStretchWithOverflow="true">
<reportElement x="125" y="465" width="390" height="15" isRemoveLineWhenBlank="true" positionType="Float"/>
<textElement>
<font reportFont="Arial_Normal"/>
</textElement>
<textFieldExpression>($F{interventi_chirurgici} == null?"Nessuno di rilevante":$F{interventi_chirurgici})</textFieldExpression>
</textField>
<!--#################################################################-->
<!--############# SUBREPORT MALATTIE PROFESSIONALI ###############-->
<!--#################################################################-->
<subreport isUsingCache="true">
<reportElement x="5" y="480" width="510" height="40" isPrintWhenDetailOverflows="true" positionType="Float" isPrintInFirstWholeBand="true"/>
<subreportParameter name="matricola_addetto">
<subreportParameterExpression>
$F{matricola_addetto}
</subreportParameterExpression>
</subreportParameter>
<connectionExpression>
$P{CUSTOM_CONNECTION}
</connectionExpression>
<subreportExpression class="java.lang.String">
"subreport_malattie_professionali.jasper"
</subreportExpression>
</subreport>
<!--#################################################################-->
<!--########### SUBREPORT POSTUMI PERMANENTI INFORTUNI ##########-->
<!--#################################################################-->
<subreport isUsingCache="true">
<reportElement x="5" y="520" width="510" height="40" isPrintWhenDetailOverflows="true" positionType="Float" isPrintInFirstWholeBand="true"/>
<subreportParameter name="matricola_addetto">
<subreportParameterExpression>
$F{matricola_addetto}
</subreportParameterExpression>
</subreportParameter>
<connectionExpression>
$P{CUSTOM_CONNECTION}
</connectionExpression>
<subreportExpression class="java.lang.String">
"subreport_infortuni.jasper"
</subreportExpression>
</subreport>
<!--#################################################################-->
<!--################## SUBREPORT ALTRE INVALIDITA' #################-->
<!--#################################################################-->
<subreport isUsingCache="true">
<reportElement x="5" y="460" width="560" height="40" isPrintWhenDetailOverflows="true" positionType="Float" isPrintInFirstWholeBand="true"/>
<subreportParameter name="matricola_addetto">
<subreportParameterExpression>
$F{matricola_addetto}
</subreportParameterExpression>
</subreportParameter>
<connectionExpression>
$P{CUSTOM_CONNECTION}
</connectionExpression>
<subreportExpression class="java.lang.String">
"subreport_altre_invalidita.jasper"
</subreportExpression>
</subreport>
</band>
</detail>
<columnFooter>
<band height="0"/>
</columnFooter>
<pageFooter>
<band height="25">
<line>
<reportElement x="0" y="0" width="515" height="0"/>
<graphicElement stretchType="NoStretch"/>
</line>
<textField>
<reportElement x="200" y="10" width="80" height="15"/>
<textElement textAlignment="Right"/>
<textFieldExpression class="java.lang.String">
"Pagina " + String.valueOf($V{PAGE_NUMBER}) + " di"
</textFieldExpression>
</textField>
<textField evaluationTime="Report">
<reportElement x="280" y="10" width="75" height="15"/>
<textElement textAlignment="Left"/>
<textFieldExpression class="java.lang.String">
" " + String.valueOf($V{PAGE_NUMBER})
</textFieldExpression>
</textField>
</band>
</pageFooter>
<summary>
<band height="0"/>
</summary>
</jasperReport>

thanks


By: Teodor Danciu - teodord
RE: Problem with many subreports
2002-10-23 12:49

Hi,

I think it is the positionType="Float" that seems
to not work in your case.

This is because you have to put some little space
between your elements, if you want them to float.

If one element (a subreport element for example),
touches the element that it is immediatly above it,
it won't float and they will overlap.

Some of your report elements, if not all of them,
touch each other top to bottom.

Element e2 will float after e1 only if this condition
is satisfied:

e1.y + e1.height < e2.y

This is not the case in your report design.
(e1y + e1.height = e2.y)

I hope this helps.
Teodor



By: Giulio Toffoli - gt78
RE: Problem with many subreports
2002-10-24 02:22
Ciao Gianluca,

Scarica iReport e prova a visualizzare il tuo report.
Vedrai che hai sovrapposto in maniera strana
i tuoi sottoreport.

Downlaod iReport and try to view you report.
You will see that subreport are positioned in a strange manner.

ireport.sourceforge.net
Giulio
2001 JI Open Discussion's picture
Joined: Aug 10 2006 - 3:26am
Last seen: 17 years 1 month ago

0 Answers:

No answers yet
Feedback
randomness