根据单据其他值,设置分录日期选择器的可选范围原创
金蝶云社区-涂涂01
涂涂01
0人赞赏了该文章 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) {

    }
}


赞 0