JasperReport报表傻瓜式文档

合集下载

JasperReport报表开发说明(深入浅出)

JasperReport报表开发说明(深入浅出)

1.报表制作流程实例:我们实现一个简单的JasperReports示例,展现其基本的开发、使用流程。

Jasper Studio是基于Eclipse的报表设计工具(不熟悉Eclipse的看官先去熟悉一下基本知识吧),默认工作区设置为当前用户主目录下的JaspersoftWorkspace文件夹,并且不可更改。

首先,我们创建一个报表工程,本例中命名为DemoProject,然后创建一张新的报表(File --> New–->Jasper Report),就会出现类似下图所示的窗口让我们选择一个模板。

此例我们选Coffee模板,然后点Next。

在接下来的页面里,我们给报表模板起个名字(Demo1.jrxml)并放在DemoProject的根目录下,然后点Next,于是进入了数据源选择界面:数据源是填充报表的关键,我们必须制定一个数据适配器(Data Adapter),此时我们有三种选择:1、选择“OneEmpty Record - Empty rows”,这样我们就可以专注于报表的设计,而暂时不指定数据源,创建完报表之后,我们随时可以制定别的数据源。

2、选择“SampleDB - Database JBDC Connection”,这是JaspersoftStudio安装时提供的一个示例数据库。

3、点击“New”按钮创建一个新的数据源。

这正是本例要采用的方式,我们将创建一个连接到本机MySql数据库的world的数据源。

首先点击“New”,在弹出的向导页中选择“Database JDBC Connection”,然后点“Next”弹出下图所示的页面:配置好基本的数据库连接信息,点击“Test”测试通过之后,一个数据源就配置好了,我们点击“Finish”结束配置。

初次配置MySql数据源需要在Driver Classpath页面指定MySql驱动包的路径:配置并选择数据适配器之后,我们需要指定数据查询的语句,该语句查询出的字段将直接用于报表中的数据字段。

JasperReport+iReport报表工具详细开发手册

JasperReport+iReport报表工具详细开发手册
3. 入门篇..............................................................................................................................................5
3.1. IREPORT 入门........................................................................................................................5 3.1.1. 常用工具.........................................................................................................................5 3.1.2. 设置数据源........................ห้องสมุดไป่ตู้............................................................................................7 3.1.3. 新建空报表.....................................................................................................................7 3.1.4. 设置查询 SQL ................................................................................................................7 3.1.5. 设计报表.........................................................................................................................8

jasperreports报表(实例)

jasperreports报表(实例)

jasperreports报表(实例)1.建立数据库联线。

2.由sql語法取出資料,准备好传入的 parameters。

3.將parameters及取出的資料傳入Jasper中。

會由 .jasper檔產生出 .jrprint 檔。

4.再由 .jrprint 檔產生出 .pdf的目的檔。

//建立连线方法public Connection createConnection(){Connection conn;try{String driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";String url="jdbc:microsoft:sqlserver://10.0.0.151:1433;DatabaseName=Northwind"; Class.forName(driver);conn = DriverManager.getConnection(url, "sa", "sa"); //建立连线conn.setAutoCommit(false);return conn;}catch(SQLException ex1){System.out.println("建立连线錯誤="+ex1.toString());}catch (ClassNotFoundException ex2){System.out.println("建立连线錯誤="+ex2.toString());}return null;}//关闭资料连线public void CloseConnect(Connection conn){try{mit();conn.setAutoCommit(true);conn.close();}catch(Exception e){System.out.println("连线关闭错误="+e.toString());}}//建立PDF輸出public void createPdfReport(){String fileName="";String strDate="";String sql="";//取得今天日期Calendar cal=Calendar.getInstance();cal.setTimeInMillis(System.currentTimeMillis());strDate=String.valueOf(cal.get(Calendar.YEAR))+"-";if(cal.get(Calendar.MONTH)<9)strDate+="0";strDate+=String.valueOf(cal.get(Calendar.MONTH)+1)+"-";if(cal.get(Calendar.DATE)<9)strDate+="0";strDate+=String.valueOf(cal.get(Calendar.DATE));Map parameters=new HashMap();parameters.put("rptToday",strDate); //傳入的parameters引數sql =" select CompanyName ,ContactName , ";sql+=" ContactTitle , City , Country ";sql+=" from Suppliers ";sql+=" where ContactTitle like '%Sales%' "; //在此試捉出與Sales有關sql+=" order by Country , ContactTitle ";Connection conn = this.createConnection(); //建立資料庫連線try {Statement stm = conn.createStatement();ResultSet rs = stm.executeQuery(sql);fileName = "D:\\iReport\\iReport-0.4.0\\Work\\TestiReport.jasper"; JasperFillManager.fillReportToFile(fileName,parameters, newJRResultSetDataSource(rs));fileName = "D:\\iReport\\iReport-0.4.0\\Work\\TestiReport.jrprint"; JasperExportManager.exportReportToPdfFile(fileName);}catch (Exception ex) {System.out.println("Error : "+ex.toString());}finally {CloseConnect(conn);conn = null;}}由createConnection、CloseConnect 及createPdfReport 这三个方法,即可产生出一個 PDF 档。

JasperReport详解_(1)

JasperReport详解_(1)

报表设计基础及JasperReort,JFreeChart简明教程摘要本文先从通用的角度定义了与报表相关的各种概念。

然后介绍了怎么应用JasperReport和Ireport设计报表,最后介绍了怎么使用JfreeChart生成图形报表。

文章中出现的很多概念和定义都出自作者自己的思考,没有通用性,在阅读时请不必深究它的准确性。

1、什么是报表,什么是报表应用程序1.1 什么是报表报表是数据统计结果的呈现。

常见的报表格式有表格、数据立方体(多维表)、曲线图、直方图、饼图等等,其中以表格最为常见。

总结各种报表的共同特征,可以这样来定义报表的结构。

一般来说,Report = Title + Page(s) + Report FooterPages(s)表示一个报表可能有一页或多页Page = PageHeader + Content + PageFooterContent则代表真正的数据,它一般由若干列和若干行组成。

Content = ColumnHeader + Row(s) + ColumnFooter一个报表的结构可以表示为下图所示的树形:这棵树中的所有叶结点,就构成了报表的实体。

一个叶结点一般称作一个Band,从上到下排列,一个Report的组成如下图所示:下图是一个报表的例子。

它有3页。

1.2 计算机上的报表与报表应用程序可以利用计算机处理数据和界面设计的功能来生成、展示报表。

计算机上的报表的主要特点是动态化。

已经有各种各样的计算机报表设计工具,它们一般提供格式设计和数据填充等功能。

广义地讲,EXCEL、WORD、甚至写字板都可以算作报表设计工具,但是它们没有定义专门的报表结构,也无法实现报表格式和报表数据的动态决定,无法实现计算机报表的“动态化”特性,也就是说不能用它来开发“报表应用程序”,所以它们一般不能视为报表设计工具。

而所谓报表应用程序,指的是能够在运行时动态地决定报表格式和报表数据的应用程序,它必须要实现数据格式和数据内容之间的分离,也就是报表和数据源之间的分离。

jasperreport使用

jasperreport使用

Jasperreport基本介绍Jasperreport与Ireport介绍Jasperreport是报表打印工具,支持pdf、csv多种格式的报表打印。

JasperReport是一个开源的工具包,将JasperReport包加入到项目的classpath中即可开始使用JasperReport包了,从java程序中通过调用包中的类对jrxml文件进行操作,可以完成报表的编译、显示、输出等工作;Jasperreport的报表生成过程,如下图。

如上图所示。

报表模板有两种制作方式:1)利用ireport图形编辑工具,iReport是报表编辑图形工具,编辑完成后输出jrxml文件(XML格式),生成jasper文件(以.jasper结尾);2)直接利用java代码编译生成jasper文件(以.jasper结尾)。

最终要使用的是编译后的*.jasper文件。

Jasperreport支持多种数据源,包括xml、数据库、JavaBean等多种数据源。

Jasperreport基本类net.sf.jasperreports.engine.JasperCompileManager类。

使用这个类的几个静态方法即可完成对报表的编译工作(具体参见api文档)编译完成后可以JasperCompileManager有两种处理方式:1> 返回一个JasperReport对象2> 在.jrxml文件所在的目录生成一个.jasper文件这两种方式是由程序员自己选择的。

不过我比较倾向使用.jasper文件,毕竟报表的结构不是每天都在改动,所以每次重新编译报表并不是很划算。

●net.sf.jasperreports.engine.JasperFillManager类这个类的作用是用数据填充报表。

它可以使用JasperReport对象也可以使用。

jasper文件做为报表模板。

它同样有2中处理方式:1> 返回一个JsaperPrint对象。

jasperreports中文教程之报表参数

jasperreports中文教程之报表参数
dataBeanList.add(produce("Manisha", "India")); dataBeanList.add(produce("Dennis Ritchie", "USA")); dataBeanList.add(produce("V.Anand", "India")); dataBeanList.add(produce("Shrinath", "California"));
</title>
<columnHeader>
<band height="23">
<staticText>
<reportElement mode="Opaque" x="0" y="3"
width="535"
height="15"
backcolor="#70A9A9" />
<box>
<bottomPen lineWidth="1.0"
try { JasperFillManager.fillReportToFile( sourceFileName, parameters, beanColDataSource);
} catch (JRException e) { e.printStackTrace();
} } } POJO 文件的内 容 C:\tools\jasperreports-5.0.1\test\src\com\yiibai\DataBean.java 如下所 示:

JasperReport-查询数据库生成动态的报表

JasperReport-查询数据库生成动态的报表

JasperReport-查询数据库⽣成动态的报表1、使⽤iReport建⽴模版1<?xml version="1.0" encoding="UTF-8"?>2<jasperReport xmlns="/jasperreports" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/jasperreports /x 3<property name="ireport.zoom" value="3.0"/>4<property name="ireport.x" value="0"/>5<property name="ireport.y" value="0"/>6<subDataset name="New Dataset 1" uuid="d4c4aea0-d329-4ad0-a5c1-cc228958ac9b">7<parameter name="id" class="ng.String"/>8<queryString>9<![CDATA[select province as province, city as city,country as country from d_doctor where id = $P{id} or id = ${id} + 4]]>10</queryString>11<field name="province" class="ng.String"/>12<field name="city" class="ng.String"/>13<field name="country" class="ng.String"/>14</subDataset>15<parameter name="id" class="ng.String"/>16<queryString>17<![CDATA[select * from d_doctor where id = $P{id} or id = $P{id} + 4]]>18</queryString>19<field name="id" class="ng.String">20<fieldDescription><![CDATA[id]]></fieldDescription>21</field>22<field name="province" class="ng.String">23<fieldDescription><![CDATA[province]]></fieldDescription>24</field>25<field name="city" class="ng.String">26<fieldDescription><![CDATA[city]]></fieldDescription>27</field>28<field name="country" class="ng.String">29<fieldDescription><![CDATA[country]]></fieldDescription>30</field>31<background>32<band splitType="Stretch"/>33</background>34<title>35<band splitType="Stretch"/>36</title>37<pageHeader>38<band height="70" splitType="Stretch">39<line>40<reportElement x="2" y="56" width="570" height="1" uuid="2c31ac2f-b3ee-4a13-b817-8f59d57494b4"/>41</line>42<staticText>43<reportElement x="3" y="57" width="249" height="12" uuid="a302e579-9117-466f-b498-9e0637079612"/>44<textElement textAlignment="Center">45<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>46</textElement>47<text><![CDATA[省份号]]></text>48</staticText>49<line>50<reportElement x="2" y="69" width="570" height="1" uuid="0bb82c6b-4cf9-4abe-95d4-d9aa08c86729"/>51</line>52<line>53<reportElement x="463" y="56" width="1" height="13" uuid="75ff2c78-c753-4913-b656-e807371b64ca"/>54</line>55<line>56<reportElement x="252" y="56" width="1" height="13" uuid="21e66f87-54b5-4f4a-ab44-d158db895c6a"/>57</line>58<line>59<reportElement x="2" y="57" width="1" height="12" uuid="01c3fa5e-1cb0-4df4-a4ee-d9f3d617eb1c"/>60</line>61<staticText>62<reportElement x="254" y="57" width="40" height="12" uuid="a859627c-6381-46f2-9868-d67b3196ab28"/>63<textElement textAlignment="Center">64<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>65</textElement>66<text><![CDATA[城市号]]></text>67</staticText>68<line>69<reportElement x="296" y="56" width="1" height="13" uuid="dcd28325-01fd-495b-8d51-a12a4f25a98b"/>70</line>71<staticText>72<reportElement x="340" y="57" width="60" height="12" uuid="b6908079-bc51-4190-a54c-de53c8f9c27f"/>73<textElement textAlignment="Center" verticalAlignment="Top">74<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>75</textElement>76<text><![CDATA[单价]]></text>77</staticText>78<line>79<reportElement x="338" y="57" width="1" height="12" uuid="b52c8f2a-54c5-4075-ad72-6714fa977e1a"/>80</line>81<staticText>82<reportElement x="403" y="57" width="60" height="12" uuid="d10c2fcb-3b5f-4b0b-bb80-194aa4260e46"/>83<textElement textAlignment="Center">84<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>85</textElement>86<text><![CDATA[优惠⽅式]]></text>87</staticText>88<line>89<reportElement x="401" y="57" width="1" height="12" uuid="bd6b257f-b1c0-4ed6-a1cf-9e5c26d5c566"/>90</line>91<staticText>92<reportElement x="526" y="57" width="46" height="12" uuid="972638b9-6e6e-44d0-af9f-e6c446ffae2f"/>93<textElement textAlignment="Center">94<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>95</textElement>96<text><![CDATA[备注]]></text>97</staticText>98<staticText>99<reportElement x="3" y="18" width="41" height="12" uuid="8b205b2f-4151-4ab4-8f8a-763f25ec80e4"/>100<textElement>101<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>102</textElement>103<text><![CDATA[医⽣编号]]></text>104</staticText>105<staticText>106<reportElement x="208" y="18" width="63" height="12" uuid="f024c743-13bc-4ec5-a3d1-07ac2e0b37cc"/>107<textElement>108<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>109</textElement>110<text><![CDATA[订单⾦额]]></text>111</staticText>112<staticText>113<reportElement x="3" y="30" width="41" height="12" uuid="5f6a1789-6546-457f-86ed-d2e8a2e13d5b"/>114<textElement>115<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>116</textElement>117<text><![CDATA[下单时间]]></text>120<reportElement x="3" y="42" width="41" height="12" uuid="0c8f51b5-7948-4990-b5e8-20e5c4a0d50b"/>121<textElement>122<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>123</textElement>124<text><![CDATA[门店名称]]></text>125</staticText>126<textField>127<reportElement x="3" y="0" width="569" height="17" uuid="92ba8587-c49b-42c2-b59c-f826c1748283"/>128<textElement textAlignment="Center" markup="none">129<font fontName="新宋体" size="12" isBold="true" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> 130</textElement>131</textField>132<textField>133<reportElement x="51" y="18" width="151" height="12" uuid="c9b3dc52-d1ff-47f9-a2e4-5ebf01d05675"/>134<textElement>135<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>136</textElement>137<textFieldExpression><![CDATA[$P{id}]]></textFieldExpression>138</textField>139<textField>140<reportElement x="273" y="18" width="125" height="12" uuid="c24f24dd-5bea-4866-8639-79f9871560a8"/>141<textElement>142<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>143</textElement>144</textField>145<textField>146<reportElement x="51" y="30" width="151" height="12" uuid="33dd35af-3c7b-45ce-a770-7b5191eef598"/>147<textElement>148<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>149</textElement>150</textField>151<textField>152<reportElement x="51" y="42" width="151" height="12" uuid="dc0495d6-be69-48ff-826a-4ba3cf47d037"/>153<textElement>154<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>155</textElement>156</textField>157<textField>158<reportElement x="208" y="42" width="63" height="12" uuid="c48ffb0e-9285-499f-82ab-5aeb0d98bbf6"/>159<textElement>160<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>161</textElement>162</textField>163<staticText>164<reportElement x="413" y="18" width="41" height="12" uuid="0abead11-fc66-46a9-826b-6e59629d35d7"/>165<textElement>166<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>167</textElement>168<text><![CDATA[⽀付⽅式]]></text>169</staticText>170<textField>171<reportElement x="456" y="18" width="116" height="12" uuid="e9b0d297-f8a6-437d-9091-968d7f22a62d"/>172<textElement>173<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>174</textElement>175<textFieldExpression><![CDATA[]]></textFieldExpression>176</textField>177<staticText>178<reportElement x="208" y="30" width="63" height="12" uuid="85d7941f-0194-4737-9638-d88d059d0904"/>179<textElement>180<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>181</textElement>182<text><![CDATA[送货员⼯]]></text>183</staticText>184<textField>185<reportElement x="273" y="30" width="125" height="12" uuid="811eb5e5-582c-4e3a-bf26-723a67770669"/>186<textElement>187<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>188</textElement>189</textField>190<staticText>191<reportElement x="297" y="57" width="40" height="12" uuid="d5bac62f-958e-4142-b4ae-9475f7cbf6d0"/>192<textElement textAlignment="Center">193<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>194</textElement>195<text><![CDATA[县镇号]]></text>196</staticText>197<line>198<reportElement x="572" y="56" width="1" height="14" uuid="eeb1072f-a162-4906-a943-41eef70d307b"/>199</line>200<textField>201<reportElement x="271" y="42" width="301" height="12" uuid="7a13580f-791a-470b-a5e6-3f0b5bab9e04"/>202<textElement>203<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>204</textElement>205</textField>206<line>207<reportElement x="525" y="57" width="1" height="12" uuid="8f2c02b6-d3ab-4ae5-8b2e-f0d2b11b4243"/>208</line>209<staticText>210<reportElement x="465" y="57" width="60" height="12" uuid="141e20d9-4803-4afa-a1eb-45bec248fe50"/>211<textElement textAlignment="Center">212<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>213</textElement>214<text><![CDATA[⼩计]]></text>215</staticText>216</band>217</pageHeader>218<detail>219<band height="13" splitType="Stretch">220<line>221<reportElement x="2" y="-1" width="1" height="13" uuid="acf19d0f-20e1-4193-adec-2df290300480"/>222</line>223<textField>224<reportElement x="254" y="0" width="40" height="12" uuid="4409e74b-a023-455c-95c5-883103050a1c"/>225<textElement textAlignment="Center">226<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>227</textElement>228<textFieldExpression><![CDATA[$F{city}]]></textFieldExpression>229</textField>230<textField>231<reportElement x="297" y="0" width="40" height="12" uuid="edd7680d-fdbe-4e92-b6f4-c238a2b4c739"/>232<textElement textAlignment="Center">233<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>234</textElement>235<textFieldExpression><![CDATA[$F{country}]]></textFieldExpression>236</textField>237<textField>238<reportElement x="340" y="0" width="60" height="12" uuid="61ad7ab8-62a0-43cb-8135-54ade9f98e93"/>239<textElement textAlignment="Center">240<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/>243<line>244<reportElement x="338" y="0" width="1" height="12" uuid="f0d7806d-4302-4c41-aa31-1a31cdd25365"/>245</line>246<textField>247<reportElement x="403" y="0" width="60" height="12" uuid="8895c53f-742c-45d4-ab43-ec08daf00d4f"/>248<textElement textAlignment="Center">249<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> 250</textElement>251<textFieldExpression><![CDATA[]]></textFieldExpression>252</textField>253<line>254<reportElement x="401" y="0" width="1" height="12" uuid="9efa8bc0-851f-4374-a68b-f5c13fea0595"/>255</line>256<textField>257<reportElement x="465" y="0" width="60" height="12" uuid="2ee6ccc9-0954-40ba-9843-0847832180d0"/>258<textElement textAlignment="Center">259<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> 260</textElement>261<textFieldExpression><![CDATA[]]></textFieldExpression>262</textField>263<line>264<reportElement x="2" y="12" width="571" height="1" uuid="5930b04c-3f37-4225-ad65-6b5291bb9ffa"/>265</line>266<textField>267<reportElement x="6" y="0" width="15" height="12" uuid="28829cd2-12fb-4472-b351-a33a7ce41dce"/>268<textElement>269<font fontName="新宋体" size="8"/>270</textElement>271</textField>272<line>273<reportElement x="572" y="0" width="1" height="12" uuid="9b737c67-28cf-4cae-9424-b744a7cecacd"/>274</line>275<textField>276<reportElement x="21" y="0" width="231" height="12" uuid="992e0d0c-75a1-43b3-949f-16d03cdcdf71"/>277<textElement>278<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> 279</textElement>280<textFieldExpression><![CDATA[$F{province}]]></textFieldExpression>281</textField>282<line>283<reportElement x="252" y="0" width="1" height="12" uuid="0327fe36-18b9-4018-bf8a-39a87aa68abc"/>284</line>285<line>286<reportElement x="296" y="0" width="1" height="12" uuid="12556171-4ec5-4d5c-a773-7605d6809253"/>287</line>288<line>289<reportElement x="525" y="0" width="1" height="12" uuid="7625677e-4f2c-4629-8fcb-5c9bf5348c76"/>290</line>291<line>292<reportElement x="463" y="0" width="1" height="12" uuid="6439e322-33b4-46e8-9fc1-1fd80d068c42"/>293</line>294</band>295</detail>296<pageFooter>297<band/>298</pageFooter>299<summary>300<band height="15">301<line>302<reportElement x="2" y="13" width="571" height="1" uuid="de33dda4-b0e9-4fc1-a5ac-35c6cb31d2a9"/>303</line>304<staticText>305<reportElement x="6" y="1" width="24" height="12" uuid="1ba3c283-f943-49b5-b50a-c474e8c74e3b"/>306<textElement>307<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> 308</textElement>309<text><![CDATA[合计:]]></text>310</staticText>311<staticText>312<reportElement x="214" y="1" width="57" height="12" uuid="b81742a8-df49-4b2d-aaef-c52c12ba29c3"/>313<textElement>314<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> 315</textElement>316<text><![CDATA[ 减免⾦额合计:]]></text>317</staticText>318<staticText>319<reportElement x="331" y="1" width="58" height="12" uuid="cf8d16f8-35da-4226-b123-7cd40b0357b8"/>320<textElement>321<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> 322</textElement>323<text><![CDATA[实际⾦额合计:]]></text>324</staticText>325<textField>326<reportElement x="33" y="1" width="175" height="12" uuid="4774c656-fefe-4f46-b003-1764227080de"/>327<textElement>328<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> 329</textElement>330</textField>331<textField>332<reportElement x="271" y="1" width="60" height="12" uuid="43a013d2-b695-4489-8b03-3e56e8d2d405"/>333<textElement>334<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> 335</textElement>336</textField>337<textField>338<reportElement x="390" y="1" width="74" height="12" uuid="1c4b9418-0769-4eb5-8d4a-14c941580d4c"/>339<textElement>340<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> 341</textElement>342<textFieldExpression><![CDATA[]]></textFieldExpression>343</textField>344<staticText>345<reportElement x="465" y="1" width="36" height="12" uuid="9259c923-872d-4277-891c-0139b6d3b056"/>346<textElement>347<font fontName="新宋体" size="8" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> 348</textElement>349<text><![CDATA[客户签名:]]></text>350</staticText>351<line>352<reportElement x="2" y="-1" width="1" height="14" uuid="9287bb3c-6fc9-403f-ba48-17d07708ad8e"/>353</line>354<line>355<reportElement x="2" y="0" width="570" height="1" uuid="a8ee48a3-5a8e-4605-a0d6-e1b15f483d8e"/>356</line>357<line>358<reportElement x="572" y="0" width="1" height="13" uuid="fb41ac72-a0ce-4a49-9df7-9570d4a9bb72"/>359</line>360</band>361</summary>362</jasperReport>2.直接在iReport中把上⾯的JRXML⽂件编译成JASPER⽂件,⽅便在WEB⾥⾯的调⽤;3、函数中调⽤,即可输出符合条件的报表1package com.thinkgem.jeesite.test;23import java.io.FileInputStream;4import java.io.FileOutputStream;5import java.sql.DriverManager;6import java.util.HashMap;7import java.util.Map;89import com.mysql.jdbc.Connection;1011import net.sf.jasperreports.engine.JasperPrint;12import net.sf.jasperreports.engine.JasperReport;13import net.sf.jasperreports.engine.JasperRunManager;1415//@RunWith(SpringJUnit4ClassRunner.class) // 表⽰继承了SpringJUnit4ClassRunner类16//@ContextConfiguration(locations = { "classpath:spring-mybatis.xml" })17public class Test18 {19public static void main(String[] args)20 {21 JasperReport jasperReport;22 JasperPrint jasperPrint;23 System.out.println("1111");24// jasperReport =25// pileReport("mcOrderReport.jrxml");26 System.out.println("2222");27// jasperReport.setProperty("billAmount", "102");28// JRBeanCollectionDataSource dataSource = new29// JRBeanCollectionDataSource();30 Map map = new HashMap();31 map.put("id", 102);// 报表主参数,直接传值!3233// jasperPrint = JasperFillManager.fillReport(jasperReport, map, new34// JREmptyDataSource());35// JasperExportManager.exportReportToPdfFile(jasperPrint,36// "forms/1.pdf");37// JasperExportManager.exportReportToHtmlFile(jasperPrint,38// "forms/1.html");3940 Connection connection = null;41try42 {43// 获得输出流44 FileOutputStream outputStream = new FileOutputStream("forms/2.pdf");45// 获得输⼊流,⼀定要知道你的⽂件的地⽅46 FileInputStream is = new FileInputStream("mcOrderReport.jasper");47// 连结JDBC48 Class.forName("com.mysql.jdbc.Driver");49 connection = (Connection) DriverManager.getConnection(50 "jdbc:mysql://123.207.229.247:3306/palm_doctor?useUnicode=true&characterEncoding=utf-8", "root",51 "root");// 建⽴数据库连接52 JasperRunManager.runReportToPdfStream(is, outputStream, map, connection);5354 outputStream.flush();55 outputStream.close();56 connection.close();57 } catch (Exception e)58 {59 e.printStackTrace();60 }61 }62 }。

Jasperreports使用总结

Jasperreports使用总结

总结本文主要是基于我在项目开发中,使用jasperreports+ireport制作报表的一个归纳,里面对一些问题的解决方法,都经本人使用验证过,可以作为参考。

1.制作报表制作报表所必须的jar包,如图:只阐述要点部分,细节请参考其他文档,网络上有很详细的说明,由于我在项目中使用的数据源大部分是JavaBean,所以以该数据源为例:1.1使用JavaBean数据源制作简单报表(1)写两个Java 类作为数据源a. DailySales.java 源代码,实体类package com.ireport.test;import java.io.Serializable;public class DailySales implements Serializable {private static final long serialVersionUID = 1L;private String productNo;private String productName;private int number;private int money;private int id;......//省略了构造函数与getter 与 setter 方法b. DailySalesFactory.java 源代码,提供实体数组的工厂package com.ireport.test;import java.util.Arrays;import java.util.Collection;/*** 简单工厂类,取得测试数据*/public class DailySalesFactory {private static DailySales[] data = {new DailySales( " 货号 1" , " 物品1 " , 1,1000),new DailySales( " 货号 2" , " 物品 2" , 2,2000),new DailySales( " 货号 3" , " 物品 3" , 3,3000),new DailySales( " 货号 4" , " 物品 4" , 4,4000),new DailySales( " 货号 5" , " 物品 5" , 5,5000),new DailySales( " 货号 6" , " 物品 6" , 6,6000),new DailySales( " 货号 7" , " 物品 7" , 7,7000),new DailySales( " 货号 8" , " 物品 8" , 8,8000),new DailySales( " 货号 9" , " 物品 9" , 9,9000),new DailySales( " 货号 10" , " 物品 10" , 10,10000) };public static Object[] getBeanArray() {return data;}//必须是静态的,返回必须是数组public static Collection<DailySales> getBeanCollection() { return Arrays.asList(data);}}(2)把以上两个class 打成 jar 包,放入 iReport 安装目录下 lib文件夹(最好是手动将该jar包载入ireport,该jar包只在制作模板时供测试用)(3)启动iReport,制作模板a.填写数据源属性为数据源填写一个名称:TestJavaBean,工厂类:com.ireport.test.DailySalesFactory,静态工厂方法:getBeanCollection填写完整后,可测试一下是否可以连接。

SpringBoot集成JasperReports生成PDF文档

SpringBoot集成JasperReports生成PDF文档

SpringBoot集成JasperReports⽣成PDF⽂档由于⼯作需要,要实现后端根据模板动态填充数据⽣成PDF⽂档,通过技术选型,使⽤Ireport5.6来设计模板,结合JasperReports5.6⼯具库来调⽤渲染⽣成PDF⽂档。

本⼈⽂采⽋缺,写作能⼒差,下⾯粗略的介绍其使⽤步骤,若有不对的地⽅,望⼤家莫喷,谢谢!⼀、使⽤Ireport designer 5.6设计模板ireport的使⽤由于时间关系不便多说,设计好之后,将其进⾏编译⽣成jasper⽂件,然后将其拷贝放置于项⽬某个⽬录下,以供访问获取该⽂件。

⼆、在Spring Boot项⽬中引⼊依赖包<!-- jasperreports--><dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports</artifactId><version>6.0.0</version></dependency><dependency><groupId>net.sf.jasperreports</groupId><artifactId>jasperreports-fonts</artifactId><version>6.0.0</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.0</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-pdfa</artifactId><version>5.5.0</version></dependency><dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency><dependency><groupId>org.codehaus.groovy</groupId><artifactId>groovy-all</artifactId><version>2.4.11</version></dependency>三、⾃定义spring mvc通⽤导出PDF视图类PdfReportView(继承⾃AbstractView )import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import .URLEncoder;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.sf.jasperreports.engine.JRDataSource;import net.sf.jasperreports.engine.JREmptyDataSource;import net.sf.jasperreports.engine.JasperExportManager;import net.sf.jasperreports.engine.JasperFillManager;import net.sf.jasperreports.engine.JasperPrint;import org.springframework.web.servlet.view.AbstractView;public class PdfReportView extends AbstractView {private static final String CONTENT_TYPE = "application/pdf";private String templatePath;private String exportFileName;public PdfReportView(String templatePath, String exportFileName) {this.templatePath = templatePath;if (exportFileName != null) {try {exportFileName = URLEncoder.encode(exportFileName, "UTF-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}}this.exportFileName = exportFileName;setContentType(CONTENT_TYPE);}protected Map<String, Object> getParamsMap(Map<String, Object> map) throws Exception {Map<String, Object> params = new HashMap<>();for (String key : map.keySet()) {Object val = map.get(key);if (val instanceof JRDataSource) {continue;} else {params.put(key, val);}}return params;}protected JRDataSource getDataSource(Map<String, Object> map) throws Exception {for (String key : map.keySet()) {Object val = map.get(key);if (val instanceof JRDataSource) {return (JRDataSource) map.get(key);}}return new JREmptyDataSource();}@Overrideprotected void renderMergedOutputModel(Map<String, Object> map,HttpServletRequest request, HttpServletResponse response)throws Exception {response.setCharacterEncoding("utf-8");response.setContentType(getContentType());//response.setContentType("application/octet-stream");response.setHeader("content-disposition", "attachment;filename=" + exportFileName + ".pdf");try (InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(templatePath)) {try (OutputStream ouputStream = response.getOutputStream()) {JasperPrint jasperPrint = JasperFillManager.fillReport(inputStream, getParamsMap(map), getDataSource(map));JasperExportManager.exportReportToPdfStream(jasperPrint, ouputStream);} catch (IOException e) {e.printStackTrace();}} catch (IOException e) {e.printStackTrace();}}}四、spring mvc调⽤案例Map<String, Object> map = new HashMap<>();List<Map<String,Object>> dataList = ....map.put("users", new JRMapCollectionDataSource(dataList));map.put("title", "报表名称");return new ModelAndView(new PdfReportView("templates/report/resume.jasper", "professors"),map);五、解决linux下宋体渲染问题1、在src/main/resources路径下新建jasperreports_extension.properties⽂件,内容如下:net.sf.jasperreports.awt.ignore.missing.font=truenet.sf.jasperreports.extension.registry.factory.simple.font.families=net.sf.jasperreports.engine.fonts.SimpleFontExtensionsRegistryFactory net.sf.jasperreports.extension.simple.font.families.dejavu=fonts/fonts.xml2、在src/main/resources路径下新建fonts⽬录,并新建fonts.xml⽂件,内容如下:<?xml version="1.0" encoding="UTF-8"?><fontFamilies><fontFamily name="DejaVu Sans"><normal>net/sf/jasperreports/fonts/dejavu/DejaVuSans.ttf</normal><bold>net/sf/jasperreports/fonts/dejavu/DejaVuSans-Bold.ttf</bold><italic>net/sf/jasperreports/fonts/dejavu/DejaVuSans-Oblique.ttf</italic><boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSans-BoldOblique.ttf</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'DejaVu Sans', Arial, Helvetica, sans-serif</export><export key="net.sf.jasperreports.xhtml">'DejaVu Sans', Arial, Helvetica, sans-serif</export></exportFonts><!--<locales><locale>en_US</locale><locale>de_DE</locale></locales>--></fontFamily><fontFamily name="DejaVu Serif"><normal>net/sf/jasperreports/fonts/dejavu/DejaVuSerif.ttf</normal><bold>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Bold.ttf</bold><italic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-Italic.ttf</italic><boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSerif-BoldItalic.ttf</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'DejaVu Serif', 'Times New Roman', Times, serif</export><export key="net.sf.jasperreports.xhtml">'DejaVu Serif', 'Times New Roman', Times, serif</export></exportFonts></fontFamily><fontFamily name="DejaVu Sans Mono"><normal>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono.ttf</normal><bold>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-Bold.ttf</bold><italic>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-Oblique.ttf</italic><boldItalic>net/sf/jasperreports/fonts/dejavu/DejaVuSansMono-BoldOblique.ttf</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> <export key="net.sf.jasperreports.xhtml">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> </exportFonts></fontFamily><fontFamily name="SansSerif"><exportFonts><export key="net.sf.jasperreports.html">'DejaVu Sans', Arial, Helvetica, sans-serif</export><export key="net.sf.jasperreports.xhtml">'DejaVu Sans', Arial, Helvetica, sans-serif</export></exportFonts></fontFamily><fontFamily name="Serif"><exportFonts><export key="net.sf.jasperreports.html">'DejaVu Serif', 'Times New Roman', Times, serif</export><export key="net.sf.jasperreports.xhtml">'DejaVu Serif', 'Times New Roman', Times, serif</export></exportFonts></fontFamily><fontFamily name="Monospaced"><exportFonts><export key="net.sf.jasperreports.html">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> <export key="net.sf.jasperreports.xhtml">'DejaVu Sans Mono', 'Courier New', Courier, monospace</export> </exportFonts></fontFamily><fontFamily name="宋体"><normal>fonts/simsun.ttf</normal><bold>fonts/simsun.ttf</bold><italic>fonts/simsun.ttf</italic><boldItalic>fonts/simsun.ttf</boldItalic><pdfEncoding>Identity-H</pdfEncoding><pdfEmbedded>true</pdfEmbedded><exportFonts><export key="net.sf.jasperreports.html">'宋体', Arial, Helvetica, sans-serif</export><export key="net.sf.jasperreports.xhtml">'宋体', Arial, Helvetica, sans-serif</export></exportFonts></fontFamily></fontFamilies>3、在src/main/resources/fonts⽬录放⼊宋体字体⽂件 simsun.ttf。

jasperreports中文入门教程之编译报表设计

jasperreports中文入门教程之编译报表设计

jasperreports中文入门教程之编译报表设计我们在前面的章节中产生的JasperReport模板(JRXML文件)。

这个文件不能直接用于生成报告。

它必须被编译成JasperReport的“本地二进制"格式,称为Jasperfile。

在编制我们把JasperDesign对象转换成JasperReport的对象:接口net.sf.jasperreports.engine.design.JRCompiler编译过程中起着核心的一部分。

这个接口有根据用于报表表达式语言,它可以只要编译器可以实现在运行时计算它被用Java编写的,Groovy,JavaScript的或任何其他脚本语言的几个实现。

我们可以通过以下两种方式编译JRXML文件:1.提供编程编译。

2.编译通过ANT任务。

JRXML提供编程编译JasperReports的API提供了一个门面类net.sf.jasperreports.engine.JasperCompileManager用于编译JasperReport。

这个类包含几个公共静态方法编制的报告模板。

模板的源可以从文件,输入流,内存中的对象。

该jrxml文件(jasper_report_template.jrxml)的内容如下。

它被保存在目录C:\tools\jasperreports-5.0.1\test:<queryString><![CDATA[]]></queryString><field name="country"class="ng.String"><fieldDescription><![CDATA[country]]></fieldDescription> </field><field name="name"class="ng.String"><fieldDescription><![CDATA[name]]></fieldDescription> </field><columnHeader><band height="23"><staticText><reportElement mode="Opaque"x="0"y="3"width="535"height="15"backcolor="#70A9A9"/><box><bottomPen lineWidth="1.0"lineColor="#CCCCCC"/> </box><textElement/><text><![CDATA[]]></text></staticText><staticText><reportElement x="414"y="3"width="121"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font isBold="true"/></textElement><text><![CDATA[Country]]></text></staticText><staticText><reportElement x="0"y="3"width="136"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font isBold="true"/></textElement><text><![CDATA[Name]]></text></staticText></band></columnHeader><detail><band height="16"><staticText><reportElement mode="Opaque"x="0"y="0"width="535"height="14"backcolor="#E5ECF9"/><box><bottomPen lineWidth="0.25"lineColor="#CCCCCC"/> </box><textElement/><text><![CDATA[]]></text></staticText><textField><reportElement x="414"y="0"width="121"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"><font size="9"/></textElement><textFieldExpression class="ng.String"><![CDATA[$F{country}]]></textFieldExpression></textField><textField><reportElement x="0"y="0"width="136"height="15"/><textElement textAlignment="Center"verticalAlignment="Middle"/><textFieldExpression class="ng.String"><![CDATA[$F{name}]]></textFieldExpression></textField></band></detail></jasperReport>下面的代码演示了上述jasper_report_template.jrxml文件的编译。

jasperreports使用示例

jasperreports使用示例
exporter.setParameter(
JRXlsExporterParameter.IS_WHITE_PAGE_BACKGROUND,
Boolean.FALSE);// 显示边框
exporter.exportReport();
byte[] bytes = oStream.toByteArray();
ServletOutputStream ouputStream = response
.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
parameters.put("Name", Name);
try {
// fill
JasperPrint jasperPrint = JasperFillManager.fillReport(exe_rpt
.getPath(), parameters, conn);
if (bytes != null && bytes.length > 0) {
response.reset();
response.setContentType("application/vnd.ms-excel");
response.setContentLength(bytes.length);
一。安装ireport,到iReport的官方网站:/去下载。
二。安装完后制作report模板文件:
1.新建一个文件:档案-->开启新档

JasperReport报表使用方法

JasperReport报表使用方法
Java代码 收藏代码
public List<Map> getResultList(List<DrivingHistoryDataVO> dataList) {
List<Map> returnList = new ArrayList<Map>();
// 保证记录顺序不变,使用TreeMap
第四部执行编译成jasper文件
1、首先,在用iReport设计报表时将要显示中文数据的地方的属性设置如下:
Font name: 宋体 (中文字体)
PDF font name: STSong-Light
PDF Encoding: UniGB-UCS2-H(Chinese Siplified)
jrxml编译成jasper文件的步骤:
第一步:建立好java实体类(pojo)
第二步:将建立好的java类达成jar包
(此处一定要记得配置classpath读取jar文件)
第三步:设置iRport数据源(javaBeanDataSource),输入完整的全类名(包括包名)
先定义一个功能需求,然后我们展开说明。一个车辆行驶数据分析系统中需要实时获取行驶数据,这需要车载设备来实现。数据上传存储在Web端的数据库中,我们需要从数据库中获取数据来显示内容。
使用JavaBean作为数据源,首先我们要扩展JasperReport的数据源。实现方法很简单,我们定义一个类去实现net.sf.jasperreports.engine.JRDataSource接口即可,覆盖其中的方法。下面给出一个示例。
而问题又出现了,如果这两个字段自动换行了,那么必然把一行上的其他元素都给撑大了,那么还需要对其他元素进行设置。选中其他的所有元素,在属性面板的Stretch Type中选择Relative to Tallest Object就可以自适应到最高换行的元素了,显示效果就正常了。

Ireport+JasperReport制作报表二-JasperReport编译模板

Ireport+JasperReport制作报表二-JasperReport编译模板

Ireport+JasperReport制作报表⼆-JasperReport编译模板1. JasperFillManager:填充管理,主要的⽅法如下:fillReport:填充报表,多态函数,返回值为JasperReport,参数为报表和报表参数Map,参数Map⾥包括Parameters、DataSource等,如果是从数据库取数据还要有connection参数;fillReportToFile:填充报表⽣成⽂件,多态函数,⽆返回值,参数为源⽂件、⽬标⽂件和报表参数Map。

2. JasperExportManager:导出管理,主要⽅法如下:exportReportToPdfFile:导出PDF⽂件,多态函数,提供⼏种⽅式:从源⽂件导出到⽬标⽂件、从JasperPrint导出到⽬标⽂件、从源⽂件流导出⽬标⽂件,如果枚举的话有9种⽅式,⽆返回值。

exportReportToHtmlFile:导出HTML⽂件,同上exportReportToXmlFile:导出XML⽂件,同上3. JasperPrintManager:打印管理,主要⽅法如下:printReportToPdfFile:把报表导出成PDF⽂件,然后⾃⼰打印;printReport:直接打印报表,多态函数,提供⽂件名、⽂件流或JasperReport直接启动打印,返回值true/false;printPages:同printReport,但参数增加了页数选择。

4. JasperCompileManager:编译管理,把.jrxml⽂件编译成.jasper⽂件,主要⽤到的⽅法只有⼀个,compileReportToFile:多态函数,参数.jrxml⽂件名或者JasperDesign、InputStream和输出.jasper⽂件名5. JRRewindableDataSource:定义⼀个可以往回查看记录的⽅式的接⼝,主要⽅法是moveFirst移动到第⼀⾏,是JavaBean和TableModel等数据源的祖先。

iReportjasperReports生成表格

iReportjasperReports生成表格

iReportjasperReports⽣成表格使⽤iReport⽣成表格⼀环境:iReport-5.6.0 JDK71.注意,iReport的最新版本⽬前还不⽀持JDK8,如果项⽬⼯程已经配置了JDK8,那也不⽤去修改环境变量和⼯程的配置,只要修改iReport的配置⽂件即可。

找到etc路径下的ireport.conf,将以下⼀⾏:#jdkhome="/path/to/jdk"改为jdk7的路径,如:jdkhome="C:\Program Files\Java\jdk1.7.0_67"这样iReport就可以顺利启动了。

2.打开iReport有⼏个⽐较常⽤的⼯具栏:Window-->Palette 和 Properties,这两个可以⽤来处理元素和样式,是常⽤的两个⼯具栏⼆使⽤过程1. 先介绍⼀下最终希望⽣成的效果:2. 看⼀下java端的代码:最终iReport要⽤到的数据是List<OceanRatesEmailMessage>这样的lists,每个list包含⼀个title以及对应的label和valuepublic class OceanRatesEmailMessage {private String title; //对应A. Backendground Information这样的titleprivate List<OceanRatesDetails> oceanRatesDetails;......}public class OceanRatesDetails {private String label; //labelprivate Object value; //valueprivate Integer combineColumns; //控制value是分成⼀⾏还是两⾏private boolean needHighLight; //控制最后⼀⾏的颜⾊.......}3.添加数据源如果通过JavaBeans set data source的⽅式来添加数据源,那么就需要提供⼀个类,这个即类名即图⼆的Name参数,这个类的路径即图⼆的Factory class参数,这个类⾥必须要有⼀个静态⽅法,提供所有的数据,这个⽅法名即The static method....参数。

JasperReport报表概要设计

JasperReport报表概要设计

JasperReport报表概要设计预览说明:预览图片所展示的格式为文档的源格式展示,下载源文件没有水印,内容可编辑和复制JasperReport报表概要设计一.背景概述JasperReport应用方案参照郭总发的“JasperReport应用于java swing 客户端的方案.doc”;二.客户端与服务端调用概要1.客户端、服务端职责:客户端:客户端只考虑、查询条件布局和数据的获取。

服务端:考虑报表以后的升级的易修改性,服务端通过界面提供的数据生成报表,返回,客户端拿到报表对象只是显示即可。

下图是客户端与服务端调用概要图,客户端EJB调用服务方法,服务返回生成好的报表对象。

三.报表设计及流程图客户端主要是查询界面的逻辑处理,报表会经常加入或修改报表,需要经常修改代码,工作量大,重复工作多,所以考虑采用在服务层采用XML配置功能实现,考虑如下:1.采用客户端启动时从服务层一次性读取报表的列表,服务可以用XML存储报表列表,好处是以后新加报表可以在加入一条数据即可,以后修改查询条件或新加报表客户端无需开发,只需要在XML加入新的配置,,包括几个字段:tableNameLoadData =””fieldLoadData =””defaultLoadData=””isCondition =””>…..< childs>……………………………………………………………………….(1)ID:唯一标识,0表示跟节点,就是入口。

(2)Name:报表名称,界面用来显示。

(3)parameters和parameterItem及里面的参数:用来生成界面和界面的关联关系、服务层查询条件等,注:只有配了tableName 和queryField客户端才会把此字段当参数发到服务层。

< parameters >排序” uiType=”dateUI/listUI/selectUI/comboboxUI” relevanceID=”点击此空件后触发的控件id”tableNameLoadData=”表名,用于填充自己控件”fieldLoadData =”表字段,用于填充自己控件”defaultLoadData=”true/fals e加载时下载数据”reportQueryField=”报表查询条件的字段名,为空表示不做为报表查询条件”>< parameterItem>…..(4)is Visible:是否显示.(5)childID:孩子节点的ID,如果为空表示自己就是叶节点.(6)serverReportClass:服务的负责生成报表的类.2.获得报表列表流程图3.生成报表列表流程图:客户端获得服务数据后,通过Name字段作为界面显示的名称,通过childID标识父子关系,如果为空表示自己就是叶节点.4.生成查询界面和数据填充流程图界面生成只跟XML中的parameters和parameterItem相关,通过这里面的属性和依赖关系生成相应查询界面。

JasperReport

JasperReport

JasperReport1,添加如下jar2.编译报表将.jrxml---->jasperpublic static void compile(String sourceFileName,String destFileName){try {pileReportToFile(sourceFileName, destFileName); } catch (JRException e) {e.printStackTrace();}}3.填充报表(jasper--- jrprint )//String sourceFileName="d:\\FirstReport.jasper";//String destFileName="d:\\FirstReport.jrprint";ReportManger.fill(sourceFileName, destFileName);public static void fill(String sourceFileName, String destFileName){try {JasperFillManager.fillReportToFile(sourceFileName, destFileName, new HashMap(),ConnectionManager.getConnection());} catch (JRException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}导出HTML格式报表导出报表.jrprint->.htmlpublic static void exportToHTML(String sourceFileName,String destFileName)throws Exception{JasperPrint jp=(JasperPrint)JRLoader.loadObject(sourceFileName);JRHtmlExporter export=new JRHtmlExporter();export.setParameter(JRExporterParameter.JASPER_PRINT,jp);export.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,destFileName);export.setParameter(JRHtmlExporterParameter.IS_USING_IMAGES_TO_ALIGN,Boolean. FALSE);export.exportReport();}导出PDF格式报表导出报表.jrprint->.PDFpublic static void exportTo PDF (String sourceFileName,String destFileName)throws Exception{JasperPrint jp=(JasperPrint)JRLoader.loadObject(sourceFileName);JRPdfExporter export=new JRPdfExporter();export.setParameter(JRExporterParameter.JASPER_PRINT,jp);export.setParameter(JRExporterParameter.OUTPUT_FILE_NAME,destFileName);export.exportReport();}=====================编译前的准备工作=============================准备工作:连接好IREPORT 生成 .jrxml 文件:具体工作步骤如下:1.创建数据库脚本语言:建立数据,数据库表,插入测试数据2.启动IREPORT 工具3.连接数据库和IREPORT工具。

jasperReport帮助文档

jasperReport帮助文档

jasperReport帮助文档目录anchorNameExpression backgroundbandcolumnFooter columnHeader connectionExpression dataSourceExpressiondetail默认ValueExpression elementGroupellipsefieldfieldDescriptionfontgraphicElementgroupgroupExpression groupFootergroupHeader hyperlinkAnchorExpression hyperlinkPageExpression hyperlinkReferenceExpression imageimageExpression initialValueExpressionline jasperReportpageFooterpageHeaderparameter parameterDescription parametersMapExpression printWhenExpression propertyqueryStringrectanglereportElementreportFontstaticT extsubreport subreportExpression subreportParameter subreportParameterExpression summarytexttextElementtextField textFieldExpressiontitlevariable variableExpressionjasperReport top 报表设计文件的根元素包含元素:( reportFont*, parameter*, queryString?, field*, variable*, group*, background?, title?, pageHeader?, columnHeader?, detail?, columnFooter?, pageFooter?, summary? )属性name报表名必须columnCount报表的列数默认 1printOrder报表列的填充顺序Vertical以列为单位填充数据Horizontal以行为单位填充数据默认 VerticalpageWidth页宽默认 595pageHeight页高默认 842orientation页打印方向Portrait 纵向Landscape 横向默认 PortraitwhenNoDataT ype允许用户定制引擎在没有数据时产生报表文档的行为。

使用jasperReport制作报表

使用jasperReport制作报表

兴明软件DRP开发团队 兴明软件DRP开发团队
基础知识-为什么选用jasperReport+ireport?
不足:
1、文档缺少 2、不可移植 3、运行速度慢 4、可视化设计器不够完善
兴明软件DRP开发团队 兴明软件DRP开发团队
基础知识-jr和ir是什么关系?
jasperReport是报表引擎,用来解析编译xml格式的报 jasperReport是报表引擎,用来解析编译xml格式的报 表设计文件,填充数据,打印、导出、显示。最新版本 1.2.7 Ireport是jasperreport模块文件的可视化设计器。最新 Ireport是jasperreport模块文件的可视化设计器。最新 版本1.2.7 版本1.2.7 注意:jasperreport的版本升级时,ireport也必定升级。 注意:jasperreport的版本升级时,ireport也必定升级。
兴明软件DRP开发团队 兴明软件DRP开发团队
• • • • • • • • • • JRBeanArrayDataSource JRBeanCollectionDataSource JRJpaDataSource JRCsvDataSource JRHibernateIterateDataSource JRHibernateListDataSource JRHibernateScrollDataSource JRMapArrayDataSource JRMapCollectionDataSource JRTableModelDataSource
使用jasperReport制作报表
基础知识 高级进阶 参考资料
兴明软件DRP开发团队 兴明软件DRP开发团队
基础知识-为什么选用jasperReport+ireport?
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JasperReports报表傻瓜式文档1 需求说明在中石化信贷系统需要在WEB页面上提供批复单和签报单的下载,客户提出要使用Jasper Reports报表(以下简称JR)技术。

具体的是要提供批复单和签报单的PDF格式文档下载,PDF格式的报表中包括领导签名图片。

2 技术说明为实现上述需求采用Jasper Reports技术。

该技术可以将IRepot设计好的报表与来自javat程序生成的数据进行填充,生成PDF文档。

报表的内容由两部分组成,一部分由报表设计工具设计好的固定部分(IRport设计的报表),另一部分是由程序传递的值(可以是一维的变量值,也可以是二维的变量如list.另外也包括图片)。

3 系统整合由于华腾的框架中以经包含有Jasper Reports所需的Jar包:jasperreports-2.0.5.jarjasperreports-2.0.5-applet.jarjasperreports-2.0.5-javaflow.jar以及处理中文的相关Jar包:itext-1.3.1.jariTextAsian.jar4 开发实现JasperReports技术的具体开发应用分为以下两个阶段4.1报表模板制作JasperReports报表设计工具有IReport Designer,JasperSoft Studio,JasperAssistant等等,下面的设计采用IReport作为设计工具。

iReport是一个可视化的报表模板设计工具,使用此工具能方便地对报表进行设计。

在iReport中已经包含了jasperreports在运行时需要的jar文件,在项目中的lib目录中包含Jasperreports-***.jar即可,其中***为版本号,比如2.0.5。

iReport的安装包在“99-其它\JasperReport开发文档整理\soft”文件夹中。

iReport-2.0.5-windows-installer. exe。

安装iReport需要先设置JDK环境,2.0.X版本要求JDK1.5环境。

4.1.1 Step1:iReport安装:如果是windows系统,直接双击安装图标以下以在windows上安装为例:4.1.1.1 A 欢迎界面,点击“N ext >”继续4.1.1.2 B.阅读license内容,点击“I A gree”继续4.1.1.5 E.指定程序组名称,点击“I nstall”即可4.1.1.6 F.等待安装过程4.1.1.7 G.安装结束,点击“F inish”完成在桌面上会出现如此图标:4.1.2 Step2:iReport设置4.1.2.1 A启动iReport,如图:iReport启动会根据运行的机器的Locale属性自动设置软件语言(Language),这里可能会出现一些偏差,笔者使用的是简体中文,但启动后设计界面是繁体中文,因此我们需要对其进行设置。

4.1.2.2 B设置默认语言更改语言种类,从下来菜单中选择“中文(中国)”。

如果打开就是此项,可以先更换成别的种类(比如“中文”),然后再次进入此界面将其更换成“中文(中国)”。

点击“存檔”后,可以看到界面变成了“简体中文”:4.1.2.3 C设置预览PDF的工具存放路径4.1.2.4 D解决中文问题由于jasper reports中没有可以完整显示中文的jar包,所以导入相应的jar包就可行了。

需要导入的Jar包如下:itext-1.3.1.jariTextAsian.jar导入方法如下图所示:1.工具栏上“O ption”->“Classpath”,.2.在Classpath中点击“添加Jar”3.在弹出的对话框中,找到存放itext-1.3.1.jar,iTextAsian.jar的路径,选中后点击打开。

4.最后要记信Save Classpath.5.在Fonts Path中勾选导入的Jar包,并保存。

此到就完成了解决中文显示问题的jar包导入工作。

但到现在还是无法正常显示中文内容,因为。

详见样式设置。

4.1.2.5 E样式设置为什么要设置样式呢?很简单,因为这是唯一一劳永逸的解决中文问题的方法。

费话少说,看图。

1.工具栏上“格式化”->“Styles”2.点击New,新建一个样式。

Sytle name 为‘新宋体’,并勾选上Default style3.在字体中进行相应设置,以便让中文可以显示在报表上。

在Font那一栏上点击,会弹出一Add/ modify report font对话框。

在该对话框中有五个地方需要选一下,Font Name,Size可以根据实现情况进地设定,PDF Font Name,PDF Encoding,PDF Embeded须和图中设置的一致,才能在PDF中显示中文。

经过这么多图的解说,中文问题到这里就完美的解决了。

4.1.2.6 F其他设置4.1.3 Step3:新建报表模板Demo4.1.3.1 A.工具栏->“档案”->“开启新档”4.1.3.2 B.输入报表名称,本文为“Demo”,点击“OK”继续4.1.3.3 C.如图界面如图,可以看到报表模板正文分几个区域,解释如下:Øtitletitle 段只在整个报表的第一页的最上面部分显示,除了第一页以外,不管报表中共有多少个页面也不会再出现title段中的内容。

ØpageHeaderpageHeader 段中的内容将会在整个报表中的每一个页面中都会出现,显示在位置在页面的上部,如果是报表的第一页,pageHeader 中的内容将显示在title段下面,除了第一页以外的其他所有页面中pageH eader 中的内容将在显示在页面的最上端。

ØcolumnHeader针对detail段的表头段,一般情况下在这个段中画报表中列的列标题。

每页均会出现一次。

Ødetail报表内容段,在这个段中设计报表中需要重复出现的内容,detail 段中的内容每页都会出现。

ØcolumnFooter针对detail段的表尾段,每页均会出现一次。

ØpageFooter显示在所在页面的最下端,每页都显示,最后一页由lastPageFooter替代ØlastPageFooter最后一页页尾段内容,只在最后一页出现一次。

Øsummary表格的合计段,出现在整个报表的最后一页中的detail段的后面,一般用来统计报表中某一个或某几个字段的合计值。

4.1.3.4 D.创建数据库类型的JDBC数据源iReport支持多种数据库,本例采用oracle作为示例工具栏上“D ata”->“连结/资源来源”在“Connections/Datasources”界面中点击“New”在“Connections properties”中选择“Database JDBC connection”,点击“Next”继续,这里可以看到,jasper report的数据来源可以有很多方式:数据库、XML文件、JavaBean文件等,从下图中可以看出来。

4.1.3.5 E.指定数据库JDBC类型和JDBC URL其中,iReport中已经包含了mysql和hsqldb这两种数据库的驱动jar文件,可以根据实际需要选择不同的JDBC Type,(记得拷贝相应的数据库JDBC驱动jar文件到项目的lib目录中)根据实际内容,输入JDBC URL和用户名及密码4.1.3.6 F.设置报表查询工具栏“Data”->“报表查询”出现如下界面:可以看到数据源有多种方式,这里我们使用Report Query方式,这种方式可以直接选择Query L anuage种类,然后再在编辑框中输入SQL语句。

如:select * from bctl,然后会自动读取相关表的结构出来,如图:点击“O K”以后,这些表的Field Name将会被加入到“Document structure”的“Fields”部分,如图:这里也可以采用另一种方式,就是引入参数,这样可以在调用的时候根据业务规则比较灵活地通过设置参数来改变数据内容:在“Document structure”区找到“Parameters”,右键单击后,选择“Add…”,再选择“Parameter”,如图:输入以下内容,Parameter Name在报表查询界面中要使用,或在自己的业务逻辑中使用,可以改变,这里也可以给一个默认值,即Default Value Expression内容,注意Parameter Class Type类型,本例使用默认的ng.String注意:Default Value Expression 的内容需要双引号引起来。

在“报表查询”编辑内容中就指定为使用此参数,格式为“$P!{parameterName}”,本例中就使用“$P! {SQLSTR}”,输入后,同样可以看到表结构会自动更新出来,点击“OK”,同样会把这些表结构内容放置到“Fileds”区域中。

4.1.3.7 G.编辑报表模板如图:在编辑区中对应的段中放置需要的要素,要素有很多种,常用的有以下几种类型:Ø静态文本内容:这些内容是固定不变的文本内容,如上图的“中石化信贷项目Demo”Ø参数(Parameter):如上图“$P{SQLSTR}”()Ø字段(Fields):如上图“$F{BRCODE}”Ø变量(Variables):如上图“$V{PAGE_NUMBER}”(iReport自带的变量)从这里面把需要的内容拖出来放置到模板编辑区中相应的段中即可。

4.1.3.8 H.编译预览在工具栏上找到,分别是编译、执行、执行(动态连结),点击编译将会产生.jaspe r文件,点击执行会先编译再预览(如果设定了对应的预览)。

预览有多种方式,点击工具栏上“建立”,可以看到如下图多种预览方式:根据需要选择预览类型,还要注意,如果没有对应的软件(比如Adobe Reader)来查看生成好的文件,那不会看到效果,iReport会在对应的目录生成文件而已.4.1.3.9 I.效果预览4.1.3.1 J.报表模板制作完成4.2使用开发4.2.1 开发工具开发工具使用eclispe3.3搭配开发。

4.2.2 创建项目输入Project Name,本例为“JasperReportsDemo”,点击“F inish”完成如图:在项目列表中可以看到JasperReportsDemo的项目:4.2.3 导入jar文件选择“General”->“File System”点击“N ext”继续项目中可以看到jar文件被引入了,如图:4.2.4 导入jasper文件在WebContent下建立目录report,并把3.4节编译好的jasper文件导入进来。

相关文档
最新文档