基于iReport5.5+JavaBean+Struts2(注解方式)的报表设计与查看

一、  安装iReport
二、  配置Datasource、新建一个报表
三、  配置JavaBean数据源
四、  配置iReport的classpath
五、  设计模板
六、  集成Struts2
七、  关于字体

一、  安装iReport

其实,有很多技术可以实现报表,因为项目很急,人员少,时间紧,任务重,因为之前了解过iReport,这次便直接get it started.

首先可以Google一下iReport

打开第一条记录,进入官网

下载最新版iReport Designer

目前最新版本是v5.5,之前网上很多资料都是低版本的,新版本不会用,我折腾了好久。

官网上提供了安装版和bin目录版,我都下载过。比较喜欢bin目录版本,OK ,Download it

下载完成后,解压目录如下

进入bin 目录,双击ireport.exe运行就好。

Ireportdesigner不知啥情况,界面上中英文夹杂。第一次打开不知道怎么下手,直觉告诉我,按照提示step to step。

二、配置DataSource

点击step1.会弹出这样的对话框。

此处和大家分享的是,采用JavaBean数据源。其他的方式,如果项目需要可Google一下或者查看官网文档。外事问Google,内事问Baidu。

给你的JavaBean数据源设置一个名字,如果有轻度强迫症的童鞋,名字都会想好久,就像我。

Factoryclass是让你配置一个静态测试工厂,提供一些在Preview时,可以查看的报表效果的数据。时间紧迫,可以不做。(此处可以直接用默认的,不会影响对ireport的基本使用)

好的,step1 done, 继续step2.

很漂亮的新建模板的界面,初次相逢,很是陌生,还是新建一个Blank A4吧, 下面的Open this Template和Launch Report Wizard,都可以选择。

点击Launch..

于是又出现,中英混血的窗口,就像现在职场里流行的中英文夹杂说话一样。请不要嘲笑,这很正常,IT一直是老外走在咱们前面。

接下来选择你刚刚设置好的数据源,然后可以一路next.

也许因为项目很着急,需要马上会基本使用iReport,所以会在网上找到很多文章,很多都会直接讲到设置JavaBean出现的界面。

我就是这样的情况,如果你遇到了这种情况,请不要着急。如果模板文件还没用新建好,在iReport的界面里是找不到刚刚那个界面的。所以一定要先建模板。

继续吧。

刚刚一路下一步,直到完成。会出现下面的界面。

四、配置JavaBean

设计界面如图。你可以放置你的报表的title,Header等。但是你的报表肯定会显示你的项目里的相关内容,或从数据库里查询或者其他内容。所以有一个JavaBean适配器。

1. 新建是JavaBean适配器(此次用eclipse)

2. 也就是说我们的类写好了。你可以选择以.class的形式与import到ireport,你也可以选择以.jar的形式。通常如果是web项目的话,class文件在服务器的项目类路径下,要繁琐一点。于是,走jar文件的方式。

3. 把.java文件打包成.jar。

选中你的java文件

然后右键>Export>

然后在出现的对话框里,设置一个漂亮的名字和导出的路径(比如说桌面)。接着一路Next

Until Finished.

4. 回到iReport,添加.jar文件。

点击工具>>选项,找到classpath.AddJar(就是刚刚你导出的jar)

勾选好Reloadable。然后完成。

然后配置JavaBean。

点击设计的主界面里的数据源图标。

出现下面的对话框

Switch到JavaBean DataSource选项.

在class name里输入你的JavaBean 适配器的全称类名(package + class name)

点击Read Attribute。此时会列出你bean里的所用Fields。

选择你要的字段即可

五、设计模版

设计这个是个体力活,把我几点就好。

每一个栏目官方称为Band。包含

Title:显示报表的Title,或者封面。

PageHeader:每一页的Header,可重复。

Detail:显示重复的内容。

我常用的组件:Static Text,静态文本也就是HTML里的Label。

TextField显示动态内容,Line 线条,Image 图片。

一般报表的设计:

1.直接Drag 一个控件到面板里即可。

2.拖动左侧导航中的:Fields中的字段。(通过数据源导入进来的)

表头(Header)为可变的的报表

1. 因为Header不能循环的显示。所以用到了Parameters

在Parameter上,右键鼠标,添加参数。

新建一个与你报表表头相关的参数。

然后把该参数拖动到相关位置即可。

报表里有其他循环数据

在Detail Band里,添加动态字段,即可循环显示。

设计完毕以后可以预览一下。

如果添加了参数,iReport提示你输入测试的参数。

Pdf效果

带图片的报表

其实很简单,拖动一个Image空间到相应显示的位置,拖动的时候,会提示你import一张图片,可选而已。

然后选中该图片,在右侧Property栏目找到Image Expression

添加一个图片路径的字段,在显示的时候,给该字段设置一个图片路径就好。

六、集成Struts2

新建一个Action。

配置相关Action名字或路径。

直接一张截图

此处配置数据源,显示格式,如果报表里有参数,还需配置参数。

数据源一定要有Set/Get方法

参数也是。

贴一段代码:

@SuppressWarnings("serial")

@ParentPackage("myreport")

@Action("view-report")

@Results({

   @Result(name = "success", type ="jasper", params = { "location",

      "WEB-INF/jasper/report2.jasper","format", "PDF", "dataSource",

      "datas" }),

   @Result(name = "press", type ="jasper", params = { "location",

      "WEB-INF/jasper/report_press.jasper","format", "PDF",

      "dataSource", "datas2"}),

   @Result(name = "bind", type ="jasper", params = { "location",

      "WEB-INF/jasper/report_bind.jasper","format", "PDF",

      "reportParameters","params", "dataSource", "datas3" }) })

publicclass ReportAction extends ActionSupport {

 

    private Integer id;

    private List<EExport> datas;

    private List<EExortPress> datas2;

    private BookService bookService;

    // private JREmptyDataSource datas3 ;

    private List<EReportDetail> datas3;

    @SuppressWarnings("rawtypes")

    private HashMap params = new HashMap();

 

    @Override

    public String execute() throws Exception {

   datas = new ArrayList<>();

   if (id != null) {

      EExport export = new EExport();

      EBook e = bookService.load(EBook.class, id);

      EProtype pro = bookService.load(EProtype.class, id);

      EIsbn isbn = bookService.load(EIsbn.class, id);

      export.setEsBookname(e.getEsBookname());

      export.setEsCategories(e.getEsCategories());

      export.setEsKilowords(e.getEsKilowords());

      export.setEsEditorname(e.getEsEditorname());

      export.setEsAuthorname(e.getEsAuthorname());

      export.setEsAuthorsex(pro.getEsAuthorsex());

      export.setEsAuthorage(pro.getEsAuthorage());

      export.setEsAuthortitle(pro.getEsAuthortitle());

      export.setEsAuthorunit(pro.getEsAuthorunit());

      export.setEsAuthorbackground(pro.getEsAuthorbackground());

      export.setEsDraftcontentvalue(isbn.getEsDraftcontentvalue());

      export.setEsDraftissue(isbn.getEsDraftissue());

      export.setEsDrafttreatment(isbn.getEsDrafttreatment());

      export.setEsIssuetosecond(isbn.getEsIssuetosecond());

      export.setEsTreatmenttosecond(isbn.getEsTreatmenttosecond());

      export.setEsRemarktofirst(isbn.getEsRemarktofirst());

      export.setEsTreatmenttofirst(isbn.getEsTreatmenttofirst());

      export.setEsIssuetofinal(isbn.getEsIssuetofinal());

      export.setEsRemarktosecond(isbn.getEsRemarktosecond());

      export.setEsFinaltreatment(isbn.getEsFinaltreatment());

 

      datas.add(export);

   }

   return super.execute();

}

好久没有写过文章了。梨花院落溶溶月,柳絮池塘淡淡风,如此良辰美景,把此刻分享一下。

七、关于字体

待续...

基于iReport5.5+JavaBean+Struts2(注解方式)的报表设计与查看相关推荐

  1. Hibernate3.X实现基于CLOB字段类型的注解方式:

    一:Hibernate3.X实现基于CLOB字段类型的注解方式的例子:下面直接上代码: 二:UserInfo.java package cn.gov.csrc.cms.model;import jav ...

  2. hibernate oracle clob 注解,Hibernate3.X实现基于CLOB字段类型的注解方式:

    一:Hibernate3.X实现基于CLOB字段类型的注解方式的例子:下面直接上代码: 二:UserInfo.java package cn.gov.csrc.cms.model; import ja ...

  3. dubbo consumer 端口_基于Springboot+Dubbo+Nacos 注解方式实现微服务调用

    今天跟大家分享基于Springboot+Dubbo+Nacos 注解方式实现微服务调用的知识. 1 项目结构 |-- spring-boot-dubbo-demo (父级工程) |-- spring- ...

  4. Elasticsearch-mapper 基于注解方式生成mapping(2.0以上)

    Elasticsearch生成mapping的方式上有多种方式,我们可以把mapping做成配置文件,也可以用spring-data-elasticsearch基于注解生成. 在基于注解生成这种方式上 ...

  5. spring IOC容器 Bean 管理——基于注解方式

    IOC 操作 Bean 管理(基于注解方式) 1.什么是注解 ​ (1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值, 属性名称=属性值-) ​ (2)使用注解,注解作用在类上面,方法上面, ...

  6. SSM中使用注解方式调用输入输出参数存储过程,输入参数为javabean方式,Boolean类型对应TINYINT类型

    最近在捣鼓SSM使用注解方式调用有输入输出参数的存储过程,趟了不少坑,网上一堆没用抄袭的,废话不多说,直接上代码. Controller层: /*** 注册用户** @param userName* ...

  7. java datasource 配置_Spring boot 基于注解方式配置datasource

    Spring boot 基于注解方式配置datasource Xml配置 我们先来回顾下,使用xml配置数据源. 步骤: 先加载数据库相关配置文件; 配置数据源; 配置sqlSessionFactor ...

  8. 基于注解方式实现在Tomcat8中实现WebSocket服务器接口的编写

    参考资料来源:https://blog.csdn.net/elinespace/article/details/52879839 前言: WebSocket 是 HTML5 开始提供的一种在单个 TC ...

  9. (转)Spring的bean管理(注解方式)

    http://blog.csdn.net/yerenyuan_pku/article/details/69663779 Spring的bean管理(注解方式) 注解:代码中的特殊标记,注解可以使用在类 ...

最新文章

  1. Transformer 代码完全解读!
  2. vscode怎么执行python_VScode | 执行python
  3. 删除fedora多余内核:解决每次升级后旧内核还会存在的问题
  4. java-基础-ArrayList剖析
  5. 推荐:class文件反编译工具Java Decomplier
  6. 在c语言中形参的作用域,【单选题】下列标识符中,属于块作用域的是( ) A. 函数形参 B. 语句标号 C. 函数外...
  7. QT语言开发的软件界面UI自动化方法
  8. 爬虫 + 数据分析 - 7 CrawlSpider(全站爬取), 分布式, 增量式爬虫
  9. php 设置字符编码为utf-8
  10. cad怎么画立体图形教学_cad怎么绘制三维图形,cad三维制图实例图文教程
  11. 很多人在Google Play商店购买或下载APP时出现问题,例如在你新安装的系统恢复APP或想要安装心愿单中的APP时,Play商店出现不能加载等错误,这实在是太烦人了。 所以,我通过搜索,把可
  12. H5微信授权登录 H5支付 外部浏览器微信支付 前端一个函数搞
  13. 最全Linux应用开发解析(持续更新)
  14. 系列服务器大概多重,一台服务器有多重
  15. MacBook安装Nginx
  16. 师夷之技以制夷 吾尝终日而思矣,不如须臾之所学也
  17. 基于RISC-V架构的开源处理器及SoC研究综述(一)
  18. 【渝粤教育】电大中专消费者行为学作业 题库
  19. 行列式对角线的计算(代码实现)
  20. 智慧医院的建设现状分析

热门文章

  1. U盘出现拒绝访问怎么解决
  2. 计算机图形学——八分法中点画圆
  3. SpringBoot整合定时任务和邮件发送(邮箱 信息轰炸 整蛊)
  4. 【Linux】磁盘类型设备驱动介绍
  5. 你应该学点哲学的20个理由:不为拥有深奥的思想,只为更好地生活
  6. 信用证的好处!只要有信用证,没有不符点,就能收到钱!
  7. Xposed快速入门例子(二)----- 调方法的合适时机
  8. 社区购物、社区买菜小程序源码
  9. 不重装系统改硬盘模式: RAID ON 改成 AHCI
  10. netgen.5.0.0下载地址与Windows下编译方法