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

以下方法放在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();
        		}
        	}
        });
发布了78 篇原创文章 · 获赞 32 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/a754315344/article/details/101266355
EAS