通用查询-设置默认组织过滤

1.问题描述

序时簿页面打开后通用查询的组织条件中会默认显示所有有权限的组织,框架会将当前登录的组织默认放在第一个然后页面打开时会默认选中第一个组织也就是当前登录的组织,一些场景下需要修改页面默认的组织条件:

表格冻结

2.问题解决

2.1 配置页面新增initData的after插入:

表格冻结

2.2 在对应的handler中将默认要选择的组织移动至第一位:

    package com.kingdee.eas.customer;

	import java.util.HashMap;
	import java.util.List;
	import java.util.Map;
	import com.kingdee.bos.BOSException;
	import com.kingdee.bos.webframework.component.bizcommonquery.OrgDataEntity;
	import com.kingdee.bos.webframework.dynamic.event.view.IWebInitDataEventHandler;
	import com.kingdee.bos.webframework.dynamic.event.view.WebInitDataEvent;
	import com.kingdee.bos.webframework.dynamic.handler.AbstractWebEventHandler;
	import com.kingdee.bos.webframework.exception.WafException;

	public class WebInitDataEventHandlerCL extends AbstractWebEventHandler implements IWebInitDataEventHandler {
		@Override
		public void onRequest(WebInitDataEvent event) throws WafException,
				BOSException {
			Map<String,Object> initData = (Map<String, Object>) event.getInitData().get("queryInitData");
			List orgData = ((OrgDataEntity) initData.get("orgData")).getRows();
			//将默认显示的组织放在第一个
			String orgId = "iwoAAAAADe7M567U";  // 默认显示的组织id
			if (orgId!=null) {
				for (int i=0;i<orgData.size();i++) {
					HashMap map = (HashMap)orgData.get(i);
					if (map.get("id").toString().equals(orgId)) {
						orgData.remove(map);
						orgData.add(0, map);
						break;
					} 
				}
			}
		}
	}

2.3 效果展示:

表格冻结

相关样例