IReport与JasperReport开发详解二

详解

 IReport与JasperReport开发详解二        3.2.1  设计报表                现在请点击菜单"DataSource"然后选取中"Report query"项,也可以点击图标 ,接着IReport会弹出一个对话框(如图):现在我们在"Report SQL Query"中输入SQL语句"select * from titles",然后去掉"Automatically Retrieve Fields"前面的钩,再点击"Read Fields"将表中的数据字段读出来如图 点击"OK"返回主界面。现在该设计报表的内容了,请点击菜单"View"下的"Report Fields"项,也可以点击工具栏上的图标,然后你将会得到表中所有的字段名如图:你可以选择你想要的列,以拖动的方式,将先中的列拖到报表中,这样IReport就会自动的将你所拖动的列进行绑定(可别告诉我你不会拖动这个动作,呵呵),在这里我们只作简单的演式,就不拖动太多的列到报表中,我们只选取取"title_id, pubdate,title"三列就可以了。当然你如果不想用这种简单的方法,要手工添加那也没办法,同样也可以你可以点击工具栏上的图标,这时你的光标就会变为 一个十形,你可以在报表的任意位置画一个 文本框出来,因为你在报表中画的是一个动态的文本列,这时你得设置它的属性,你可以双击你刚才画的文本框,也可以对着你所画的文本框点击右键,选"Properties"。来设置它的属性。如图:在默认情况下打开属性窗口后会自动的转到"Text Field"选项卡上,这时你得设置一个与数据库相对应的数据类型, 这个不能出错,否则会在你编译或生成报表时出错(未作测试,不能确定会在那一步出现错误),还有一个我们必须关注的是"TextField expression",在它的输入框中默认为"$F{field}"这时你须要将大括号中的"Field"改 为你表中要指定的列名。如果你要问"$F"代表什么,那你就看下面的这个表就应该知道了。设置好这两个后就可以绑定一个列的数据了。 不过你必须将它放在"detail"区中,否则你在运行报表时可能只能显示一条记录到报表中。为什么这就不用解译了吧!整个报表的空页面 IReport已为你划分好了数据摆放的位置,比如:"title,pageHeader,columnHeader"等等。 元素 名称 引用 变量 variablesName $V{ variablesName } 参数 parameterName $P{ parameterName } 字段 filedsName $F{ filedsName }         现在运行报表总觉得有点单调,我们可以为报表设置一些标题之类的信息,在工具栏中找到,点击它然后在"Title”区画一个文本框,双击它或点右键选"Properties" 这时出现一个静态文本框的属性窗口,选中"Static Text“选项卡,输入”测试报表“,可以在"Font" 选项卡中选择你希望看到的字体和字号,如图 在这里你也可以不用输入,也可以从数据库中取数据来填充它,具全在"common"选项卡,点击后,你会看到"Print When expression"在它的输入框中输入你所想要的列名,具体操作如上,也要以从右边的三尖角图标 进去,有四个类型"Fields,Parameters,Variables,Formulas"这里只介绍前两种,"Fields"在前面已经说过了,具体操作是一样的,就不再细说,第二种"Parameter"这个参数一般不在IReport中使用,后面再讲。然后按照设置"title"的方式来设置"ColumnName“,做好后你所看到的中文显示不出来,或乱码,怎么办呢?你可以见页底的 FAQ ,现在一个最基本的报表可以认为已经做好了,但是还得调整它的位置,以及上下的边界线,要不然数据显示到页面时会非常的零散。    现在保存,记得最好保存为与你新建报表时的名字一样。理由:“因为在使用文件流来读取报表,然后编译时会出现错误。保存完后点击工具栏上的图标 进行编译,在工具栏上有两个图标一个是执行静态报表用的,而另一个是用来填充动态报表的 ,现在我们只能用动态报表执行的按钮,来填充报表,用前者来执行的话除了你的静态文本之外,其它的显示null。IReport在默认情况下为"JRViewer Preview" ,生成后的效果为:        你也可以在 "Build" 菜单中选择你想要得到的报表格式,如:PDF,XSL,CSV,HTML等...当你选择好后如果没有指定运行你指定生成报表的运行程序的话,它默认会保存到IReport的当前目录中,不会是在你保存报表所在目录。如果你不喜欢看英文界面的话,你可以在菜单"Tools"下的"Options..."可以设置语言,报表的保存位置,备份位置,运行报表所用的程序等等... ... 未完待续  FAQ        1.生成报表时中文产生乱码?             JasperReport的中文处理,须要一个亚洲语言包" iTextAsian.jar,"话到IReport下的lib目录中;然后修改报表的"PDF Font Name"将其改为"STSong-Light",再则是修改"PDF Embedded PDF Encoding" 将其改为"UniGB-UCS2-H(Chinese Simplified)" ,这样就可以解决JasperReport的中文问题了(针对PDF设置的,对Excel也许要少一些,不过这样设置同样也能显示为中文,是不爱引响的)。        2.报表编译时产生NoClassDefFoundException异常?             在代码处理JasperReport时出现该异常,是因为在引用JasperReport的一些jar文件不完整,因工作忙我的处理方式是将JasperReport目录下的Demo ample\webapp\WEB-INF\lib\所有的jar文件,全引用了,以防不测,同时也没有时间去过多的深究。一定会有一些不必要的包被引用了,如果你有时间可以看一下,再将不必要的jar去掉。        3.另存为PDF时出现UnisupportEncodingException异常?             在报表设计的过程中难免会有小错误,这是因为没有改变"PDF Font Name"应改为"STSong-Light".  下载相关:        IReport下载地址:http://ireport.sourceforge.net        JasperReport下载地址:http://jasperreports.sourceforge.net        iText亚洲语言包下载地址:http://www.lowagie.com/iText

时间: 2024-10-03 11:08:18

IReport与JasperReport开发详解二的相关文章

IReport与JasperReport开发详解一

详解  IReport与JasperReport开发详解一1.简介:        Jasperreport是一个报表制作工具,用户须按照它编写的规则编写一个XML,然后得到用户所要的报表文件. Jasperreport程序库是一个灵活,功能强大的报表产生工具,可以以PDF, HTML或XML等多种形式产生报表, 并支持CSV, XLS,等格式报表.该引擎由java编写,支持多种形式应用程序产生动态报表.打印的报表文档,Jasperreport是按照一个预定义的xml文档来组织报表的数据, 这些

Masonry自动布局详解二:动画更新约束

Masonry自动布局详解二:动画更新约束 说到iOS自动布局,有很多的解决办法.有的人使用xib/storyboard自动布局,也有人使用frame来适配.对于前者,笔者并不喜欢,也不支持.对于后者,更是麻烦,到处计算高度.宽度等,千万大量代码的冗余,对维护和开发的效率都很低. 笔者在这里介绍纯代码自动布局的第三方库:Masonry.这个库使用率相当高,在全世界都有大量的开发者在使用,其star数量也是相当高的. 支持原创,请阅读原文 效果图 本节详解Masonry的以动画的形式更新约束的基本

android网络应用开发详解

Android网络应用开发,主要有两种方式,一种是socket(是对tcp/udp协议的封装),另外一种就是使用Http协议,Android中主要提供了两种方式,HttpURLConnection和Apache HttpClient.下面对Android网络应用开发进行具体的阐述. 一.基于socket的网络通信 socket是为了网络服务提供的一种机制.通信的两端都是socket. 网络通信其实就是socket间的通信. 数据在两个socket间进行io传输. 1.基于udp的socket编程

asp.net项目开发详解

问题描述 目前我在看朱元波编著的asp.net项目开发详解(清华大学出版社2014年3月第1版)的书,对于书上的实例有很多不懂得地方,哪位论友有他的视频讲解,上传一份,非常感谢!!!! 解决方案 解决方案二:一般这样的书应该会有光盘,光盘里面没有视频么?解决方案三:我是淘来的,只有一本书呢

Bootstrap框架的学习教程详解(二)_javascript技巧

Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. 一.下载Bootstrap Bootstrap (当前版本 v3.3.0)提供以下几种方式帮你快速上手,每一种方式针对具有不同技能等级的开发者和不同的使用场景. 下载地址:http://v3.bootcss.com/getting-started/ PS:其实我们不用下载bootstrap也可以使用它: Bootst

Android 布局学习之——Layout(布局)详解二(常见布局和布局参数)

  [Android布局学习系列]   1.Android 布局学习之--Layout(布局)详解一   2.Android 布局学习之--Layout(布局)详解二(常见布局和布局参数)   3.Android 布局学习之--LinearLayout的layout_weight属性   4.Android 布局学习之--LinearLayout属性baselineAligned的作用及baseline      Layout Parameters(布局参数):            在XML文

SharePoint开发详解:一个Feature中使用SPGridView的几个Tips

根据上面一篇随笔所介绍的PC购买流程的项目,在项目中,需要有一个生成 订单的功能,能够使得Admin很方便的在获得批准的申请中选取一些来生成订单 ,要求界面操作简单明了,大概的效果图如下: 开发详解:一个Feature中使用SPGridView的几个Tips-"> 点击checkbox,自动计算当前订单的总价值,点击按钮,生成订单. 有此想到了用SPGridView这个现成的控件来完成,以前也用过这个控件,其 实和GridView没什么大区别.这里就简单介绍一下了: 首先Create 一个

sqlserver2005的KPI展示控件开发详解

注意:这篇文章其实在几天前我已经写过,但是那是我的第一片文章,写的相当粗糙,很多东西都没有写详细,只是草草的提供了源码的下载,看到我的那篇<数据挖掘控件研究>点击量有点大,给了我不少安慰,因此决定重写KPI展示这片文章.没有深入了解过的朋友请继续往下看. 关于sqlserver2005中的KPI特性,相信接触过sqlserver2005的BI的平台的朋友都有所耳闻.并且跟数据挖掘查看器一样,微软只在sqlserver2005客户端里面提供了展示界面,并没有把展示的编程接口提供给我们.所以这些工

android应用开发详解里的一个例子

问题描述 android应用开发详解里的一个例子 我导入的书上例子可以运行,照着书打进去的代码就不能运行,同样从例子里面复制过来的代码也不能运行,MainActivity可以显示,但是点击register后跳转的ResultActivity就不能显示,模拟器弹出has stopped字样,求解答 以下是代码 package com.amaker.test; import android.app.Activity; import android.content.Intent; import and