|
@@ -0,0 +1,125 @@
|
|
|
|
|
+package nckd.jxccl.swc.init.plugin.form;
|
|
|
|
|
+
|
|
|
|
|
+import kd.bos.dataentity.entity.LocaleString;
|
|
|
|
|
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
|
|
|
|
+import kd.bos.form.control.grid.DataGrid;
|
|
|
|
|
+import kd.bos.form.control.grid.DataGridRow;
|
|
|
|
|
+import kd.bos.form.control.grid.DataGridRowBuilder;
|
|
|
|
|
+import kd.bos.form.control.grid.column.AmountDataGridColumn;
|
|
|
|
|
+import kd.bos.form.control.grid.column.DataGridColumn;
|
|
|
|
|
+import kd.bos.form.control.grid.column.TextDataGridColumn;
|
|
|
|
|
+import kd.bos.form.control.grid.events.BeforeCreateDataGridColumnsEvent;
|
|
|
|
|
+import kd.bos.form.control.grid.events.BeforeCreateDataGridColumnsListener;
|
|
|
|
|
+import kd.bos.form.control.grid.events.DataGridBindDataEvent;
|
|
|
|
|
+import kd.bos.form.control.grid.events.DataGridBindDataListener;
|
|
|
|
|
+import kd.bos.form.plugin.AbstractFormPlugin;
|
|
|
|
|
+import kd.sdk.plugin.Plugin;
|
|
|
|
|
+
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
|
+import java.util.Date;
|
|
|
|
|
+import java.util.EventObject;
|
|
|
|
|
+import java.util.List;
|
|
|
|
|
+
|
|
|
|
|
+/**
|
|
|
|
|
+ * 动态表单插件
|
|
|
|
|
+ * @author turborao
|
|
|
|
|
+ * @date 2025/11/28 16:01
|
|
|
|
|
+ */
|
|
|
|
|
+public class EmpSalaryQueryWebFormPlugin extends AbstractFormPlugin implements Plugin, DataGridBindDataListener, BeforeCreateDataGridColumnsListener {
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ private static final String KEY_LAB_EMP_NAME = "nckd_employee";
|
|
|
|
|
+ private static final String KEY_LAB_EMP_DESCRIPTION = "nckd_desc";
|
|
|
|
|
+ private static final String KEY_LAB_REALAMT = "nckd_realamt";
|
|
|
|
|
+ private static final String KEY_LAB_GROSSAMT = "nckd_grossamt";
|
|
|
|
|
+ private static final String KEY_LAB_SUBAMT = "nckd_subamt";
|
|
|
|
|
+ private static String KEY_CTL_STARTDATE = "startmonth";
|
|
|
|
|
+ private static String KEY_CTL_ENDDATE = "endmonth";
|
|
|
|
|
+ private static String KEY_META_PERUSER = "hrpi_personuserrel";
|
|
|
|
|
+ private static Long KEY_EMPID = 0L;
|
|
|
|
|
+ private static Date KEY_STARTDATE = new Date();
|
|
|
|
|
+ private static Date KEY_ENDDATE = new Date();
|
|
|
|
|
+ private static String KEY_TYPE = "10";
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 初始化为控件增加监听事件
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void initialize() {
|
|
|
|
|
+ DataGrid dataGrid = this.getControl("nckd_datagridap");
|
|
|
|
|
+ // 注册创建列监听事件
|
|
|
|
|
+ dataGrid.addBeforeCreateDataGridColumnsListener(this);
|
|
|
|
|
+ // 注册绑定数据监听事件
|
|
|
|
|
+ dataGrid.addBindDataListener(this);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void afterCreateNewData(EventObject e) {
|
|
|
|
|
+ super.afterCreateNewData(e);
|
|
|
|
|
+ DataGrid dataGrid = this.getControl("nckd_datagridap");
|
|
|
|
|
+ dataGrid.addBindDataListener(this);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void propertyChanged(PropertyChangedArgs e) {
|
|
|
|
|
+ super.propertyChanged(e);
|
|
|
|
|
+ String fieldKey = e.getProperty().getName();
|
|
|
|
|
+ if (fieldKey.equals(KEY_CTL_STARTDATE) || fieldKey.equals(KEY_CTL_ENDDATE)){
|
|
|
|
|
+
|
|
|
|
|
+ KEY_STARTDATE = (Date)this.getModel().getValue(KEY_CTL_STARTDATE);
|
|
|
|
|
+ KEY_ENDDATE = (Date)this.getModel().getValue(KEY_CTL_ENDDATE);
|
|
|
|
|
+ this.getView().updateView();
|
|
|
|
|
+ }
|
|
|
|
|
+ if (fieldKey.equals("nckd_type")){
|
|
|
|
|
+
|
|
|
|
|
+ KEY_TYPE = (String)this.getModel().getValue("nckd_type");
|
|
|
|
|
+ this.getView().updateView();
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 监听创建列事件
|
|
|
|
|
+ * @param event
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void beforeCreateDataGridColumns(BeforeCreateDataGridColumnsEvent event) {
|
|
|
|
|
+ // 所有列集合
|
|
|
|
|
+ List<DataGridColumn> dataGridColumns = event.getDataGridColumns();
|
|
|
|
|
+ // 动态创建文本列
|
|
|
|
|
+ TextDataGridColumn column = new TextDataGridColumn();
|
|
|
|
|
+ AmountDataGridColumn amountColumn = new AmountDataGridColumn();
|
|
|
|
|
+ amountColumn.setKey("colKey");
|
|
|
|
|
+ amountColumn.setCaption(new LocaleString("测试列"));
|
|
|
|
|
+
|
|
|
|
|
+ column.setKey("colKey");
|
|
|
|
|
+ column.setCaption(new LocaleString("测试列"));
|
|
|
|
|
+ // 加入列集合
|
|
|
|
|
+ dataGridColumns.add(column);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 数据绑定
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void dataGridBindData(DataGridBindDataEvent e) {
|
|
|
|
|
+ List<Object> list = new ArrayList<>();
|
|
|
|
|
+ int index = 0;
|
|
|
|
|
+ // 从参数获取rowBuilder来辅助构造行数据
|
|
|
|
|
+ DataGridRowBuilder builder = e.getDataGridRowBuilder();
|
|
|
|
|
+ for (int i = 0; i < 10; i++) {
|
|
|
|
|
+ DataGridRow row = builder.buildRow();
|
|
|
|
|
+ // rk和seq为系统保留字段(主键和序列号),支持自定义传值
|
|
|
|
|
+ row.setValue("rk", index); // rk必须存在且唯一不能重复
|
|
|
|
|
+ row.setValue("seq", index + 1);
|
|
|
|
|
+ row.setValue("textfield", "文本列数据");
|
|
|
|
|
+ row.setValue("colKey", "动态列数据");
|
|
|
|
|
+ list.add(row.get());
|
|
|
|
|
+ index++;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 重要: 传递列表数据
|
|
|
|
|
+ e.setData(list);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+}
|