2014-05-21 9 views
2

JasperSoft Studio을 사용하여 하위 보고서를 사용하려고했지만 아래 예외가 발생합니다. 포함 된 하위 보고서 파일을 찾을 수 없습니다.net.sf.jasperreports.engine.JRException : 리소스를 찾을 수 없음

"D:\\JASPERREPORTS\\MyReports\\subreport.jasper" 

심지어을 .jasper 파일이 단지 아닙니다 -이 : 아래

net.sf.jasperreports.engine.JRException:Resource not found at: D:\\JASPERREPORTS\\MyReports 

는 주 보고서의 구성과 같이 하위 경로에 포함 된 보고서의 이름을 부여하는

<?xml version="1.0" encoding="UTF-8"?> 
<!-- Created with Jaspersoft Studio version last--> 
<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="Blank_A4" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="0a6d6643-1d79-4e5e-b39d-a773bba37c12"> 
    <property name="com.jaspersoft.studio.data.defaultdataadapter" value="kai3_adapter"/> 
    <queryString> 
     <![CDATA[select * from cm_crew]]> 
    </queryString> 
    <field name="OID" class="java.math.BigDecimal"/> 
    <field name="CREW_OID" class="java.lang.String"/> 
    <field name="CONTACT_OID" class="java.math.BigDecimal"/> 
    <field name="ACTIVE" class="java.lang.String"/> 
    <field name="ONSHIFT" class="java.lang.String"/> 
    <field name="SHIFT_ID" class="java.lang.String"/> 
    <field name="SHIFT_START" class="java.sql.Timestamp"/> 
    <field name="CREW_STATUS" class="java.lang.String"/> 
    <group name="CREW_OID"> 
     <groupExpression><![CDATA[$F{CREW_OID}]]></groupExpression> 
    </group> 
    <background> 
     <band splitType="Stretch"/> 
    </background> 
    <title> 
     <band height="79" splitType="Stretch"/> 
    </title> 
    <pageHeader> 
     <band height="35" splitType="Stretch"/> 
    </pageHeader> 
    <columnHeader> 
     <band height="61" splitType="Stretch"> 
      <staticText> 
       <reportElement x="0" y="0" width="141" height="20" uuid="fc7cf2eb-2922-42e3-b446-fa1cba3239d6"/> 
       <text><![CDATA[CREW_OID]]></text> 
      </staticText> 
      <staticText> 
       <reportElement x="141" y="0" width="138" height="20" uuid="1fb08aed-592e-437d-9c3c-87e763dc81f8"/> 
       <text><![CDATA[ACTIVE]]></text> 
      </staticText> 
      <staticText> 
       <reportElement x="279" y="0" width="138" height="20" uuid="76eaa47f-6f18-4210-a607-a6456b1cc4ed"/> 
       <text><![CDATA[ONSHIFT]]></text> 
      </staticText> 
      <staticText> 
       <reportElement x="417" y="0" width="138" height="20" uuid="273fca2c-2b50-4157-ab3b-8545d94855f3"/> 
       <text><![CDATA[CREW_STATUS]]></text> 
      </staticText> 
     </band> 
    </columnHeader> 
    <detail> 
     <band height="257" splitType="Stretch"> 
      <textField> 
       <reportElement x="0" y="13" width="141" height="20" uuid="ef3acaa1-b11a-4b3d-b90d-7da18fc15dfa"/> 
       <textFieldExpression><![CDATA[$F{CREW_OID}]]></textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement x="141" y="13" width="138" height="20" uuid="2c29e96a-d712-4aff-9449-46f523ebbad8"/> 
       <textFieldExpression><![CDATA[$F{ACTIVE}]]></textFieldExpression> 
      </textField> 
      <textField> 
       <reportElement x="279" y="13" width="81" height="20" uuid="70df46c9-e63a-45a0-8c6e-82e38c260681"/> 
       <textFieldExpression><![CDATA[$F{ONSHIFT}]]></textFieldExpression> 
      </textField> 
      <subreport> 
       <reportElement x="380" y="20" width="165" height="170" uuid="3c312fc6-a389-4e46-af09-ddb1bfaa353f"/> 
       <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression> 
       <subreportExpression><![CDATA["D:\\JASPERREPORTS\\MyReports\\"]]></subreportExpression> 
      </subreport> 
     </band> 
    </detail> 
    <columnFooter> 
     <band height="45" splitType="Stretch"/> 
    </columnFooter> 
    <pageFooter> 
     <band height="54" splitType="Stretch"/> 
    </pageFooter> 
    <summary> 
     <band height="42" splitType="Stretch"/> 
    </summary> 
</jasperReport> 

답변

1

, 당신이 시도 할 수 있습니다 :

보고서를 미리보기 전에 먼저 컴파일 시도 할 수 있습니다. jrxml 파일 (하위 보고서가 포함 된 파일)을 열면 편집기의 위쪽 막대에 작은 아이콘 (일부 이진 문자열이있는 작은 파일)이 있음을 알 수 있습니다. 이 버튼을 클릭하면 원하는 파일이 생성됩니다. 내가 버튼을 보여주는 이미지를 추가하고 싶었 기 때문에

나는 새로운 답을 만들어 :이 또한 작동 할 수 있음을

Compile button @ Jaspersoft Studio 5.6

주의 : "프로젝트> 정리를 사용하여 보고서를 포함하는 프로젝트를 청소 .. . " 그런 다음 "프로젝트 탐색기"(보통 왼쪽에서)에서 프로젝트를 마우스 오른쪽 단추로 클릭 한 다음 "프로젝트 빌드"를 클릭하십시오.

0

시도이다 subreport.jas를 지정하면 자동으로 subreport.jrxml 파일이 컴파일되고 .jasper 파일이 생성됩니다. 여전히 (나에게 일어난) 파일을 생성하지 않는 경우 샤 라드의 대답에 따라

+0

에 그것은 아무것도 변경 didnt한다. 또한 확장자가 .jasper 인 파일이 없습니다. 미리보기 모드로 하위 보고서를 열어도 모든 .jasper 파일이 만들어지지 않습니다. – deeperwhite

+0

subreportname.jasper가없는 경우에도 제공하십시오. 그러나 sureport가 실행 중인지 여부를 확인하십시오. – Sharad

+0

재 스퍼 파일이 없으면 컴파일하는 데 문제가 있습니다. 보고서가 확실하다면, ireport를 다시 설치하십시오. 가장 안정된 버전의 ireport는 4.5.0입니다. – StarCrafter

0

보고서를 호출하는 응용 프로그램에서 "SUBREPORT_DIR" 매개 변수를 보냅니다. 자바 예를 들어 : 디렉토리가 아닌 파일로

params.put("SUBREPORT_DIR", "reports/folder/"); 

그냥 포인트.

당신은 메이븐을 사용하는 경우

설정 메이븐 자원 태그 제대로 pom.xml

관련 문제