页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

代码块
languagejava
titleUpgradeTask_New.java
collapsetrue
package smartbi.ext.function.upgrade;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import org.apache.log4j.Logger;
import smartbi.repository.UpgradeTask;
import smartbi.util.DBType;
/**
 * 
 */
public class UpgradeTask_New extends UpgradeTask {
	/** */
	private static final Logger LOG = Logger.getLogger(UpgradeTask_New.class);
	@Override
	public boolean doUpgrade(Connection conn, DBType type) {
		PreparedStatement prep = null;
		try {
			Statement sta = conn.createStatement();
			ResultSet rs = sta.executeQuery("select c_resid from t_restree where c_resid = 'func_Process1000LimitOfIn'");
			if(!rs.next()){
				prep = conn.prepareStatement("insert into t_restree(c_resid, c_resname, c_resalias, c_pid, c_restype, c_order, c_perm, c_resdesc, c_created, c_lastmodified) values(?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
				prep.setString(1, "func_Process1000LimitOfIn");
				prep.setString(2, "Process1000LimitOfIn");
				prep.setString(3, "Process1000LimitOfIn");
				prep.setString(4, "catalog_string");
				prep.setString(5, "FUNCTION");
				prep.setInt(6, 9000);
				prep.setString(7, "<Permissions inherited=\"YES\" role=\"ADMINS\"><Permission perm=\"READ\" descend=\"FOLDER_FILE\"/></Permissions>");
				prep.setString(8, "处理多选树参数或下拉框参数超过1000时报错问题,如Process1000LimitOfIn(\"A\",下拉参数)。<br/> 参数1:要过滤的字段名(如 table1.A),如果是可视化查询直接拖字段,如果是原生sql,字段最好加英文双引号,如\"table1.A\";参数2:树参数或下拉框参数 <br/>返回值:每超过1000个值生成一个or(如(A in (a,b,c。。。) or A in (d,e,f。。。)) )");
				prep.setTimestamp(9, new Timestamp(new java.util.Date().getTime()));
				prep.setTimestamp(10, new Timestamp(new java.util.Date().getTime()));
				prep.executeUpdate();
				prep.close();
			}
			rs.close();
			sta.close();
			return true;
		} catch (SQLException e) {
			LOG.error("Upgrade UpgradeTask_New '" + this.getClass().getPackage().getName() + "' to " + getNewVersion() + " fail.", e);
			return false;
		}
	}
	@Override
	public String getNewVersion() {
		return "0.0.1";
	}
}

2.3 手动方式增加自定义函数

前面讲了使用升级类添加自定义函数方式,加入不想写升级类(升级类有个好处就是只要加载了扩展包即可,不用手动添加便于迁移),这里介绍手动添加方式。前面讲了使用升级类添加自定义函数方式,假如不想写升级类(升级类有个好处就是只要加载了扩展包即可,不用手动添加便于迁移),这里介绍手动添加方式。

1,在定制管理界面,找到 函数列表 > 系统函数 > 字符串节点。

...