关于Jaspersoft iReport4.7.0报表制作的一些问题
1 传参数、变量、字段就不用说了,很简单网上面一大堆! 2 在做好报表预览时是数据为空会显示null,解决: Blank When Null 打上√ 3.当数据源为空时,图表依然会显示出来,这样就不对称;应该是没有数据时图表也不应该显示,当有数据时相反显示, 解决办法:选中图表,选择属性如下: ? 这里要求是Boolean类型,意思是当为true时显示图表,当为false时不显示图表,点击开始编辑:我选择任意一字段不等于空时显示图表,反之: 基本每个对象都是此属性 4主要说下柱形图和饼形图 ?柱形图:在右边组件面板拖一chart选择柱形图同时选择数据集(Dataset), Dataset也可以选择其他数据集 直接点完成!后右键chartData-à在选择Datails选项卡: 点击Add Series expression要显示数据的描述!如下图中最底下的应收、实收等;Category expression写X轴的分类如:2012年8 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(); ?????????? } ?????? } ?????? ? ? } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |