先写一个类继承FMDefaultQueryProcesso,
import com.kingdee.bos.ctrl.extendcontrols.KDBizPromptBox;
import com.kingdee.bos.metadata.entity.EntityViewInfo;
import com.kingdee.bos.metadata.entity.FilterInfo;
import com.kingdee.bos.metadata.entity.FilterItemInfo;
import com.kingdee.bos.metadata.query.util.CompareType;
import com.kingdee.bos.ui.face.IUIObject;
import com.kingdee.eas.fm.common.FMHelper;
import com.kingdee.eas.fm.common.client.FMDefaultQueryProcessor;
public class IndexSystemQueryProcess extends FMDefaultQueryProcessor {
protected IUIObject owner ;
private String property;
private String filterField;
private String filterValue;
private CompareType compareType;
public IndexSystemQueryProcess(IUIObject owner,String property,String filterField,String filterValue,CompareType compareType) {
super();
this.property=property;
this.owner = owner;
this.filterField=filterField;
this.filterValue=filterValue;
this.compareType=compareType;
System.out.println(filterField+":"+filterValue+":"+compareType);
}
public void process() throws Exception {
super.process();
String field = getField();
Object editor = getEditor();
EntityViewInfo evi=new EntityViewInfo();
FilterInfo filterInfo=new FilterInfo();
System.out.println(field+"=field");
if(editor instanceof KDBizPromptBox) {
KDBizPromptBox prmtBox = (KDBizPromptBox) editor;
String query = prmtBox.getQueryInfo();
if (FMHelper.isEmpty(query)){
return ;
}
if (field.equalsIgnoreCase(property)) {
filterInfo.getFilterItems().add(new FilterItemInfo(filterField,filterValue, compareType));
evi.setFilter(filterInfo);
prmtBox.setEntityViewInfo(evi);
}
}
}
}
其次,重写initCommonQueryDialog方法,设置CommonQueryDialo的Processor.
protected CommonQueryProcessor getQueryProcessor() {
CtrlUnitInfo cu;
try {
cu = getCtrlUnitInfo();
} catch (Exception e) {
cu=null;
}
if(cu!=null&&cu.getLevel()!=1){
return new IndexSystemQueryProcess(this,"cenCop.name","ChuShi.id",cu.getId().toString(),CompareType.EQUALS);
}else{
return new IndexSystemQueryProcess(this,"cenCop.name","ChuShi.id","YELL",CompareType.NOTEQUALS);
}
}
protected CommonQueryDialog initCommonQueryDialog() {
CommonQueryDialog queryDlg = super.initCommonQueryDialog();
queryDlg.setProcessor(getQueryProcessor());
return queryDlg;
}