牛刀小试iReport

    技术2025-07-13  15

    完整版见https://jadyer.github.io/

    新建报表:菜单栏的File---New Document--Reprot Name中设定报表名--OK 编译报表:菜单栏的Build--Compile 运行报表:菜单栏的Build--Execute

    iReport的国际化 启动iReport之后,有时候它的窗口菜单栏呈现的是繁体汉字 这是由于其国际化没有做好,我们可以修改iReport,使其显示英文或简体中文 Options--选项--General--语言--选择英文即可 若想显示中文的话,那么选择第3个中文(中国)即可

    添加静态文本 点击上方工具栏中的Static Text按钮然后在报表中拖动出一个矩形框即可 点中报表里的Statci Text框右键选择Properties可以详细的编辑静态文本

    预览报表的底层实现所应用的技术 选择完预览方式之后,在预览时,实际上都是由相应的组件来帮助我们完成的 比如转换PDF格式,它使用的是iText组件这是一个很有名的使用Java操纵PDF的工具 比如转换Office格式,它是使用Apache--POI组件来转化的

    预览报表 iReport支持多种方式的预览,也就是说它可以转化为多种格式 我们预览时所看到的就是以最终呈现出来的报表的方式进行查看的 它默认的为JRViewer Preview预览,我们也可以选择其它的预览方式 编辑报表之后,需要先Compile报表,然后再Execute报表 另外,其中的Java 2D Preview预览是非常炫的,预览时可以实现鼠标翻书的效果

    通过报表向导新建报表 File--Report Wizard--接下来我们一一说明              Query:Connections/Data Sources中选择定义好的数据源                            在SQL query输入SQL语句,比如select * from person Fields selection:左框会自动呈现表字段,右框就是用来指定显示在报表里面的字段       Group by...:指定按照哪个字段进行分组              Layout:指定报表模板,比如说我们选择classicC.xml经典的模板                Finish:此时会弹出compatibility warning兼容警告框,无需理会,直接点击确定即可

    按照预览方式关联到程序 运行报表时会在下方Output Console中输出提示信息。如果提示如下信息的话 No external viewer is specified for this type of print.Set it in the Options pane. 指的是当前预览方式并没有关联到具体打开程序上,需要在选项面板中设置它 点击菜单栏的Options--Settings...--External Programs--配置打开方式

    新建数据源 Data--Connections/Data Sources--New--Database JDBC connection//iReport-2.0.5//lib//中已经自动为我们提供了连接数据库需要用到的JAR包了 若要连接其它数据库,而恰巧//iReport-2.0.5//lib没有提供相应的数据库驱动的话 我们可以自己将该数据库驱动拷贝到//iReport-2.0.5//lib中,然后重启iReport即可 此时iReport会自动将数据库驱动,也就是把连接数据库用到的JAR包加载进来了               Name:自定义数据源名字,比如mysql_connection        JDBC URL:输入Database后,点击后面Wizard按钮,按项会自动添充 Server Address:数据库服务器地址,比如localhost         Database:所连接的数据库名      User Name:连接数据库的用户名        Password:连接数据库的密码,我们可以点击下面的Test按钮测试连接

    报表上的表达式 点中报表上$F{age}右键Properties--Text Field--Text Field Expression 在它的右侧的Open the expression editor按钮可以打开表达式编辑器 在Text Field Expression中显示的就是绿色的$F{age} 这里 F 指的就是数据库里面的字段, {} 中表示的就是字段名,不用加引号 表达式为绿色的则表示该信息是正确的,如果是蓝色的则表示该信息错误

    PDF Preview的中文问题 若报表中含有中文,那么在以PDF Preview预览时,就可能会出现乱码或空白 这是由于iReport使用的是iText生成PDF的,而iText默认的是不支持中文的 所以要到http://itextpdf.sourceforge.net下载iText的支持亚洲文字的iTextAsian插件 然后把下载到的iTextAsian.jar拷贝到//iReport-2.0.5//lib中,再重启iReport 此时不要急着预览,还要修改一些参数,点中报表上含有中文的Static Text框 右键Properties--Font--将PDF Font Name改为STSong-Light字体 接着将最下方PDF Encoding改为UniGB-UCS2-H(Chinese Simplified)即可 并且这个弹出的Properties对话框,没有确定按钮,修改完参数后即立刻生效 另外:关于iText的学习,大家不用去买书,直接在网上搜些资料就可以了 此外:Manning出版社出版的《iText IN ACTION》的也是唯一的一本iText方面的书

    定制$F{field}的显示 默认$F{field}会显示所有字段的值,我们也可以决定它显示某一个字段值 选中$F{field}右键Properties--Common--Print when expression框 可以在该框中输入一个返回布尔值的表达式,即返回true时,才打印字段值 比如说我们想让报表打印username的值不是zhangsan的所有人的名字 则可以输入new java.lang.Boolean(!"zhangsan".equals($F{username}))

    真正开发时建立报表的方式 在真正开发中建立报表时,报表向导用的并不是很多 这是因为报表向导存在一些局限性,我们只能按照它的一些模板去定制报表 实际上报表是根据客户的要求去定制的,而模板通常是不符合要求的 所以,我们通常会从新建普通报表开始:选择File--New Document

    普通报表的主窗体的Band释义                  Title Band:仅仅显示在整个报表的第一页的最上面。类似于一本书的书名                                      除第一页外的所有其它页面中都不会出现Title band中的内容      pageHeader Band:显示在整个报表的所有页面的最上端。类似于Word的页眉                                      但是在报表第一页中,它的内容将显示在Title Band的下面       pageFooter Band:显示在所在页面的最下端。类似于Word的页脚 lastPageFooter Band:即尾页的页脚,仅仅显示在最后一页脚处                                      此时最后一页将不再显示pageFooter band                Detail Band:即报表内容段,在Detail Band中设计报表中需要重复出现的内容                                      并且Detail band中的内容会显示在每一页中。类似于Word的正文    columnHeader Band:针对Detail Band的表头段。一般在该段中画报表的表头     columnFooter Band:针对Detail Band的表尾段            Summary Band:表格的合计段。出现在整个报表最后一页的Detail band后面                                        一般用来统计报表中某一个或某几个字段的合计值

    最新回复(0)