差旅报销单差旅项目过滤开发原创
2人赞赏了该文章
330次浏览
编辑于2023年03月07日 16:07:47
差旅报销单上的行程信息比较特殊,行程信息里面的差旅项目过滤无法通过在差旅报销单上的beforeF7Select方法中实现(不会进入beforeF7Select方法),更无法通过开发平台的基础数据过滤条件来配置实现过滤。所以只能通过插件开发实现,且只能在差旅项目基础资料上挂插件实现。
列表过滤:
@Override public void setFilter(SetFilterEvent e) { super.setFilter(e); IFormView parentView = this.getView().getParentView(); if(parentView != null){ String parentFormId = parentView.getFormShowParameter().getFormId(); if("er_tripreimbursebill".equals(parentFormId)){ e.addCustomQFilter(new QFilter("number",QCP.not_equals,"004")); } } }
编辑页面过滤:
@Override public void beforeBindData(EventObject e) { super.beforeBindData(e); IFormView parentView = this.getView().getParentView(); String parentFormId = parentView.getFormShowParameter().getFormId(); if("er_tripreimbursebill".equals(parentFormId)){ //差旅报销单 boolean isOverseas = (boolean) parentView.getModel().getValue("kdcd_abroad"); if(!isOverseas){ DynamicObject dataEntity = this.getModel().getDataEntity(true); DynamicObjectCollection datas = (DynamicObjectCollection) dataEntity.get(0); for(int i = datas.size() - 1; i >= 0; i --){ DynamicObject data = datas.get(i); if("004".equals(((DynamicObject)data.get("expenseitem")).get("number"))){ datas.remove(i); break; } } } } }
推荐阅读