后台获取参数模板的参数
一些客户在使用润乾报表的过程中,参数的要求比较复杂,所以需要在参数模板中填入参数后在 jsp 里获取到参数模板中,以便自行在后台进行一定的处理,然后再传给报表进行计算和使用,下面就介绍一下如何在 jsp 中获取到参数模板中传递过来的参数,并且在后台打印出来。
第一步:制作一张参数模板。
制作一张参数模板,参数模板的样式可以根据自己的需要随意制作,这里采用如下图的参数模板:
其中 B1 和 D1 单元格的变量名分别为 arg1 和 arg2 , B1 和 D1 都为编辑框,保存这张参数模板为 report_arg.raq 。
第二步:制作一张主报表。
制作一张主报表,接收参数模板的参数,主报表的样式如下图所示:
保存这张报表为 report.raq 。
第三步:编写发布报表的 jsp 。
润乾报表在点击查询按钮以后,程序会把参数模板中的参数放到参数池中,要用 HashTable 的方式从参数池中取得这些参数,取得这些参数的代码如下图所示:
request.setCharacterEncoding( “GBK” );
StringBuffer param1=new StringBuffer();
String reportParamsId=request.getParameter(“reportParamsId”);
Hashtable paramtest = null;
if(!”".equals(reportParamsId) && reportParamsId != null){
paramtest = com.runqian.report4.view.ParamsPool.get( reportParamsId ); // 从参数池中取得参数
Set set = paramtest.keySet();
List list = new ArrayList();
for(String key : set){
list.add(key);
}// 把参数池中的参数放到 list 中
for(int i=0;i
System.out.println(list.get(i));
String paramName = list.get(i);
String paramValue=(String)paramtest.get(paramName);
if(paramValue!=null){
param1.append(paramName).append(“=”).append(paramValue).append(“;”);
}// 从 list 中取出参数名和参数值,拼成一个字符串
}
}
System.out.println(param1);
完整的 jsp 代码如下:
request.setCharacterEncoding( “GBK” );
StringBuffer param1=new StringBuffer();
String reportParamsId=request.getParameter(“reportParamsId”);
Hashtable paramtest = null;
if(!”".equals(reportParamsId) && reportParamsId != null){
paramtest = com.runqian.report4.view.ParamsPool.get( reportParamsId );
Set set = paramtest.keySet();
List list = new ArrayList();
for(String key : set){
list.add(key);
}
for(int i=0;i
System.out.println(list.get(i));
String paramName = list.get(i);
String paramValue=(String)paramtest.get(paramName);
if(paramValue!=null){
param1.append(paramName).append(“=”).append(paramValue).append(“;”);
}
}
}
System.out.println(param1);
%>
![]() |
funcBarLocation=”top” needPageMark=”yes” generateParamForm=”no” params=”” exceptionPage=”/reportJsp/myError2.jsp” /> |
保存这个 jsp 为 test.jsp 。
第四步:用 test.jsp 发布报表。
用 test.jsp 发布报表,然后点击查询按钮,可以看到参数被传递给主报表了。具体的效果如下:
这时查看后台就会发现参数被打印出来了,其中的 action=8 是润乾封装好的 servlet ,所以也被打印出来了,而 arg1 和 arg2 则是参数模板中的参数,具体效果如下图所示:
这样后台获取参数模板参数的需求就实现了。
本文介绍了如何在Java后台获取润乾报表参数模板的参数。通过制作参数模板和主报表,再编写发布报表的jsp,从参数池中获取并打印参数,实现了后台处理报表参数的需求。

965

被折叠的 条评论
为什么被折叠?



