diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/AnnualProjectCostFromPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/AnnualProjectCostFromPlugin.java new file mode 100644 index 0000000..acd96e9 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/AnnualProjectCostFromPlugin.java @@ -0,0 +1,71 @@ +package zcgj.zcdev.zcdev.pr.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.resource.ResManager; +import kd.bos.dataentity.utils.StringUtils; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.sdk.plugin.Plugin; + +import java.util.ArrayList; +import java.util.EventObject; +import java.util.List; + +/** + * 项目年度成本表单插件 + */ +public class AnnualProjectCostFromPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener, Plugin { + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + BasedataEdit zcgj_sectypef7 = (BasedataEdit) this.getControl("zcgj_sectypef7");//二级分类 + zcgj_sectypef7.addBeforeF7SelectListener(this); + } + + @Override + public void afterCreateNewData(EventObject e) { + super.afterCreateNewData(e); + } + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String key = e.getProperty().getName(); + if ("zcgj_costtype".equals(key)) { + //成本大类 + ChangeData changeData = e.getChangeSet()[0]; + int rowIndex = changeData.getRowIndex(); + Object newValue = changeData.getNewValue(); + Object oldValue = changeData.getOldValue(); + if (newValue == null || !newValue.equals(oldValue)) { + this.getModel().setValue("zcgj_sectypef7", null, rowIndex);//二级分类 + } + } + } + + public void beforeF7Select(BeforeF7SelectEvent arg0) { + ListShowParameter parameter = (ListShowParameter) arg0.getFormShowParameter(); + int row = arg0.getRow(); + String name = arg0.getProperty().getName(); + if (StringUtils.equals(name, "zcgj_sectypef7")) { + //企业费用成本分摊明细分录-二级分类 + Object costType = this.getModel().getValue("zcgj_costtype", row);//成本项 + List qFilter = new ArrayList<>(); + if (costType != null) { + String costTypeStr = costType.toString(); + qFilter.add(new QFilter("number", QCP.like, costTypeStr.substring(0, Math.min(3, costTypeStr.length())) + "%")); + } else { + this.getView().showMessage(ResManager.loadKDString("请先选择成本项。", "EntCostSplitEditPlugin_0", "ec-ecco-formplugin", new Object[0])); + arg0.setCancel(true); + return; + } + parameter.getListFilterParameter().setQFilters(qFilter); + } + } +}