import com.kingdee.bos.metadata.entity.EntityViewInfo;
import com.kingdee.bos.metadata.entity.FilterInfo;
import com.kingdee.bos.metadata.entity.FilterItemInfo;
一、
为表头上的F7设置过滤条件
Set numberSet = new HashSet();
numberSet.add(“70002”);
numberSet.add(“70005”);
numberSet.add(“70006”);
EntityViewInfo evi = new EntityViewInfo();
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo(“number”,numberSet,CompareType.INCLUDE));
过滤条件中的第一个参数是‘绑定的控件的Query’,比如’公司‘,公司的名称是 ‘companyOrg…’,
那么就要找到‘公司的Query’找到相应的字段
evi.setFilter(filter);
prmtcompany.setEntityViewInfo(evi);
//设置排序
SorterItemCollection sorter = new SorterItemCollection();
SorterItemInfo item = new SorterItemInfo(“bizDate”);
item.setSortType(SortType.DESCEND);
sorter.add(item);
view.setSorter(sorter);
注:bizDate是你想要过滤的那张单据的Query
二、
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;
在onload()方法里面添加一个initF7()方法
然后编写以下代码:
//新定义视图
EntityViewInfo view = new EntityViewInfo();
//设置过滤条件
FilterInfo filter = new FilterInfo();
//获取该单据的公司ID
//获取表头公司(F7)字段的id
CompanyOrgUnitInfo saleOrgUnitInfo = (CompanyOrgUnitInfo) this.prmtcompany.getValue();
//直接将得到的“id”,toString(),得到字符串类型
BOSUuid saleOrgUnitid = saleOrgUnitInfo.getId();
//添加新的筛选条件,按照当前组织过滤
filter.getFilterItems().add(new FilterItemInfo("saleOrg.id", saleOrgUnitid,CompareType.EQUALS));
//筛选条件
view.setFilter(filter);
//为公司重新设置F7的视图
prmtsaleGroup.setEntityViewInfo(view);
三、
在客户端执行SQL,设置过滤
String sql = “/dialect/ SELECT t2.fid comid FROM T_HS_FoodCompanySet t1 inner join T_ORG_Company t2 on t2.fid=t1.FCompanyID”;
ISQLExecutor executor = SQLExecutorFactory.getRemoteInstance(sql);
IRowSet rs = executor.executeSQL();
List list = new ArrayList();
try {
while(rs.next()){
list.add(rs.getString(“comid”));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
throw new BOSException(e);
}
分录上的F7设置过滤
KDBizPromptBox adminF7 = (KDBizPromptBox)this.kdtEntry.getColumn(“adminOrg”).getEditor().getComponent();
EntityViewInfo view = new EntityViewInfo();
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo(“parent.id”, reqDept.getId().toString(), CompareType.EQUALS));
view.setFilter(filter);
adminF7.setEntityViewInfo(view);
交蛋表养殖日报过滤
// TODO Auto-generated method stub
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date bizdate = (Date) this.pkBizDate.getValue();
CompanyOrgUnitInfo companyInfo = (CompanyOrgUnitInfo) this.prmtcompany.getValue();
String companyid = companyInfo.getId().toString();
String sq = "/*dialect*/ select t1.fid billid from T_FM_StockingBreedDaily t1 where to_char(t1.fbizdate,'yyyy-mm-dd')='"+sdf.format(bizdate)+"' and t1.FCompanyID='"+companyid+"'";
ISQLExecutor executor = SQLExecutorFactory.getRemoteInstance(sq);
IRowSet rs = null;
String billid = null;
//定义一个List用来存放查询到的养殖日报id
List<String> billidList = new ArrayList<String>();
try {
rs = executor.executeSQL();
while(rs.next()){
billid = rs.getString("billid");
billidList.add(billid);
}
} catch (BOSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//为养殖日报设置过滤条件
//定义一个过滤视图
EntityViewInfo viewInfo = new EntityViewInfo();
//设置过滤条件
FilterInfo filterInfo = new FilterInfo();
//参数
// filterInfo.getFilterItems().add(new FilterItemInfo(“id”,billidList.toString(),CompareType.INCLUDE));
filterInfo.getFilterItems().add(new FilterItemInfo(“bizDate”,bizdate,CompareType.EQUALS));
filterInfo.getFilterItems().add(new FilterItemInfo(“company.id”,companyid,CompareType.EQUALS));
filterInfo.setMaskString("#0 and #1");
//设置筛选过的养殖日报过滤
SorterItemCollection sortCol = new SorterItemCollection();
SorterItemInfo itemInfo = new SorterItemInfo(“number”);
itemInfo.setSortType(SortType.DESCEND);
sortCol.add(itemInfo);
//指定查询字段
// SelectorItemCollection selector = new SelectorItemCollection(); //将查询指定字段
// selector.add(new SelectorItemInfo(“number”));
viewInfo.setSorter(sortCol);
viewInfo.setFilter(filterInfo);
// viewInfo.setSelector(selector);
prmtstockingBillNum.setEntityViewInfo(viewInfo);
//物料过滤
KDBizPromptBox material = (KDBizPromptBox) this.kdtEntrys.getColumn("material").getEditor().getComponent();
EntityViewInfo ev=new EntityViewInfo();
FilterInfo filter=new FilterInfo();
if(prmtbreedData.getValue()!=null&&pkBizDate.getValue()!=null){
String breedDataID=((IPropertyContainer)prmtbreedData.getValue()).getString("id");
filter=StockingComm.getMaterialFilter(null, (Date)pkBizDate.getValue(), SettleItemType.BREEDSEED_VALUE,breedDataID);
}else{
filter.getFilterItems().add(new FilterItemInfo("id","",CompareType.EQUALS));
}
ev.setFilter(filter);
material.setEntityViewInfo(ev);
领料出库单分录添加自定义核算项目
/**
* 当界面加载时,过滤项目字段的 类别为08
* @param uiParam
*/
public void CustomerAcccountItemQuery (final UIParam uiParam) {
ui = (MaterialReqBillEditUI) uiParam.getUI();
editData = (MaterialReqBillInfo) ui.getEditData();
KDTable kdtEntry = uiParam.getKDTable("kdtEntry");
//获取当前组织
CompanyOrgUnitInfo companyOrgInfo = SysContext.getSysContext().getCurrentFIUnit();
StorageOrgUnitInfo storageInfo = SysContext.getSysContext().getCurrentStorageUnit();
KDBizPromptBox adminF7 = (KDBizPromptBox)kdtEntry.getColumn("MaterialReqBill").getEditor().getComponent();
EntityViewInfo view = new EntityViewInfo();
FilterInfo filter = new FilterInfo();
filter.getFilterItems().add(new FilterItemInfo("GROUP.ID", "ZJ8AAAAApcQF0s0M", CompareType.EQUALS));
filter.getFilterItems().add(new FilterItemInfo("creatorCompany.number", companyOrgInfo.getNumber().toString()+"%", CompareType.LIKE));
filter.setMaskString("#0 and #1");
view.setFilter(filter);
adminF7.setEntityViewInfo(view);
}
树形结构过滤
com.kingdee.eas.farm.stocking.basedata.client.StockingBatchListUI prmtstockingBatch_F7ListUI = null;
public void willShow(SelectorEvent e) {
if (prmtstockingBatch_F7ListUI == null) {
try {
prmtstockingBatch_F7ListUI = new com.kingdee.eas.farm.stocking.basedata.client.StockingBatchListUI(){
@Override
protected FilterInfo getDefaultFilterForQuery() {
FilterInfo filter=new FilterInfo();
if(StringUtils.isNotEmpty(companyID)) {
filter.getFilterItems().add(new FilterItemInfo("company.id",companyID,(isOnlyOtherCompany?CompareType.NOTEQUALS:CompareType.EQUALS)));
}
filter.getFilterItems().add(new FilterItemInfo("baseStatus",FarmBaseStatusEnum.ENABLE_VALUE,CompareType.EQUALS));
//是否完全出栏
filter.getFilterItems().add(new FilterItemInfo("isAllOut",0,CompareType.EQUALS));
if(StringUtils.isNotEmpty(farmerID)) {
filter.getFilterItems().add(new FilterItemInfo("farmer.id",farmerID,CompareType.EQUALS));
}
if(StringUtils.isNotEmpty(farmID)) {
filter.getFilterItems().add(new FilterItemInfo("farm.id",farmID,CompareType.EQUALS));
}
if(farmType!=null) {
filter.getFilterItems().add(new FilterItemInfo("farm.farmType",farmType.getValue(),CompareType.EQUALS));
}
if(StringUtils.isNotEmpty(houseID)) {
filter.getFilterItems().add(new FilterItemInfo("id",StockingComm.getBatchIDByHouseID(null, companyID, houseID),CompareType.INCLUDE));
}
//获取业务员对应的养殖户
if(isPersonLimit&&SysContext.getSysContext().getCurrentUserInfo().getPerson()!=null) {
// Set ids=getFarmerSetByCurrentUser();
// if(ids.size()>0) {
// filter.getFilterItems().add(new FilterItemInfo(“farmer.id”,ids,CompareType.INCLUDE));
// }
StringBuffer sql=new StringBuffer();
sql.append(" select distinct t2.CFFarmID from T_FM_PersonFarmerRelation t1 ")
.append(" inner join T_FM_PersonFarmerRelationEntry t2 on t2.fparentid=t1.fid")
.append(" where FPersonID='").append(SysContext.getSysContext().getCurrentUserInfo().getPerson().getString("id")).append("'")
.append(" and t2.CFFarmID is not null");
filter.getFilterItems().add(new FilterItemInfo("farm.id",sql.toString(),CompareType.INNER));
}
return filter;
}
@Override
protected boolean isIgnoreCUFilter() {
// TODO Auto-generated method stub
if(StringUtils.isEmpty(companyID)) {
return true;
}
return false;
}
@Override
protected boolean isIgnoreTreeCUFilter() {
// TODO Auto-generated method stub
if(StringUtils.isEmpty(companyID)) {
return true;
}
return false;
}
};
} catch (Exception e1) {
e1.printStackTrace();
}
HashMap ctx = new HashMap();
ctx.put("bizUIOwner",javax.swing.SwingUtilities.getWindowAncestor(prmtstockingBatch_F7ListUI));
prmtstockingBatch_F7ListUI.setF7Use(true,ctx);
prmtstockingBatch.setSelector(prmtstockingBatch_F7ListUI);
}
}
f7Manager.registerBizMaterialF7( (KDBizPromptBox) this.kdtEntrys.getColumn("material").getEditor().getComponent(), null, null, orgInfo,false);
f7Manager.registerMeasureUnitF7(kdtEntrys, "material", "unit");
if(this.prmtcompany.getValue()!=null) {
curCompanyID=((IPropertyContainer) this.prmtcompany.getValue()).getString("id");
}else{
curCompanyID=null;
}
//批次过滤
String farmerID=null,farmID=null;
if(prmtfarmer.getValue()!=null) {
farmerID=((IPropertyContainer) prmtfarmer.getValue()).getString("id");
}
if(prmtfarm.getValue()!=null) {
farmID=((IPropertyContainer) prmtfarm.getValue()).getString("id");
}
StockingComm.setStockingBatchFilter(prmtbatch,curCompanyID,farmerID,farmID,true,false);
this.prmtbatch.setRequired(false);
//养殖户过滤
StockingComm.setFarmerFilter(prmtfarmer, curCompanyID,false);
//养殖场过滤
StockingComm.setFarmFilter(this.prmtfarm, curCompanyID, farmerID,true);
//合同过滤
StockingComm.setContractFilterByFarmer(prmtfarmer, prmtfarm, prmtbatchContract, curCompanyID,true);
//兽医过滤
StockingComm.setVetFilter(prmtvet, curCompanyID);
//物料过滤
KDBizPromptBox material = (KDBizPromptBox) this.kdtEntrys.getColumn("material").getEditor().getComponent();
EntityViewInfo ev=new EntityViewInfo();
FilterInfo filter=new FilterInfo();
String policyID;
if(prmtbatchContract.getValue()!=null){
try {
if(UIRuleUtil.getProperty((IObjectValue) prmtbatchContract.getValue(), "settlementPolicy")!=null){
policyID = ((SettlePolicyInfo)UIRuleUtil.getProperty((IObjectValue) prmtbatchContract.getValue(), "settlementPolicy")).getId().toString();
filter=StockingComm.getMaterialFilter(null, policyID, SettleItemType.DRUG_VALUE);
}
} catch (DataAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BOSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
filter.getFilterItems().add(new FilterItemInfo("id","",CompareType.EQUALS));
}
SorterItemCollection sortCol = new SorterItemCollection();
SorterItemInfo itemInfo = new SorterItemInfo("number");
itemInfo.setSortType(SortType.ASCEND);
sortCol.add(itemInfo);
ev.setSorter(sortCol);
ev.setFilter(filter);
material.setEntityViewInfo(ev);