2010-04-21 3 views
7

내 .jrxml에 내 도메인의 임의 개체 (예 : Person)의 매개 변수로 전달하고 싶습니다.임의의 개체를 jasper 보고서에 매개 변수로 전달하려면 어떻게해야합니까?

<?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="test" pageWidth="595" pageHeight="842" columnWidth="555" 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="PERSON" isForPrompting="false" class="myApp.domain.person"/> 
<background> 
    <band splitType="Stretch"/> 
</background> 
<title> 
    <band height="20"> 
     <staticText> 
     <reportElement x="180" y="0" width="200" height="20"/> 
     <text><![CDATA[$P{PERSON.lastName}]]></text> 
     </staticText> 
    </band> 
</title> 
... 

이 가능한 같은 것입니다 :

InputStream reportFile = MyPage.this.getClass().getResourceAsStream("test.jrxml"); 
HashMap<String, Person> parameters = new HashMap<String, Person>(); 
parameters.put("person", new Person("John", "Doe")); 
... 
JasperReport report = JasperCompileManager.compileReport(reportFile); 
JasperPrint print = JasperFillManager.fillReport(report, parameters, new JREmptyDataSource()); 
return JasperExportManager.exportReportToPdf(print); 

그리고은 .jrxml에

는 같은 것이 있습니까? java.lang.String을 전달하는 것 이상의 단순한 튜토리얼은 어디에서 찾을 수 있습니까?

감사합니다.

답변

7

예, 모든 Java 객체를 전달할 수 있지만 JRXML에서 해당 객체를 가져와야합니다.

jasperReport 태그 내부. 그러나

<jasperReport...> 
     <import value="org.justfortest.Person"> 

당신은 PARAMS 맵에서 임의의 객체를 저장할 필요없이, JRBeanCollectionDataSource을 사용하고 개체의 목록 보고서를 채울 수 있습니다 : 당신은 같은 태그 import를 사용할 수 있습니다.

확인 내가 특정 클래스 경로를 설정하지 않으면 어떻게 Jasper Reports Bean Collection Data Source

+1

링크가 끊어졌습니다. –

0

예, 정확하게 설명 할 수 있습니다. jrxml을 컴파일 할 때 올바른 클래스 경로를 갖고 있는지 확인하고 모든 위치에서 소문자 (person) 또는 대문자 (PERSON)로 대소 문자를 구분하십시오.

+0

감사에 대한 추가 정보를 원하시면이 튜토리얼, 나는 < ".."= 수입 패키지>처럼은 .jrxml 뭔가에 넣어 또는 뭔가 수 있습니다 그 보고서가 특정 수업을 찾을 수있는 것처럼? 다시 도움 주셔서 감사합니다. –

+0

가져 오기를 사용할 수 있다고 생각합니다. 시도가 성공했는지 여부를보고하십시오. – Bozho

+0

매우 관련성있는 질문입니다. 문제를 해결할 수 있었습니까? 우리가 jasx 서버에 jrxml을 업로드 할 필요가있는 것과 똑같은 요구 사항을 직면하고 서버의 클래스 경로에 아무것도 추가하지 않으려 고합니다 (업데이트하기 쉽지 않음). 동시에 보고서 단위는 이지만 클래스를 직접 jrxml로 임포트하십시오. 어떤 제안? – Aubergine

관련 문제