1 传参数、变量、字段就不用说了,很简单网上面一大堆!
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");
// 在程序里,用一个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();
}
}
}