2011-11-10 37 views
6

Tôi sử dụng plugin jasper để nhận báo cáo bằng pdf. Tôi đang cố gắng để có được báo cáo bằng cách sử dụng ví dụ này (http://grails.org/plugin/jasper) .Để có được thông tin id cụ thể ở định dạng pdf được sử dụng bên dưới mã.báo cáo jasper trong 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> 

Tôi đã sử dụng mã ở trên trong trang show.gsp để nhận báo cáo id cụ thể.

<?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> 

Tôi sử dụng mã trên trong ứng dụng web/thư mục báo cáo 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] 

Nhưng tôi nhận được lỗi là tiêu đề luồng không hợp lệ: 3C3F786D. Vì vậy, hãy hướng dẫn tôi giải quyết vấn đề này.

+1

Bạn có kiểm tra báo cáo của mình trong iReport không? Nó có hợp lệ không? –

+0

Làm thế nào để kiểm tra báo cáo trong iReport.It là khái niệm mới với tôi, vì vậy tôi đang hỏi.How biết nó có hợp lệ hay không? – manu

+2

Bạn đã cài đặt iReport chưa? Nếu có, hãy thử biên dịch mẫu và cố gắng xem trước nó (thông qua tab 'Xem trước') –

Trả lời

1

Dường như bạn đang tham chiếu đến subreport bằng tệp .jrxml. Tuy nhiên, bạn nên sử dụng phiên bản được biên dịch .jasper.

Tôi hy vọng rằng nó hoạt động!

+0

không hoạt động đối với tôi .... cùng một lỗi, nhưng mã tiêu đề khác nhau. sử dụng thư viện JasperReports 4.6.0, tệp jrxml + jasper được tạo bằng cách sử dụng JasperSoft Studio 1.1.1 –

Các vấn đề liên quan