Ricerca…


Parametri

Parametro Dettagli
parametersMapExpression La mappa con parametri. Non richiesto
subreportParameter La coppia di nome e valore (impostata con subreportParameterExpression ). Non richiesto Diversi parametri possono essere passati al sottoreport
connectionExpression Connessione per ottenere dati. Non richiesto
dataSourceExpression Espressione per il passaggio di Datasource. Non richiesto
subreportExpression Percorso / URI del sottoreport o anche oggetto JasperReport. Non richiesto
valore di ritorno La coppia di nome e valore. Non richiesto Diversi valori possono essere restituiti dal sottoreport al report master indietro

Osservazioni

  • I sottoreport possono essere utilizzati per la creazione di report complessi. Il riutilizzo dei report esistenti è un altro obiettivo dell'utilizzo dei sottoreport.

  • Il sottoreport verrà visualizzato come parte del report principale in caso di utilizzo dell'elemento <subreport> .

  • Il valore del parametro subreportExpression è diverso per l'utilizzo su JasperReports Server o semplicemente sul framework JasperReports (alcune API che utilizzano o utilizzano in IDE).

    Per JasperReports Server sembra che:

    <subreportExpression><![CDATA["repo:subreport.jrxml"]]></subreportExpression>
    

    Per l'utilizzo con il solo motore JasperReports :

    <subreportExpression><![CDATA["/somePath/subreport.jasper"]]></subreportExpression>
    

    La grande spiegazione di @AndreasDietrich può essere trovata su JasperServer: impossibile individuare il messaggio dell'eccezione del sottoreport

  • Per alcuni motivi, il sottoreport può essere utilizzato come report comune, senza chiamare dal report principale (con l'aiuto dell'elemento <subreport> ). Il sottoreport è sempre un report.

Passare la connessione al sottoreport; restituire i valori al report principale

Questo è uno snippet di report principale. Due parametri e la connessione (ad esempio, jdbc ) passano al sottoreport. Un valore viene restituito dal sottoreport al report principale, questo valore ( variabile ) può essere utilizzato nel report principale

<subreport>
    <reportElement x="0" y="80" width="200" height="100"/>
    <subreportParameter name="someSubreportParameter">
        <subreportParameterExpression><![CDATA[$P{someMasterReportParamter}]]></subreportParameterExpression>
    </subreportParameter>
    <subreportParameter name="anotherSubreportParameter">
        <subreportParameterExpression><![CDATA["Some text - constant value"]]></subreportParameterExpression>
    </subreportParameter>
    <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
    <returnValue subreportVariable="someVariableInSubreport" toVariable="someVariableInMasterReport"/>
    <subreportExpression><![CDATA["$P{SUBREPORT_DIR} + "subreport.jasper"]]></subreportExpression>
</subreport>

Passare datasoure a sottoreport

Questo è uno snippet di report principale. L'origine dati viene passata al sottoreport con l'aiuto di net.sf.jasperreports.engine.data.JRBeanCollectionDataSource constructor

<field name="someFieldWithList" class="java.util.List"/>
<!-- ...... -->
<subreport>
    <reportElement x="0" y="0" width="200" height="70"/>
    <parametersMapExpression><![CDATA[$P{REPORT_PARAMETERS_MAP}]]></parametersMapExpression>
    <dataSourceExpression><![CDATA[net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{someFieldWithList})]]></dataSourceExpression>
    <subreportExpression><![CDATA[$P{SUBREPORT_DIR} + "subreport.jasper"]]></subreportExpression>
</subreport>


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow