2012-11-10 13 views
5

Ho un report jasper (master) incorporato in un jar. Il report è ottenuto da un flusso di input Java. Il report jasper è realizzato da iReport 3.7.0Come incorporare sub-report JasperReport in un jar

In questo report principale sono disponibili alcuni sottoriport. Al momento devo usare

Subreport Espressione: $ P {} SUBREPORT_DIR + "\\ SubReport.jasper"

Espressione Classe: java.lang.String

nel iReport per rendere funziona . Significa che memorizzo il subReport.jasper nella cartella SUBREPORT_DIR.

La mia domanda è, come incorporare questi sottoreport nel vaso come il rapporto principale? E cosa dovrebbe riempire la "Default Value Expression"? (Se è necessario)

La domanda più vicina e rispondere finora ho visto è qui

How to load subreport resources with Jasper?

Tuttavia la risposta non è sufficiente per me per il rapporto maestro compilazione. C'è un messaggio di errore che dice il sottoreport mancante durante la compilazione (e questo è il motivo per cui penso che potrebbe essere necessaria l'espressione valore predefinito?)

Grazie mille!

risposta

5

ad esempio: Ho report e sottoreport, che si trova in alcuni file * .jar. per invocare sottoreport ho impostato espressione sottoreport

getClass().getResource("/path/to/my/report/in/a/jar/subreport.jasper").openStream() 

e scelgo sottoreport classe espressione java.io.InputStream

si sta lavorando!

0

Ho descritto una possibile soluzione in un answer in un'altra domanda. La domanda non è identica, ma la soluzione risolve anche questo problema.

Questa soluzione utilizza la molla, ma la sostituzione di parti specifiche della molla (FileSystemResourceLoader) con Class.getResourceAsStream() non dovrebbe essere un problema troppo grande.

Problemi correlati