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
IReport与JasperReport开发详解二-JSP教程,Java技巧及代码
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » IReport与JasperReport开发详解二-JSP教程,Java技巧及代码
相关推荐
- 暂无文章
