楼上的解决办法,并不完美。
如果需求有变,用户希望查询,某个月,某类人员的工资名单,那么,按楼上的解决方案,有三个地方,需要修改:
1. 报表模板的sql查询,增加一个mytype参数
复制内容到剪贴板
代码:
select * from salary where month=${mymonth} and type=${mytype}
2. 在form 中增加 mytype 的input
复制内容到剪贴板
代码:
<input name=mytype>
3. 在tools/reportviewer_struts.jsp中,增加对 mytype参数的导入
复制内容到剪贴板
代码:
<%
_report1.setParameter('mymonth',request.getParameter("mymonth"));
// 将mymonth传入到报表引擎中
_report1.setParameter('mytype',request.getParameter("mytype"));
%>
我们只要优化一下,reportviewer_struts.jsp,对于任何报表参数的增减,只需要执行1,2两步即可,看如何优化:
复制内容到剪贴板
代码:
<%
for (Enumeration en = request.getParameterNames(); en.hasMoreElements();) {
String name = (String) en.nextElement();
job.setParameter(name, request.getParameter(name));
}%>