加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 14:26:35 所属栏目:MsSql教程 来源:网络整理
导读:1 传参数、变量、字段就不用说了,很简单网上面一大堆! 2 在做好报表预览时是数据为空会显示 null ,解决 : Blank When Null 打上√ 3. 当数据源为空时,图表依然会显示出来,这样就不对称;应该是没有数据时图表也不应该显示,当有数据时相反显示, 解决办

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();

?????????? }

?????? }

??????

?

?

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读