天天看點

金蝶EAS,擴充報表,Java資料集代碼示例

業務場景:業務相對複雜時,無法直接通過SQL直接查詢出相應的資料集。可以使用Java資料集實作。

Java資料集可以針對查詢結果進行相應的加工,向前端擴充報表提供符合要求的結果集。

package com.kingdee.eas.custom.si.rpt;

import java.util.Map;
import java.awt.Window;
import com.kingdee.jdbc.rowset.IRowSet;
import com.kingdee.eas.custom.si.util.DaoUtil;
import com.kingdee.eas.custom.si.util.VerifyUtil;
import com.kingdee.eas.rpts.ctrlsqldesign.param.AbstractJavaDataSet;

/**
 * 示範報表Java資料集,用于擴充報表
 * @author 郭旭
 *
 */
public class DemoDataSet extends AbstractJavaDataSet {
	
	/**報表過濾參數**/
	private Map<?, ?> filters;

	/**
	 * 傳回資料集
	 */
	@Override
	public IRowSet[] getCustomRowSet(Window parent, String otherDataCenter) throws Exception {
		
		// 存放資料集
		IRowSet[] ds = new IRowSet[1];
		String number = (String) this.filters.get("number"); //過濾參數
		
		StringBuffer sql = new StringBuffer();
		sql.append("select FNumber 登入名, FName_L2 使用者實名 from T_PM_User where 1 = 1").append("\n");
		if(VerifyUtil.notNull(number)){
			System.out.println("過濾參數:number = " + number);
			sql.append("and FNumber = '" + number + "'").append("\n");
		}
		IRowSet rs = DaoUtil.executeQuery(sql);
		ds[0] = rs;
		
		return ds;
			
	}

	/**
	 * 如需傳回查詢語句時,實作該方法
	 */
	@Override
	public String getCustomSQL(Window parent) throws Exception {
		return super.getCustomSQL(parent);
	}
	
	/**
	 * 報表過濾參數
	 */
	@SuppressWarnings("unchecked")
	@Override
	public void setFilterParam(Map filterParamMap) {
		filters = filterParamMap;
	}

}
           

繼續閱讀