diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcEqCostSplitBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcEqCostSplitBillPlugin.java index 8375bbf..52a70db 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcEqCostSplitBillPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EcEqCostSplitBillPlugin.java @@ -1,23 +1,74 @@ package zcgj.zcdev.zcdev.pr.plugin.form; import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.bill.OperationStatus; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.resource.ResManager; import kd.bos.dataentity.utils.StringUtils; +import kd.bos.form.FormShowParameter; +import kd.bos.form.ShowType; +import kd.bos.form.control.EntryGrid; +import kd.bos.form.events.HyperLinkClickEvent; +import kd.bos.form.events.HyperLinkClickListener; 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.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import java.util.Calendar; import java.util.EventObject; +import java.util.HashMap; +import java.util.Map; -public class EcEqCostSplitBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener{ +/* + * 设备成本核算表单插件 + * 说明 1:过滤成本分解结构字段 + * 2:期间初始化赋值 + * 3:结算单编码超链接跳转 + */ +public class EcEqCostSplitBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener, HyperLinkClickListener { @Override public void registerListener(EventObject e) { super.registerListener(e); BasedataEdit procbs = (BasedataEdit) this.getControl("procbs"); procbs.addBeforeF7SelectListener(this); + EntryGrid control = this.getControl("settlesplitentity"); + control.addHyperClickListener(this); + } + + public void afterCreateNewData(EventObject e) { + Calendar cal = Calendar.getInstance(); + int year = cal.get(Calendar.YEAR); + int month = cal.get(Calendar.MONTH) + 1; + QFilter yearFilter = new QFilter("periodyear", "=", year); + QFilter monthFilter = new QFilter("periodnumber", "=", month); + DynamicObject[] peridoArr = BusinessDataServiceHelper.load("bd_period", "id", new QFilter[]{yearFilter, monthFilter});//会计期间 + if (peridoArr.length != 0) { + DynamicObject period = peridoArr[0]; + this.getModel().setValue("splitperiod", period);//期间 + } + } + + public void hyperLinkClick(HyperLinkClickEvent event) { + String fieldName = event.getFieldName(); + int rowIndex = event.getRowIndex(); + if ("settleno".equals(fieldName)) { + DynamicObject settlesplit = (DynamicObject) this.getModel().getEntryEntity("settlesplitentity").get(rowIndex); + Object settleId = settlesplit.get("settleid"); + this.toView(settleId, "eceq_settle"); + } + } + + protected void toView(Object pkValue, String formId) { + Map params = new HashMap(); + params.put("pkId", String.valueOf(pkValue)); + params.put("formId", formId); + FormShowParameter param = FormShowParameter.createFormShowParameter(params); + param.getOpenStyle().setShowType(ShowType.MainNewTabPage); + param.setStatus(OperationStatus.VIEW); + this.getView().showForm(param); } public void beforeF7Select(BeforeF7SelectEvent arg0) {