亿信华辰文档中心 >> 计算前脚本执行sql情景案例 >> 历史版本
编辑时间历史版本内容长度图片数目录数修改原因
10-12 23:53 历史版本1 2981 1 2 新增内容
最新历史版本 |   下一历史版本 | 返回词条

计算前脚本执行sql情景案例

需求:

在计算报表模板前执行自定义的一段sql语句

目录

情景一:

执行一段查询sql,且这段sql中用到报表模板的维下拉参数,参数可多选

脚本样例:

import com.esen.jdbc.*;

import com.esen.platform.server.*;

import java.sql.ResultSet;

ConnectionFactory confac = EsenServer.getConnFactory("");

SqlExecuter executer = SqlExecuter.getInstance(confac);

try{

String sql = "select max(a.PRICE) as B1,max(a.NUM) as C1,max(a.SALES) as D1,a.ID as A1,max(a.NAME) as mc_A10 from ALLBOOK a where (";

String p_tsfl = params.getValue("@cs");

String[] p_tsfls = p_tsfl.split("|");

for(int i = 0; i < p_tsfls.length; i++){

 if(i == 0){

  sql += "a.ID like "" + p_tsfls[i] + "%"";

 }else{

  sql += " or a.ID like "" + p_tsfls[i] + "%"";

 }

}

sql += ") group by a.ID";

System.out.println("sql=" + sql);

ResultSet rs;

try{

 rs = (ResultSet)executer.executeSql(sql);

 while (rs.next()) {

  System.out.println(rs.getString(1) + " " + rs.getString(2) + " " + rs.getString(3) + " " + rs.getString(4) + " " + rs.getString(5));

 }

}finally{

 rs.close();

}

 

}finally{

  executer.close();

}

脚本中@cs是报表模板中参数的参数名称

 

情景二:

报表模板计算前执行一段更新sql(insert,delete,update等等)

脚本样例:

import com.esen.jdbc.*;

import com.esen.platform.server.*;

import java.sql.ResultSet;

ConnectionFactory confac = EsenServer.getConnFactory("");

SqlExecuter executer = SqlExecuter.getInstance(confac);

try{

String sql = "insert into AUGE_TOTALINFO (farendma, baobleix, jiaoyirq, bbjigouh, zongzquj, baobbizh, kemuhaoo, bnbwbioz, kemujibi, kemumnch, bwbzhong, jibzhsbs, mocekmbz, sqjiefye, sqdaifye, bqjffshe, bqdffshe, bqijfyue, bqidfyue, bqjfbish, bqdfbish, xjjfbish, xjdfbish, xjjffshe, xjdffshe, zzjfbish, zzdfbish, zzjffshe, zzdffshe, weihguiy, weihjigo, weihriqi, shijchuo, jiluztai, ods_timestamp, ysqjiefye, ysqdaifye, ybqjffshe, ybqdffshe, ybqijfyue, ybqidfyue) values ("9999", "1", "20170602", "1010", "0", "01", "660208", "0", 2, "差旅费", "01", "1", "1", 1237.33, 0, 0, 0, 1237.33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1237.33, 0, "B99991", "0000", "20170320", 1492785609043, "0", to_timestamp("22-06-2017 17:24:06.000000", "dd-mm-yyyy hh24:mi:ss.ff"), null, null, 0, 0, null, null)";

System.out.println("sql=" + sql);

executer.executeSql(sql);

 

}finally{

  executer.close();

}

标签