2011-11-10 14 views
6

ジャスパープラグインを使用してpdf形式のレポートを作成します。このサンプル(http://grails.org/plugin/jasper)を使用してレポートを取得しようとしています。コード。ジャスパーレポートin grails

<div class="buttons"> 
       <g:form> 
        <g:hiddenField name="id" value="${userManagementInstance?.id}" /> 
        <span class="button"><g:actionSubmit class="edit" action="edit" value="${message(code: 'default.button.edit.label', default: 'Edit')}" /></span> 
        <span class="button"><g:actionSubmit class="delete" action="delete" value="${message(code: 'default.button.delete.label', default: 'Delete')}" onclick="return confirm('${message(code: 'default.button.delete.confirm.message', default: 'Are you sure?')}');" /></span> 
       </g:form> 
      </div> 
      <g:jasperReport jasper="use" format="PDF" name="users"> 
<input type="hidden" name="id" value="${userManagementInstance?.id}" /> 
</g:jasperReport> 

上記のコードをshow.gspページで使用して特定のIDレポートを取得しました。

<?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="report name" pageWidth="595" pageHeight="842" columnWidth="535" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20"> 
    <property name="ireport.scriptlethandling" value="0"/> 
    <property name="ireport.encoding" value="UTF-8"/> 
    <import value="net.sf.jasperreports.engine.*"/> 
    <import value="java.util.*"/> 
    <import value="net.sf.jasperreports.engine.data.*"/> 
    <style name="pagetitle" isDefault="false" fontName="SansSerif" fontSize="14"/> 
    <parameter name="id" isForPrompting="false" class="java.lang.String"> 
<defaultValueExpression><![CDATA["<parameter error>"]]></defaultValueExpression> 

</parameter> 

<queryString><![CDATA[select * from user_management where id =$P{id}]]></queryString> 
     <field name="id" class="java.lang.String"/> 

    <field name="user_id" class="java.lang.String"/> 
    <field name="user_name" class="java.lang.String"/> 

    <background> 
     <band/> 
    </background> 



    <title> 
     <band height="79"> 
      <staticText> 
       <reportElement style="pagetitle" x="0" y="0" width="201" height="46"/> 
       <textElement/> 
       <text><![CDATA[all]]></text> 
      </staticText> 
     </band> 
    </title> 
    <pageHeader> 
     <band height="35"/> 
    </pageHeader> 
    <columnHeader> 
     <band height="61"> 
     <staticText> 
       <reportElement key="staticText" x="0" y="39" width="100" height="20"/> 
       <textElement/> 
       <text><![CDATA[id]]></text> 
      </staticText> 

      <staticText> 
       <reportElement key="staticText" x="130" y="39" width="100" height="20"/> 
       <textElement/> 
       <text><![CDATA[userId]]></text> 
      </staticText> 
      <staticText> 
       <reportElement key="staticText" x="266" y="39" width="100" height="20"/> 
       <textElement/> 
       <text><![CDATA[userName]]></text> 
      </staticText> 

     </band> 
    </columnHeader> 
    <detail> 
     <band height="42"> 
     <textField isBlankWhenNull="false" hyperlinkType="None"> 
       <reportElement key="textField" x="0" y="15" width="130" height="20"/> 
       <textElement/> 
       <textFieldExpression class="java.lang.String"><![CDATA[$F{id}]]></textFieldExpression> 
      </textField> 

      <textField isBlankWhenNull="false" hyperlinkType="None"> 
       <reportElement key="textField" x="130" y="15" width="136" height="20"/> 
       <textElement/> 
       <textFieldExpression class="java.lang.String"><![CDATA[$F{user_id}]]></textFieldExpression> 
      </textField> 
      <textField isBlankWhenNull="false" hyperlinkType="None"> 
       <reportElement key="textField" x="266" y="15" width="130" height="20"/> 
       <textElement/> 
       <textFieldExpression class="java.lang.String"><![CDATA[$F{user_name}]]></textFieldExpression> 
      </textField> 

     </band> 
    </detail> 
    <columnFooter> 
     <band height="45"/> 
    </columnFooter> 
    <pageFooter> 
     <band height="54"/> 
    </pageFooter> 
    <summary> 
     <band height="42"/> 
    </summary> 
</jasperReport> 

私は上記のコードをweb-apps/report folder use.jasperで使用します。

Error 500: Executing action [index] of controller [org.codehaus.groovy.grails.plugins.jasper.JasperController] in plugin [jasper] caused exception: null 
Servlet: grails 
URI: /inventoryManagment/grails/jasper.dispatch 
Exception Message: invalid stream header: 3C3F786D 
Caused by: invalid stream header: 3C3F786D 
Class: Unknown 
At Line: [-1] 

ただし、無効なストリームヘッダー:3C3F786Dがエラーになります。 この問題を解決するために私を案内してください。

+1

iReportでレポートを確認しましたか?それは有効ですか? –

+0

iReportのレポートをチェックする方法。それは私には新しいコンセプトなので、私は尋ねています。それが有効かどうかを知る方法は? – manu

+2

iReportをインストールしましたか?はいの場合は、テンプレートをコンパイルし、プレビューを試してみてください( 'Preview'タブ経由) –

答えて

1

.jrxmlファイルを使用してサブレポートを参照しているようです。しかし、コンパイルされたバージョンの.jasperを使用する必要があります。

私はうまくいきたいです!

+0

私のためには動作しません....同じエラーですが、異なるヘッダコードです。 JasperReportsライブラリ4.6.0を使用し、jrxml + JasperSoft Studio 1.1.1を使用して生成されたjasperファイル –

関連する問題