eas bos职员自动带出部门信息

本文详细介绍了如何在金蝶EAS系统中配置和使用F7控件,包括设置职员和部门的F7选择器,以及通过监听值改变事件自动填充部门信息的方法。

以下方法放在onLoad()里面,分别设置职员的F7控件,部门的F7控件,再通过监听值改变事件来重新赋值

// 修正元数据框架错误number->name
    	final KDBizPromptBox kdtEntrys_taskUser_PromptBox = new KDBizPromptBox();
        kdtEntrys_taskUser_PromptBox.setQueryInfo("com.kingdee.eas.basedata.person.app.F7PersonQuery");
        kdtEntrys_taskUser_PromptBox.setVisible(true);
        kdtEntrys_taskUser_PromptBox.setEditable(true);
        kdtEntrys_taskUser_PromptBox.setDisplayFormat("$name$");
        kdtEntrys_taskUser_PromptBox.setEditFormat("$name$");
        kdtEntrys_taskUser_PromptBox.setCommitFormat("$name$");
        KDTDefaultCellEditor kdtEntrys_taskUser_CellEditor = new KDTDefaultCellEditor(kdtEntrys_taskUser_PromptBox);
        this.kdtEntrys.getColumn("taskUser").setEditor(kdtEntrys_taskUser_CellEditor);
        ObjectValueRender kdtEntrys_taskUser_OVR = new ObjectValueRender();
        kdtEntrys_taskUser_OVR.setFormat(new BizDataFormat("$name$"));
        this.kdtEntrys.getColumn("taskUser").setRenderer(kdtEntrys_taskUser_OVR);
        //设置F7左树右表结构(com.kingdee.eas.fm.common.client.F7SelectorFactory.* 不同的方法初始化不同的左树右表,例initPerson为员工的左树右表)
        com.kingdee.eas.fm.common.client.F7SelectorFactory.initPerson(this, kdtEntrys_taskUser_PromptBox);

         ObjectValueRender kdtEntrys_taskDept_OVR = new ObjectValueRender();
        kdtEntrys_taskDept_OVR.setFormat(new BizDataFormat("$name$"));
        this.kdtEntrys.getColumn("taskDept").setRenderer(kdtEntrys_taskDept_OVR);
        KDBizPromptBox kdtEntrys_taskDept_PromptBox = (KDBizPromptBox)this.kdtEntrys.getColumn("taskDept").getEditor().getComponent();
        com.kingdee.eas.fm.common.client.F7SelectorFactory.initAdminOrgUnit(this, kdtEntrys_taskDept_PromptBox);

 // 自动带出部门
        kdtEntrys_taskUser_PromptBox.addDataChangeListener(new DataChangeListener() {
        	public void dataChanged(DataChangeEvent eventObj) {
        		try {
        			if(eventObj.getNewValue() != null && eventObj.getNewValue() != eventObj.getOldValue()) {
        				int rowIndex = kdtEntrys.getSelectManager().getActiveRowIndex();
    	        		IRow row = kdtEntrys.getRow(rowIndex);
    	        		if(row != null) {
	        				PersonInfo taskUser = (PersonInfo)eventObj.getNewValue();
	                		if(taskUser != null) {
	                			String querySQL = "select  adminorgunit.fid	id " +
												" from t_bd_person person "+
												"     inner join t_org_positionmember positionmember  on person.fid = positionmember.fpersonid "+ 
												"     inner join t_org_position position              on positionmember.fpositionid = position.fid "+ 
												"     inner join t_org_admin adminorgunit             on position.fadminorgunitid = adminorgunit.fid  "+
												" where  person.fid = '"+taskUser.getId().toString()+"'";
	                			ISQLExecutor sqlExec = SQLExecutorFactory.getRemoteInstance(querySQL);
	                    		IRowSet rs = sqlExec.executeSQL();
	                    		if(rs != null && rs.next()) {
	                    			String ORG_FID = rs.getString("id");
	                    			
	                    			AdminOrgUnitInfo orgInfo = AdminOrgUnitFactory.getRemoteInstance().getAdminOrgUnitInfo(new ObjectUuidPK(ORG_FID));
	                    			row.getCell("taskDept").setValue(orgInfo);
	                    		}
	                		}
    	        		}
        			}
        		} catch ( Exception ex ) {
        			ex.printStackTrace();
        		}
        	}
        });

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗的小虾米

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值