package com.ycsoft.test; import com.runqian.report4.dataset.DataSet; import com.runqian.report4.dataset.IDataSetFactory; import com.runqian.report4.dataset.Row; import com.runqian.report4.usermodel.Context; import com.runqian.report4.usermodel.CustomDataSetConfig; import com.runqian.report4.usermodel.DataSetConfig; public class MyDataSet implements IDataSetFactory { public DataSet createDataSet(Context ctx, DataSetConfig dsc, boolean arg2) { DataSet ds = new DataSet("ds1"); ds.addCol("姓名"); // 列名 ds.addCol("subject"); // 列名 ds.addCol("GGG"); // 列名 for (int i = 0; i < 10; i++) { Row row = ds.addRow(); row.setData(1, "name" + i); row.setData(2, "subject" + i); row.setData(3, "grade" + i); } for(Object o: ctx.getAllParamMap().keySet().toArray()) System.out.println(o.toString()+":"+ctx.getParamValue(o.toString())); System.out.println("报表传过来的参数值1:" + ctx.getParamValue("arg1")); System.out.println("报表传过来的参数值2:" + ctx.getParamValue("query_id")); CustomDataSetConfig cdsc = (CustomDataSetConfig) dsc; // 把数据集定义类转成自定义数据集类 String[] args = cdsc.getArgNames(); // 获取自定义数据集传入参数名的集合 String[] vals = cdsc.getArgValue(); // 获取自定义数据集传入参数值的集合 int intValue = 0; Object expValue = null; System.out.println("自定义参数:"+(args==null?"null": args.length)); if (args != null) { for (int i = 0; i < args.length; i++) { // 依次获取传入参数值 String key = args[i]; if (key == null) continue; String value = vals[i]; if (key.equalsIgnoreCase("intValue")) { // 把传入参数转成整型 intValue = Integer.parseInt(value); } // // else if(key.equalsIgnoreCase("expValue")){ // //把传入参数解析成表达式并计算出表达式值 // // Expression exp=new Expression(ctx,value); // // expValue=exp.calculate(ctx, isinput); // // } System.out.println("定义数据集时传入参数" + key + "的值是:" + value); // 打出传入参数值 // ……… //主体代码 } } return ds; } }