Api传参—字符串组型参数
◆ 背景说明
Api运算报表,给报表的参数赋值时,如果参数的数据类型是字符串组类型,要怎么实现。看下面的例子。
◆ 示例代码
<%
……
List list=new ArrayList();
……
context.setParamValue(arg1, list);
……
%>
◆ 应用举例
1,新建一张报表,如下图:
2,设置数据集如下:
SQL:SELECT 订单.订单ID,订单.货主地区,订单.货主城市 FROM 订单 where 订单.货主地区 in (?)
3,参数定义:
定义一个参数,如下图:
数据集中的参数设置:
4,单元格表达式,如下图:
A1:货主地区
B1:货主城市
C1:订单数
A2:=ds1.group(货主地区,true)
B2:=ds1.group(货主城市,true)
C2:=ds1.count()
5,api运算报表,代码如下:
<%@ page contentType=”text/html;charset=gb2312″ %>
<%@ page import=”java.io.*”%>
<%@ page import=”java.util.ArrayList”%>
<%@ page import=”java.util.List”%>
<%@ page import=”com.runqian.report4.usermodel.*”%>
<%@ page import=”com.runqian.report4.model.*”%>
<%@ page import=”com.runqian.report4.view.html.*”%>
<%@ page import=”com.runqian.report4.util.*”%>
<%@ page import=”com.runqian.report4.view.excel.*”%>
<%@ page import=”com.runqian.report4.view.excel.ExcelReport”%>
<%
//第一步,读取报表模板
String reportFileHome=Context.getInitCtx().getMainDir();
String reportPath = application.getRealPath(reportFileHome)+”\\strGroup.raq”;
ReportDefine rd = (ReportDefine)ReportUtils.read( reportPath );
//第二步,定义参数
String arg1 = “”;
//String strGroup1 = “华北”;
//String strGroup2 = “华北,华东”;
//数组,将参数添加到数组中
List list=new ArrayList();
list.add(”华北”);
list.add(”华东”);
list.add(”华中”);
//第三步,运算报表
Context context = new Context();
context.setParamValue(”arg1″, list); //将数组传给参数
//context.setParamValue(”arg1″, strGroup2); //用这种方式,是得不到值的,只会将strGroup2的值当字符串,是不会当字符串组的
Engine enging = new Engine( rd, context);
IReport iReport = enging.calc();
//第四步,展现
HtmlReport hReport = new HtmlReport( iReport,”report1″ );
out.print(hReport.generateHtml());
%>
6,展现页面,预览效果: