关于Jaspersoft iReport4.7.0报表制作的一些问题

1 传参数、变量、字段就不用说了,很简单网上面一大堆!

2 在做好报表预览时是数据为空会显示null,解决:

Blank When Null 打上√

3.当数据源为空时,图表依然会显示出来,这样就不对称;应该是没有数据时图表也不应该显示,当有数据时相反显示,

解决办法:选中图表,选择属性如下:

 

这里要求是Boolean类型,意思是当为true时显示图表,当为false时不显示图表,点击开始编辑:我选择任意一字段不等于空时显示图表,反之:

基本每个对象都是此属性

4主要说下柱形图和饼形图

 柱形图:在右边组件面板拖一chart选择柱形图同时选择数据集(Dataset),

Dataset也可以选择其他数据集

直接点完成!后右键chartData-à在选择Datails选项卡:

点击Add

Series expression要显示数据的描述!如下图中最底下的应收、实收等;Category expressionX轴的分类如:20128

Value expression 要显示的数据,如图柱形的高度;LableExpession这个对于柱形图可忽略,但饼形图必填!要显示多收数据就增加多少数据了,点击 预览,

如果有错仔细检查iReport output提示错误窗口看到底是什么错!预览结果如图:

 

 

上述$P{year}$P{month}是传的参数,$V{charges}是变量,如果不懂在网上找很多基础教程!

饼形图: 添加方式和上面一样,略有不同就是Lable Expression需要填写:

 

Key expression底下分类,Value expression显示的数据 Lable expression:饼形图每一块的标签!

5.集成这块我用了最为古老的方式就是Servlet集成,Struts2.0也可就不说了

publicvoid doPost(HttpServletRequestrequest, HttpServletResponse response)

           throws ServletException, IOException {

        request.setCharacterEncoding("UTF-8");

     //接收查询参数,将来这个参数就是我们在报表中定义的parDname  

       String year = request.getParameter("year");

       String month = request.getParameter("month");

       //报表文件路径,我们用ireport做的jasper文件路径

       // JasperReport需要jasper文件的真实路径

       String reportPath = request.getSession().getServletContext()

              .getRealPath("/reports/report1.jasper");

       //报表参数,jasper文件可能不只一个参数

// 在程序里,用一个Map对象,向jasper文件传递他需要的参数

Map<String,Object> reportParameters = new HashMap<String,Object>();

       reportParameters.put("year", year);

       reportParameters.put("month", month);

       //报表连数据库所用的数据连接

       //因为报表直接以数据库为数据源,所以在这里需要给jasper文件一个jdbc连接

 

       //清空响应流

       response.reset();

       //设置输出格式

       response.setContentType("application/html");

       //创建JDBC连接

       try {

           Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

           con = DriverManager.getConnection(

                  "jdbc:sqlserver://127.0.0.1:1433;databaseName=Database",

                  "sa","sa");

//         // JasperReport提供的类,用于生成一个HTML文件

//         con = Test.getConn();

           JasperRunManager.runReportToHtmlFile(reportPath, reportParameters, con);

           JasperRunManager.runReportToHtmlFile(reportPath, reportParameters);

           response.sendRedirect(request.getContextPath()+"/reports/report1.html");

       } catch (Exception e) {

           //TODO Auto-generated catch block

           e.printStackTrace();

       }finally{

           try {

               GetDateCon.close();

           } catch (Exception e) {

              //TODO Auto-generated catch block

              e.printStackTrace();

           }

       }

      

 

 

    }

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值