润乾报表Api传参-字符串组型参数
◆ 背景说明
Api运算报表,给报表的参数赋值时,如果参数的数据类型是字符串组类型时,怎么给这个参数赋值呢,我们看一个例子。
◆ 示例代码
<%
……
List list=new ArrayList();
……
context.setParamValue(arg1, list);
……
%>
◆ 应用举例
新建一张报表,如下图:
数据集:
SQL:SELECT 订单.订单ID,订单.货主地区,订单.货主城市 FROM 订单 where 订单.货主地区 in (?)
参数定义:
定义一个参数,如下图:
数据集中的参数设置:
单元格表达式,如下图:
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());
%>
展现页面,就能看到效果了: