Ireport+Jasperreport实现报表使用

来源:互联网 发布:云南域名备案 编辑:程序博客网 时间:2024/04/29 11:22

 

1.        在项目中使用IreportServlet.是主要的实现类。

2.        在项目中WebRoot/加入ireport.jsp是测试用的jsp页面。在jsp页面需要设置一个隐藏域设置生成jrxml文件名。假如用ireport 报表设计器生成的jrxml文件的文件名为test.jrxml(<input type=”hidden” name=”filename” value=”test”>)其中name=”filename”是固定的,value=”文件名不需要拓展名。其余需要动态传入的参数标签中的name属性必须要跟报表设计器中设置变量的属性相同。例如报表设计器中设置的标题为$F{ReportTitle}则在jsp页中<input type=”text” name=”ReportTitle”>

 

示例Ireport.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"

    pageEncoding="utf-8"%>

   

<%session.removeAttribute("net.sf.jasperreports.j2ee.jasper_print"); %>   

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>Insert title here</title>

</head>

<body>

    <form action="../IreportServlet" method="post">

    表报标题<input type="text" id="ReportTitle" name="ReportTitle"/>

    <br>  

    无用参数<input type="text" name="ksfjals"> 

    <br>

    <select id="type" name="type">        

        <option value="HTML">HTML</option> 

        <option value="PDF">PDF</option>      

        <option value="XLS">XLS</option>      

        <option value="RTF">RTF</option>     

    </select>  

    <input type="hidden" name="filename" value="yyinfo1">

    <input type="submit" value="生成报表">    

    </form> 

</body>

</html>

 

示例test.jrxml描述文件

<?xml version="1.0" encoding="UTF-8"  ?>

<!-- Created with iReport - A designer for JasperReports -->

<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">

<jasperReport

         name="test"

         columnCount="1"

         printOrder="Vertical"

         orientation="Portrait"

         pageWidth="595"

         pageHeight="842"

         columnWidth="535"

         columnSpacing="0"

         leftMargin="30"

         rightMargin="30"

         topMargin="20"

         bottomMargin="20"

         whenNoDataType="NoPages"

         isTitleNewPage="false"

         isSummaryNewPage="false">

    <property name="ireport.scriptlethandling" value="2" />

    <property name="ireport.encoding" value="UTF-8" />

    <import value="java.util.*" />

    <import value="net.sf.jasperreports.engine.*" />

    <import value="net.sf.jasperreports.engine.data.*" />

 

    <parameter name="ReportTitle" isForPrompting="false" class="java.lang.String"/>

    <queryString><![CDATA[select * from pt_yy_info]]></queryString>

 

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

 

        <background>

            <band height="0"  isSplitAllowed="true" >

            </band>

        </background>

        <title>

            <band height="50"  isSplitAllowed="true" >

                <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >

                    <reportElement

                        x="86"

                        y="15"

                        width="270"

                        height="18"

                        key="textField"/>

                    <box></box>

                    <textElement>

                        <font fontName="华文行楷" pdfFontName="STSong-Light" pdfEncoding ="UniGB-UCS2-H"/>

                    </textElement>

                <textFieldExpression   class="java.lang.String"><![CDATA[$P{ReportTitle}]]></textFieldExpression>

                </textField>

            </band>

        </title>

        <pageHeader>

            <band height="50"  isSplitAllowed="true" >

            </band>

        </pageHeader>

        <columnHeader>

            <band height="30"  isSplitAllowed="true" >

                <staticText>

                    <reportElement

                        x="23"

                        y="8"

                        width="91"

                        height="17"

                        key="staticText-1"/>

                    <box></box>

                    <textElement>

                        <font fontName="华文行楷" pdfFontName="STSong-Light" pdfEncoding ="UniGB-UCS2-H"/>

                    </textElement>

                <text><![CDATA[姓名]]></text>

                </staticText>

            </band>

        </columnHeader>

        <detail>

            <band height="100"  isSplitAllowed="true" >

                <textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None"  hyperlinkTarget="Self" >

                    <reportElement

                        x="23"

                        y="15"

                        width="100"

                        height="18"

                        key="textField"/>

                    <box></box>

                    <textElement>

                        <font/>

                    </textElement>

                <textFieldExpression   class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>

                </textField>

            </band>

        </detail>

        <columnFooter>

            <band height="30"  isSplitAllowed="true" >

            </band>

        </columnFooter>

        <pageFooter>

            <band height="50"  isSplitAllowed="true" >

            </band>

        </pageFooter>

        <lastPageFooter>

            <band height="50"  isSplitAllowed="true" >

            </band>

        </lastPageFooter>

        <summary>

            <band height="50"  isSplitAllowed="true" >

            </band>

        </summary>

</jasperReport>