核心提示:需求背景:客户想在参数模板中设置里下拉数据集同时也可以对这个单元格进行填值查询,这样有一种情况是填的值可能不在数据库字段范围,客户想在这种情况时对查询的参数进行一个默认值的查询处理.解决思路:参数模板...
需求背景:
客户想在参数模板中设置里下拉数据集同时也可以对这个单元格进行填值查询,这样有一种情况是填的值可能不在数据库字段范围,客户想在这种情况时对查询的参数进行一个默认值的查询处理.
解决思路:
参数模板在后台报表引擎计算的时候对参数遍历比较设置
操作步骤:
在展现页面中进行遍历比较设置默认值
if( f.exists() ) { if(parma1!=null){ InputStream fis=application.getResourceAsStream(reportFileHome +paramFile); ReportDefine rd = (ReportDefine)ReportUtils.read( fis ); Context context = new Context(); Engine enging = new Engine( rd, context); IReport iReport = enging.calc(); DataSet dateSet = context.getDataSet(“ds1″);//取数据集 int rowNum = dateSet.getRowCount() ; int colNum = dateSet.getColNo(“DEGREE”) ; //按列名取列号 System.out.println(“rowNum:”+rowNum); System.out.println(“colNum:”+colNum); String dateValue =”"; if(parma1!=null ||parma1!=”"){ boolean flag = false; for(int i=1;i<=rowNum;i++){ dateValue=(String)dateSet.getData(i,colNum); System.out.println(“dateValue:”+dateValue); if(dateValue.equals(parma1)){ flag=true; System.out.println(“flag:”+flag); } } if(flag ==false){ parma1= (String)dateSet.getData(1,colNum); //设置数据集里的第一个值,也可设置为固定值 System.out.println(“parma1:”+parma1); param.append(“arg1=”).append(parma1).append(“;”); } }else { System.out.println(“parma1:”+parma1); } }