- 浏览: 90046 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
Ginger90:
其实大部分功能和帆软报表差不多,但是帆软报表编写起来更方便一些 ...
iReport+jasperReport之JFreeChart(图表报表) -
tiancaishan:
这只是最简单的主数据源,那子数据源怎么设置呢?
iReport+jasperReport之CSV、XML数据源 -
wangqiangcattsoft:
楼上源码只看了一半
Struts2整合JasperReport预览HTML格式不显示图片问题解决方案 -
tuan232311009:
不错!
黑莓开发学习入门系列,自己动手实现一个日历软件(六)
iReport+jasperReport之JDBC数据源
iReport画出来的报表可以满足我们大部分的需要,所以采用iReport 编辑jrxml文件是我们的首选啦!当然掌握jrxml文件的结构也是必须的。
采用JDBC数据源必须有数据库支持啊!我们新建一个test表,其中有pid、name、sex、password、department、age字段,为了方便期间我们定义这些字段全部为String类型。
在iReport中新建一报表,报表有title、pageHeader、columnHeader、detail、columnFooter、pageFooter、lastPageFooter、summary等部分,被成为Report section
title:顾名思义是指报表的标题哦,它会显示在报表的最上面,如果有多页只会出现在第一页的最上面。pageHeader:每页的标题,如果有多页每页的开始都会显示此部分内容。
columnHeader:显示报表的列头不经常使用。
detail:这个就不用说了吧!
有header就会出现footer啦!lastPageFooter只会出现在最后一页。summay会出现在每一页数据上,主要是为了展示一些统计信息,比如当前的时间,页数信息啦!
新建一parameter
此参数可作为报表的标题使用,我们在程序中动态的传递给报表。
document structure---》parameter里找到reportTitle参数拖至title区域,右击编辑reportTitle域的属性,在font选项里找到Markup设置为HTML,TextField选项里设置Text Field Expreesion为
选择Data--->Report Query在Report Query选项里选择Query Language为SQL,写入SqL语句
关闭对话框在document structure---》field中就会出现我们需要的field,之后拖到相应的位置,关于怎么美化报表这个本人也不是很懂哦!
如果需要显示一下当前的页数信息也可以自己托动Variables里的PAGE_NUMBER完成页数的显示。完整的jrxml文件如下:
采用JDBC数据源必须有数据库支持啊!我们新建一个test表,其中有pid、name、sex、password、department、age字段,为了方便期间我们定义这些字段全部为String类型。
在iReport中新建一报表,报表有title、pageHeader、columnHeader、detail、columnFooter、pageFooter、lastPageFooter、summary等部分,被成为Report section
title:顾名思义是指报表的标题哦,它会显示在报表的最上面,如果有多页只会出现在第一页的最上面。pageHeader:每页的标题,如果有多页每页的开始都会显示此部分内容。
columnHeader:显示报表的列头不经常使用。
detail:这个就不用说了吧!
有header就会出现footer啦!lastPageFooter只会出现在最后一页。summay会出现在每一页数据上,主要是为了展示一些统计信息,比如当前的时间,页数信息啦!
新建一parameter
此参数可作为报表的标题使用,我们在程序中动态的传递给报表。
document structure---》parameter里找到reportTitle参数拖至title区域,右击编辑reportTitle域的属性,在font选项里找到Markup设置为HTML,TextField选项里设置Text Field Expreesion为
"<font color='blue' size='5'>"+$P{reportTitle}+"</font>"
下来就是设置报表的Field字段了,不需要我们一个个的新建那些字段啦!选择Data--->Report Query在Report Query选项里选择Query Language为SQL,写入SqL语句
select * from test order by pid DESC
这时所有的field会出现在下面(SQL是正确的)关闭对话框在document structure---》field中就会出现我们需要的field,之后拖到相应的位置,关于怎么美化报表这个本人也不是很懂哦!
如果需要显示一下当前的页数信息也可以自己托动Variables里的PAGE_NUMBER完成页数的显示。完整的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="Person"
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="0" />
<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="true" class="java.lang.String"/>
<queryString><![CDATA[select * from test order by pid DESC]]></queryString>
<field name="pid" class="java.lang.String"/>
<field name="name" class="java.lang.String"/>
<field name="sex" class="java.lang.String"/>
<field name="password" class="java.lang.String"/>
<field name="department" class="java.lang.String"/>
<field name="age" class="java.lang.String"/>
<background>
<band height="6" isSplitAllowed="true" >
</band>
</background>
<title>
<band height="29" isSplitAllowed="true" >
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="138"
y="0"
width="258"
height="29"
key="textField"/>
<box></box>
<textElement textAlignment="Center" verticalAlignment="Middle" markup="html">
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA["<font color='blue' size='5'>"+$P{reportTitle}+"</font>"]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height="0" isSplitAllowed="true" >
</band>
</pageHeader>
<columnHeader>
<band height="0" isSplitAllowed="true" >
</band>
</columnHeader>
<detail>
<band height="22" isSplitAllowed="true" >
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="0"
y="0"
width="100"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{pid}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="100"
y="0"
width="93"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="193"
y="0"
width="58"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{sex}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="251"
y="0"
width="100"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{password}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="351"
y="0"
width="100"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{department}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" pattern="" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="451"
y="0"
width="84"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{age}]]></textFieldExpression>
</textField>
<line direction="TopDown">
<reportElement
x="0"
y="17"
width="535"
height="1"
key="line-1"/>
<graphicElement stretchType="NoStretch"/>
</line>
</band>
</detail>
<columnFooter>
<band height="0" isSplitAllowed="true" >
</band>
</columnFooter>
<pageFooter>
<band height="24" isSplitAllowed="true" >
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="387"
y="5"
width="22"
height="18"
key="textField"/>
<box></box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font/>
</textElement>
<textFieldExpression class="java.lang.Integer"><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
<staticText>
<reportElement
x="373"
y="5"
width="14"
height="17"
key="staticText-2"/>
<box></box>
<textElement textAlignment="Center" verticalAlignmentcolor: #000
<!-- Created with iReport - A designer for JasperReports -->
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport
name="Person"
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="0" />
<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="true" class="java.lang.String"/>
<queryString><![CDATA[select * from test order by pid DESC]]></queryString>
<field name="pid" class="java.lang.String"/>
<field name="name" class="java.lang.String"/>
<field name="sex" class="java.lang.String"/>
<field name="password" class="java.lang.String"/>
<field name="department" class="java.lang.String"/>
<field name="age" class="java.lang.String"/>
<background>
<band height="6" isSplitAllowed="true" >
</band>
</background>
<title>
<band height="29" isSplitAllowed="true" >
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="138"
y="0"
width="258"
height="29"
key="textField"/>
<box></box>
<textElement textAlignment="Center" verticalAlignment="Middle" markup="html">
<font pdfFontName="Helvetica-Bold" isBold="true"/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA["<font color='blue' size='5'>"+$P{reportTitle}+"</font>"]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height="0" isSplitAllowed="true" >
</band>
</pageHeader>
<columnHeader>
<band height="0" isSplitAllowed="true" >
</band>
</columnHeader>
<detail>
<band height="22" isSplitAllowed="true" >
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="0"
y="0"
width="100"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{pid}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="100"
y="0"
width="93"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{name}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="193"
y="0"
width="58"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{sex}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="251"
y="0"
width="100"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{password}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="351"
y="0"
width="100"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{department}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="false" pattern="" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="451"
y="0"
width="84"
height="18"
key="textField"/>
<box></box>
<textElement verticalAlignment="Top">
<font/>
</textElement>
<textFieldExpression class="java.lang.String"><![CDATA[$F{age}]]></textFieldExpression>
</textField>
<line direction="TopDown">
<reportElement
x="0"
y="17"
width="535"
height="1"
key="line-1"/>
<graphicElement stretchType="NoStretch"/>
</line>
</band>
</detail>
<columnFooter>
<band height="0" isSplitAllowed="true" >
</band>
</columnFooter>
<pageFooter>
<band height="24" isSplitAllowed="true" >
<textField isStretchWithOverflow="false" isBlankWhenNull="false" evaluationTime="Now" hyperlinkType="None" hyperlinkTarget="Self" >
<reportElement
x="387"
y="5"
width="22"
height="18"
key="textField"/>
<box></box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font/>
</textElement>
<textFieldExpression class="java.lang.Integer"><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
</textField>
<staticText>
<reportElement
x="373"
y="5"
width="14"
height="17"
key="staticText-2"/>
<box></box>
<textElement textAlignment="Center" verticalAlignmentcolor: #000
发表评论
-
如何使用Static的变量和方法
2007-12-01 10:55 711如何使用Static的变量和方法有时你希望定义一个类成员 ... -
Transact-SQL简明语法
2007-12-01 11:02 1027最简单的查询语法格式: SELECT <列名&g ... -
去北京面试时的题目(老师生日)微软面试题
2007-12-01 19:59 1181小明和小强都是张老师的学生,张老师的生日是 M月 N日, 2人 ... -
有点象24点游戏,说说你的想法
2007-12-01 23:02 753* 5、5、5、1怎么能算出24呢? * ... -
JDK5增强for循环的使用
2007-12-02 23:43 785JDK5增强for循环的使用,此语法有很大的缺陷,仅适用于有限 ... -
Java中的多态
2007-12-03 11:26 791在实际操作中,多态可以让我不用关心某个对象到底是什么具体类型, ... -
运用线程实现时间更新
2007-12-06 11:01 751线程的做的时间表,不知道合不合适,哪位还有更好的实现方式(ja ... -
生产者消费者问题(以面包为例)
2007-12-10 19:48 760package Thread;public class Pr ... -
数据库关系表解决方案
2007-12-26 21:45 739数据库关系的表之间定义一个连接,而所定义连接的方式由表之 ... -
Struts2表单请求流程(一)
2007-12-29 20:09 855Struts2框架出来有段时间了,终于开始学习Struts了, ... -
Struts2表单请求流程(二)— Struts2高级的POJO访问
2007-12-29 20:20 1935此文主要来自www.blogjava.net/Max的实例 S ... -
开源软件逐渐走进了我的生活
2008-03-18 21:58 735看看我们经常用的软件吧! 以前经常去找一些破解的软件用,没有那 ... -
Struts2中select/doubleselect标签数据显示
2008-04-02 08:46 1089最近做毕业设计用到Struts2 的标签库,遇到一些比较复 ... -
用commons-email-1.1.jar实现发邮件功能:
2008-04-07 09:47 1085今天在Apache网站上下载commons-lang j ... -
JFreeChart简单使用
2008-04-18 09:29 875JFreeChart is a free chart libr ... -
Spring2.5.3+Hibernate3.2+Struts2.0.11整合
2008-04-18 13:59 894Spring2.5.3+Hibernate3.2+Struts ... -
java截取字符串的一些常用处理
2008-08-01 09:06 957java对字符串处理功能强大,以下是本人实际开发中用到的一些总 ... -
dom4j操作xml基础
2008-08-03 15:39 960DOM是用与平台和语言无关的方式表示XML文档 ... -
office javaScript调试工具
2008-08-05 18:21 914项目前台需要写大量的js,寻求一种有效 ... -
Visitor访问者模式---------学习dom4j时遇到的顺便拿来交流
2008-08-10 12:12 917dom4j遍历xml文档树有种很特别的方式就是访问者( ...
相关推荐
jasperreport则是ireport的后端引擎,它负责解析ireport设计的模板,并根据数据源填充内容,生成最终的报表文件。jasperreport支持多种输出格式,包括PDF、HTML、XLS、CSV等,这使得报表可以适应不同的应用场景,如...
1. 数据源设置:ireport支持多种数据源,包括JDBC、XML、CSV等,使报表可以连接各种数据库获取数据。 2. 报表设计:掌握表格、图表、文本框等元素的使用,以及样式和样式的自定义,能构建出丰富的报表界面。 3. 导出...
- **创建数据源**:根据实际需求选择合适的数据源类型(如 JDBC 连接、Excel 文件或 JavaBeans)。 - **创建文件**:在 ireport 中创建新的报表文件,并定义其结构。 - **编译**:编译报表模板生成 .jasper 文件。 ...
JasperReport则是报表引擎,它负责解析由iReport或其他设计工具生成的JRXML文件,并根据指定的数据源生成最终的报表。JasperReport支持多种输出格式,包括PDF、HTML、Excel、CSV等,满足了不同应用场景的需求。同时...
4. 数据源处理:根据应用需求,可以使用JDBC、Java集合或者其他方式来提供报表数据。在Action中,使用JasperFillManager.fillReport()方法将数据填充到报表模板中。 5. 显示报表:填充完成后,可以选择不同的方式来...
此外,理解数据源的配置和查询语言(如JasperReports内置的JDBC查询或者SQL)也是必要的。 总的来说,这个例子涵盖了报表设计、数据绑定、以及通过iReport导出到HTML和PDF的关键技术,对于想要深入理解和应用...
2. 在数据源选项中,选择“JDBC”。 3. 输入数据源名称,例如“OracleDS”。 4. 配置JDBC连接信息: - 驱动类名:填写`oracle.jdbc.OracleDriver`。 - URL:根据Oracle服务器的实际情况填写,如`jdbc:oracle:thin:...
这通常涉及到设置JDBC驱动和数据源。 2. **报表设计基础**:了解iReport的工作环境,学习创建新的报表项目,理解Master-Detail报告的概念,以及如何使用“报告向导”快速生成基本报告结构。 3. **数据源与查询**:...
在iReport中可以创建JDBC数据源或自定义数据源。 3. **编译报表**:设计完成后,将iReport中的报表保存为JRXML文件,然后使用JasperCompileManager类编译成JasperReport对象。 4. **填充报表**:在运行时,通过...
### JasperReport中使用多个数据源的方法详解 #### 场景背景 在报表开发过程中,有时我们需要在一个报表中展示不同来源的数据。例如,在同一份报告中同时呈现交叉表和饼状图,而这两部分数据可能源自不同的数据库表...
4. **填充报表**:使用JasperFillManager类,结合数据源(如JDBC连接)填充报表模板。数据会被替换到报表的动态字段中。 5. **导出报表**:填充后的报表可以导出为各种格式,如PDF、Excel、HTML等。...
Jasperreport 的优势在于其灵活的数据绑定机制,可以支持多种数据源,包括 JDBC、CSV、XML 等。通过使用表达式和变量,开发者可以在报表中实现复杂的计算和逻辑操作。 iReport 的配置相对简单,只需设置JAVA_HOME和...
JasperReport设计报告的工具是iReport(现在已经发展为Jaspersoft Studio),它允许开发者通过拖拽方式设计报表模板,并且提供了丰富的内置函数和样式控制。 ** JasperReport 5.6.0 版本特性** - 支持更丰富的图表...
3. **数据源准备**:创建一个适合你的数据源,比如 JDBC 数据源、List 或 Map 数据源,这取决于你的数据是如何存储和获取的。 4. **填充报表**:使用 JasperFillManager 填充报表,传入 JasperReport 和数据源,...
JasperReport是一个用Java编写的报表库,它可以生成静态或动态的报表,支持多种数据源(如数据库、XML文件等)。它允许开发者在程序中嵌入报表,提供数据可视化,支持多种输出格式,包括PDF、HTML、Excel、CSV等。 ...
用户可以通过它定义单元格样式、设置数据源、添加计算公式以及预览报表效果。ireport支持JasperReport的jrxml格式,这是一种XML格式,存储了报表的所有布局和样式信息。 jasperreports库则是在运行时解析jrxml文件...
- 支持所有有效的数据源,包括JDBC、CSV、Hibernate、JavaBean等。 - 用户可以自定义数据源,通过实现简单的接口与JasperReport集成。 - 提供无限次数的撤消/重做功能,方便用户在编辑过程中进行错误修正。 - ...
iReport支持与不同版本的JasperReport兼容,提供多种数据源选项,如JDBC数据库连接和JavaBean数据源。虽然开源,但官方文档需要付费,不过用户可以通过在线资源或旧版文档自学。 2. **准备工作** 设计报表前,首先...