金蝶BOS,服务端执行SQL语句参考

执行SQL语句需要在服务端(app目录下,*ControllerBean)进行,常用的工具类为:com.kingdee.eas.util.app.DbUtil。

通常情况下,EntityViewInfo无法实现的复杂查询,才建议使用SQL去查询。


/**
 * 获取该方案对应的组织范围
 * 返回EAS系统组织单元编码(含合并单元编码);同时,初始化组织映射缓存
 * @param ctx 上下文
 * @param rptSchemeId 上报方案主键
 * 
 */
private List getOrgsNumbers(Context ctx, String rptSchemeId) throws BOSException {
	
	List data = new ArrayList();
	StringBuffer sql = new StringBuffer();
	sql.append("select distinct oum.FNumber orgNumber, oum.FMapNumber mapNumber").append("\n");
	sql.append("from T_RPS_RptSchemeOrg orgs").append("\n");
	sql.append("inner join T_RPS_RptScheme sch on orgs.FParentID = sch.FID").append("\n");
	sql.append("inner join T_RPS_OUMapping oum on orgs.FOrgUnitID = oum.FID").append("\n");
	sql.append("where orgs.FIsSelected = 1 and sch.FID = ?").append("\n");
	Object[] params = Utils.params(rptSchemeId);
	IRowSet rs = DbUtil.executeQuery(ctx, sql.toString(), params);
	try {
		while(rs.next()){
			String orgNumber = rs.getString("orgNumber"); //组织编码
			String mapNumber = rs.getString("mapNumber"); //映射编码
			this.mapping.put(orgNumber, mapNumber);
			data.add(orgNumber);
		}
	} catch (SQLException e) {
		throw new BOSException(e);
	}
	
	return data;
	
}


你可能感兴趣的:(金蝶EAS,金蝶BOS)