苍穹云中级父子传参代码详情原创
2人赞赏了该文章
1,076次浏览
编辑于2023年04月11日 11:59:21
首先注册单据插件到申请单界面,第二注册动态表单插件到弹窗层
单据插件
import kd.bos.bill.AbstractBillPlugIn; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.datamodel.IDataModel; import kd.bos.form.CloseCallBack; import kd.bos.form.FormShowParameter; import kd.bos.form.OpenStyle; import kd.bos.form.ShowType; import kd.bos.form.control.Control; import kd.bos.form.control.EntryGrid; import kd.bos.form.control.events.CellClickEvent; import kd.bos.form.control.events.CellClickListener; import kd.bos.form.events.ClosedCallBackEvent; import kd.sdk.plugin.Plugin; import java.util.EventObject; /** * 单据界面 * * @author xxx */ public class OfficeApplyBillPlugin extends AbstractBillPlugIn implements CellClickListener, Plugin { @Override public void registerListener(EventObject e) { super.registerListener(e); EntryGrid entryGrid = this.getView().getControl("entryentity"); entryGrid.addCellClickListener(this); } @Override public void cellClick(CellClickEvent evt) { String key = evt.getFieldKey(); if ("gmdo_applynum".equals(key)) { IDataModel model = this.getModel(); //获取物料id DynamicObjectCollection doc = model.getEntryEntity("entryentity"); DynamicObject obj = doc.get(evt.getRow()); obj = obj.getDynamicObject("gmdo_basedatafield"); String id = obj.getString("id"); //控制FormShowParameter,打开子页面弹窗 FormShowParameter showParameter = new FormShowParameter(); OpenStyle openStyle = showParameter.getOpenStyle(); openStyle.setShowType(ShowType.Modal); showParameter.setFormId("gmdo_officecount"); //传参给子页面 showParameter.setCustomParam("id", id); showParameter.setCloseCallBack(new CloseCallBack(this, "gmdo_officecount")); this.getView().showForm(showParameter); } } @Override public void cellDoubleClick(CellClickEvent cce) { String key = cce.getFieldKey(); if ("gmdo_allcountbtn".equals(key)) { } } @Override public void closedCallBack(ClosedCallBackEvent e) { super.closedCallBack(e); String callBackPage = e.getActionId(); if ("gmdo_officecount".equals(callBackPage)){ //获取回参参数 int count = (int) e.getReturnData(); //写入页面 this.getModel().setValue("gmdo_applynum",count,0); } } }
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.form.events.BeforeClosedEvent; import kd.bos.form.plugin.AbstractFormPlugin; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.sdk.plugin.Plugin; import java.util.EventObject; /** * 动态表单 * * @author 22246 */ public class OfficeApplyFormPlugin extends AbstractFormPlugin implements Plugin { @Override public void afterCreateNewData(EventObject e) { super.afterCreateNewData(e); //获取父页面的传参 String id = getView().getFormShowParameter().getCustomParam("id"); QFilter filter = new QFilter("id", "=", Long.valueOf(id)); //查询物品名称和库存 DynamicObject dyn = BusinessDataServiceHelper.loadSingle("gmdo_sup", "name,gmdo_count", new QFilter[]{filter}); String name = dyn.getString("name"); int count = dyn.getInt("gmdo_count"); //把查询到的结果放入页面中 getModel().setValue("gmdo_name", name); getModel().setValue("gmdo_count", count); } @Override public void beforeClosed(BeforeClosedEvent e) { super.beforeClosed(e); //获取页面的库存数量 int count = (int) this.getModel().getValue("gmdo_count"); this.getView().returnDataToParent(count); } }