频道栏目
读书频道 > 软件开发 > JAVA > JasperReports+iReport报表开发详解
3.1.3 使用Fields对象显示Java集合中实体类的属性值
2013-06-04 13:57:45     我来说两句
收藏   我要投稿
本书主要讲解Java技术领域著名的开源报表框架JasperReports和iReport软件的使用,重点介绍如何使用iReport报表模板进行报表的开发。全书共8章:初识JasperReports(介绍如何使用iReport软件搭建报表开发环境);...  立即去当当网订购

其实Fields对象不仅支持从数据表中的指定字段打印值,还支持从Java的Collection对象的实体类中打印它的属性值。

创建Web项目,新建Userinfo.java实体类,该类具有三个属性及一个有参构造方法,类结构如图3.10所示。
 

3.10  Userinfo.java类的结构

 

创建报表并且添加三个Fields对象,即id、username以及password字段,如图3.11所示。
 

3.11  设计报表并添加3Fields对象

 

Servlet的核心代码如下:

public class test extends HttpServlet

{   public void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException

    {   try

        {   ServletOutputStream servletOutputStream = response.getOutputStream();

            InputStream reportStream = getServletConfig().getServletContext()

            .getResourceAsStream("report1.jasper");

            List<Userinfo> listUserinfo = new ArrayList<Userinfo>();

            for (int i = 0; i < 50; i++)

            {   listUserinfo.add(new Userinfo("id" + (i + 1), "username"

                +(i+1),"password" + (i + 1)));

            }

            JasperRunManager.runReportToPdfStream(reportStream,

            servletOutputStream, new HashMap(),

            new JRBeanCollectionDataSource(listUserinfo));

            response.setContentType("application/pdf");

            servletOutputStream.flush();

            servletOutputStream.close();

        }

        catch (JRException e)

        {   // TODO Auto-generated catch block

            e.printStackTrace();

        }

    }

}

运行效果如图3.12所示。
 

3.12  运行效果

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.1.2 使用Fields结合JDBC的Connection对象显示值
下一篇:3.2 Parameters对象的使用
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站