Explorar o código

费用报销单:新增表单插件,处理分录二开字段【图书分类】显示/隐藏逻辑。

wanghaiwu hai 2 semanas
pai
achega
f106e036de

+ 64 - 0
code/fi/nckd-xtpoc-fi/src/main/java/nckd/xtpoc/fi/app/plugin/form/DailyReimburseCusEditPlugin.java

@@ -0,0 +1,64 @@
+package nckd.xtpoc.fi.app.plugin.form;
+
+import kd.bos.bill.AbstractBillPlugIn;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.entity.datamodel.events.BizDataEventArgs;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import java.util.EventObject;
+
+/**
+ * 费用报销单:nckd_er_dailyreimburs_ext
+ * @author wanghaiwu_kd
+ * @date 2025/11/09
+ */
+public class DailyReimburseCusEditPlugin extends AbstractBillPlugIn {
+    @Override
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+    }
+
+    @Override
+    public void createNewData(BizDataEventArgs e) {
+        super.createNewData(e);
+
+        setFeildVisibleByExpenseItem();
+    }
+
+    @Override
+    public void afterBindData(EventObject e) {
+        super.afterBindData(e);
+
+        setFeildVisibleByExpenseItem();
+    }
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.propertyChanged(e);
+
+        String propertyName = e.getProperty().getName();
+
+        if("expenseitem".equals(propertyName)){
+            setFeildVisibleByExpenseItem();
+        }
+    }
+
+    /**
+     * 费用明细分录,根据【费用项目】控制【图书分类】字段的显示
+     * 费用项目 = FY004.08,显示【图书分类】字段,而且必录
+     */
+    private void setFeildVisibleByExpenseItem(){
+        DynamicObject dataEntity = getModel().getDataEntity(true);
+        DynamicObjectCollection expenseEntryCols = dataEntity.getDynamicObjectCollection("expenseentryentity");
+        boolean isShowBookClass = false;
+        for(DynamicObject expenseEntry : expenseEntryCols){
+            DynamicObject enpenseItem = expenseEntry.getDynamicObject("expenseitem");
+            if( enpenseItem!= null && "FY004.08".equals(enpenseItem.getString("number"))) {
+                isShowBookClass = true;
+                break;
+            }
+        }
+
+        this.getView().setVisible(isShowBookClass, "nckd_bookclass");
+    }
+}