|
|
本帖最后由 irene 于 2012-4-9 11:31 编辑
管理员好,我在润乾设计器中作了一张报表,基本结构如图:
,
该报表中的订购单位字段对应的是平台中的部门id,我现在想通过session中传递的用户信息来过滤这个报表的显示数据,因此,我在这张报表的jsp文件中用了下面的语句:
<% //获取当前用户
WebUser webUser = ((WebUser) request.getSession().getAttribute("FRONT_USER"));
String department = webUser.getDefaultDepartment();
%>
现在已经成功取得了当前用户的默认部门id,我参考帮助文件中在这个报表的jsp文件中将获取的部门id作为参数传入报表,jsp文件代码如下:
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="runqianReport4" prefix="report"%>
<%@page import="cn.myapps.core.user.action.WebUser"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="com.runqian.report4.usermodel.Context"%>
<% //获取当前用户
WebUser webUser = ((WebUser) request.getSession().getAttribute("FRONT_USER"));
String department = webUser.getDefaultDepartment();
%>
<html>
<body>
<%
request.setCharacterEncoding( "GBK" );
StringBuffer param=new StringBuffer();
Enumeration paramNames = request.getParameterNames();
if(paramNames!=null){
while(paramNames.hasMoreElements()){
String paramName = (String) paramNames.nextElement();
String paramValue=request.getParameter(paramName);
out.println("取得的参数是:"+paramName);
out.println("取得的参数值是:"+paramValue);
if(paramValue!=null){
//把参数拼成name=value;name2=value2;.....的形式
param.append(paramName).append("=").append(paramValue).append(";");
}
}
}
%>
<table style="width:120%; height:100%;overflow:hidden;table-layout:fixed">
<tr><td valign=top>
<report:html name="采购报表"
srcType="file"
reportFileName="cgnew.raq"
params="<%=param.toString()%>"
needScroll="yes"
scrollWidth="80%"
scrollHeight="100%"
funcBarLocation="top"
generateParamForm="no"
/>
</td></tr></table>
</body>
</html>
相对应的,我在设计器中进行了参数的设置,分别是两处,如下图:
同时,报表数据集里的检索条件设置如下:
,
但在前端点击报表的jsp页面链接后确什么数据都显示不出来了,如下图:
我感觉脚本获取到得值没能赋值给参数,所以参数值为空,因此报表是空的,可我不知道该再如何设置才能把值传到报表里的参数中,从而实现sql语句过滤,请指教,谢谢 |
|