Forum » Programiranje » Jasper subreport
Jasper subreport
boss-tech ::
Naredil sem poročilo v javi z jasper reports. Noter pošljem podatke in vse gre lepo. Sedaj pa bi rad naredil novo stran - subreport, vendar mi nikakor ne uspe narediti navadno novo stran z nekaj teksta. Zmeraj imam prazen bel list ali pa celo napako.
Podal sem samo kje je izvorna datoteka subreporta. A je nujno poslati kakšen data source ali parameter?
Koda:
Podal sem samo kje je izvorna datoteka subreporta. A je nujno poslati kakšen data source ali parameter?
Koda:
<?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="PermitReport.jrxml" language="groovy" pageWidth="842" pageHeight="595" orientation="Landscape" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> <property name="ireport.zoom" value="1.0"/> <property name="ireport.x" value="0"/> <property name="ireport.y" value="0"/> <parameter name="self" class="net.sf.jasperreports.engine.JRDataSource"/> <field name="templateName" class="java.lang.String"/> <field name="firstName" class="java.lang.String"/> <field name="lastName" class="java.lang.String"/> <background> <band/> </background> <title> <band height="79"/> </title> <pageHeader> <band height="35"/> </pageHeader> <columnHeader> <band height="61"> <textField isStretchWithOverflow="true"> <reportElement positionType="Float" x="3" y="0" width="189" height="15"/> <box leftPadding="10" rightPadding="10"/> <textElement/> <textFieldExpression class="java.lang.String"><![CDATA['Test 1. stran']]></textFieldExpression> </textField> </band> </columnHeader> <detail> <band height="239"> <textField> <reportElement x="10" y="26" width="100" height="20"/> <textElement/> <textFieldExpression class="java.lang.String"><![CDATA[$F{firstName}]]></textFieldExpression> </textField> <textField> <reportElement x="110" y="26" width="100" height="20"/> <textElement/> <textFieldExpression class="java.lang.String"><![CDATA[$F{lastName}]]></textFieldExpression> </textField> <subreport> <reportElement x="155" y="130" width="200" height="100"/> <subreportExpression class="java.lang.String"> <![CDATA["/home/t/workspace/.../src/main/resources/Report_OUTER_subreport.jasper"]]> </subreportExpression> </subreport> </band> </detail> <columnFooter> <band height="45"/> </columnFooter> <pageFooter> <band height="54"/> </pageFooter> <summary> <band height="42"/> </summary> </jasperReport>
boss-tech ::
To je pot do 2. strani reporta...jrxml izovrni xml se naloži v jasper file in tega potem podaš.
LeQuack ::
Jaz mam recimo tako:
Sicer pa priporočam da uporabljaš iReport, ki je GUI urejevalnik za JasperReports in ti sam zgenerira te XMLe.
http://jasperforge.org/plugins/project/...
<subreport isUsingCache="true"> <reportElement x="11" y="239" width="520" height="27" key="subreport-1"/> <dataSourceExpression><![CDATA[$P{accreditationData}]]></dataSourceExpression> <subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$P{AccreditationSubReport}]]></subreportExpression> </subreport>
Sicer pa priporočam da uporabljaš iReport, ki je GUI urejevalnik za JasperReports in ti sam zgenerira te XMLe.
http://jasperforge.org/plugins/project/...
Quack !
Zgodovina sprememb…
- spremenil: LeQuack ()
boss-tech ::
Delam v IReport in stvar je bila v tem da sem v subreportu premaknil vso vsebino iz Detail 1 Band v Summary in potem sem zagledal podatke. Kaj točno vpliva na to pa ne vem. Sedaj sem pustil tako in deluje.
Zanima pa me če kdo ve zakaj mi lokalno noče prikazati č-jev, na testnem strežniku pa vseh šumnikov?
Zanima pa me če kdo ve zakaj mi lokalno noče prikazati č-jev, na testnem strežniku pa vseh šumnikov?
nightrage ::
Delam v IReport in stvar je bila v tem da sem v subreportu premaknil vso vsebino iz Detail 1 Band v Summary in potem sem zagledal podatke. Kaj točno vpliva na to pa ne vem. Sedaj sem pustil tako in deluje.
Zanima pa me če kdo ve zakaj mi lokalno noče prikazati č-jev, na testnem strežniku pa vseh šumnikov?
Sem imel sam tak problem v jasperreports pa sem šumnike rešil s svojim classom. Kjerkoli v *.jrxml imaš
textField pokličeš ta class za pretvorbo encondinga. Seveda je odvisno iz kere kodne tabele pretvarjaš v katero. Class zapakiraš v jar datoteko in jo vključiš v IReport-u al pa v svoji cumstom aplikaciji.
<textField><textFieldExpression class="java.lang.String"><![CDATA[util.Utility.transformToCentralEuropean($F{NAME})]]></textFieldExpression> </textField>
package util; import java.io.UnsupportedEncodingException; public class Utility { public static String transformToCentralEuropean(String value) { if (value == null) { return null; } try { byte[] bytes = value.getBytes("ISO8859_1"); return new String(bytes, "Cp1250"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } return null; } }
Zgodovina sprememb…
- spremenil: nightrage ()
nightrage ::
Kodna tabela iz katere pretvarjaš: ISO8859_1
Kodna tabela v katero pretvarjaš: Cp1250 (poskus tudi z UTF-8)
Kako ugotoviti trenutno kodno tabelo -> http://www.rgagnon.com/javadetails/java...
Kodna tabela v katero pretvarjaš: Cp1250 (poskus tudi z UTF-8)
Kako ugotoviti trenutno kodno tabelo -> http://www.rgagnon.com/javadetails/java...
boss-tech ::
A moraš naredit svoj jar ali se lahko da kar v okvir aplikacije? Ker sem videl da lahko definiraš import (java import directives) v jrxml? Kako pa je pri statičnem tekstu?
Zgodovina sprememb…
- spremenil: boss-tech ()
nightrage ::
Ne ni ti potrebno svojega jara delat, jaz pač za takšne utilitije dam svoj jaz. Tudi za statičen tekst lahko uporabiš potem ta klic funkcije. Upam, da ti bo ratal.
boss-tech ::
Mi je...Hvala... imam pa vprašanje glede imena pdf-ja, ki ga zgenerira. Če debugiram vidim da so v responsu vsi šumniki v imenu in vse. Ampak ko shraniš pa jih ni več.
response.setContentType(mimeType); response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Disposition", "attachement; filename=\"" + fileName + "\""); ServletOutputStream out = response.getOutputStream(); streamBinaryData(in, out);
Zgodovina sprememb…
- spremenil: boss-tech ()
nightrage ::
Najboljše bo da tvoj jasper prikažes kar v pdf-ju.
JasperReport jasperReport = (JasperReport)JRLoader.loadObject(reportFile.getPath()); JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, "parametri če jih imaš", dbConnection); byte[] bytes = JasperRunManager.runReportToPdf(reportFile.getPath(),parameters,db1); response.setContentType("application/pdf"); response.setContentLength(bytes.length); ServletOutputStream ouputStream = response.getOutputStream(); ouputStream.write(bytes, 0, bytes.length); ouputStream.flush(); ouputStream.close();
Zgodovina sprememb…
- spremenil: nightrage ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Davčne blagajne (strani: 1 2 3 4 … 24 25 26 27 )Oddelek: Programiranje | 330173 (70176) | Macketina |
» | [JAVA] HTTPS clientOddelek: Programiranje | 3158 (1888) | peterv6i |
» | [Java]Client/Server preko socketaOddelek: Programiranje | 1734 (1570) | KernelPanic |
» | [Java] servlet - kako upload-at iz klienta v servletOddelek: Programiranje | 1712 (1618) | Fizikalko |
» | Java - JBoss - Servlet - getOutputStream() has already been called for this responseOddelek: Programiranje | 1045 (962) | kopernik |