根据单据其他值,设置分录日期选择器的可选范围原创
149次浏览
编辑于2024年06月07日 09:13:28
public class NewSignContractEndDateSetMinPlugin extends AbstractBillPlugIn implements DateClickListener, CellClickListener { @Override public void registerListener(EventObject e) { super.registerListener(e); //监听日期选择器 DateEdit edit1 = this.getControl("fyhr_contract_enddate"); edit1.addDateClickListener(this); //监听单据体表格 EntryGrid entryGrid = this.getView().getControl("fyhr_laborentryentity"); entryGrid.addCellClickListener(this); } @Override public void beforeClick(BeforeClickEvent evt) { super.beforeClick(evt); } @Override public void propertyChanged(PropertyChangedArgs e) { super.propertyChanged(e); } @Override public void beforePropertyChanged(PropertyChangedArgs e) { super.beforePropertyChanged(e); } @Override public void afterBindData(EventObject e) { super.afterBindData(e); } @Override public void resetDateFilter(ResetDateFilterEvent resetDateFilterEvent) { int year = resetDateFilterEvent.getFocusedYear(); List<Date> list = new ArrayList<>(); try { list.add(DateFormat.getDateInstance().parse(year+"-1-1")); list.add(DateFormat.getDateInstance().parse(year+"-1-10")); list.add(DateFormat.getDateInstance().parse(year+"-11-14")); list.add(DateFormat.getDateInstance().parse(year+"-11-15")); list.add(DateFormat.getDateInstance().parse(year+"-11-11")); list.add(DateFormat.getDateInstance().parse(year+"-11-13")); } catch (ParseException e) { } // includeDates 为可选日期 // arg0.setIncludeDates(list); // excludeDates 为禁选日期 // arg0.setExcludeDates(list); } @Override public void cellClick(CellClickEvent cellClickEvent) { String key = cellClickEvent.getFieldKey(); //结束日期 单元格点击后,触发弹窗方法 if("fyhr_contract_enddate".equals(key)){ DynamicObjectCollection fyhrLaborentryentity = this.getModel().getEntryEntity("fyhr_laborentryentity"); DynamicObject obj = fyhrLaborentryentity.get(cellClickEvent.getRow()); Date fyhrContractBegindate = obj.getDate("fyhr_contract_begindate"); EntryGrid entryGrid = (EntryGrid) cellClickEvent.getSource(); List<Control> controls = entryGrid.getControls(); for (Control control : controls) { if ("fyhr_contract_enddate".equals(control.getKey())&&fyhrContractBegindate!=null) { ((DateEdit) control).setMinDate(DateUtils.getNextDay(fyhrContractBegindate,1)); } } } } @Override public void cellDoubleClick(CellClickEvent cellClickEvent) { } }
推荐阅读