采购订单-采购需求带出物料明细

This commit is contained in:
李贵强 2025-05-27 17:46:01 +08:00
parent dda0b27e25
commit f79ca2888f
1 changed files with 70 additions and 0 deletions

View File

@ -0,0 +1,70 @@
package shkd.repc.repe.formplugin;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.ListSelectedRow;
import kd.bos.form.field.RefBillEdit;
import kd.bos.form.field.events.AfterF7SelectEvent;
import kd.bos.form.field.events.AfterF7SelectListener;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.sdk.plugin.Plugin;
import java.util.EventObject;
/**
* 动态表单插件
*/
public class OrderFormCarryMaterialPlugin extends AbstractFormPlugin implements Plugin, AfterF7SelectListener {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
RefBillEdit bEdit = this.getView().getControl("qeug_refbillfield");
bEdit.addAfterF7SelectListener(this);
}
@Override
public void afterF7Select(AfterF7SelectEvent afterF7SelectEvent) {
// 获取选中行主键
ListSelectedRow listSelectedRow = afterF7SelectEvent.getListSelectedRow();
Long primaryKeyValue = (Long) listSelectedRow.getPrimaryKeyValue();
// 验证主键有效性
if (primaryKeyValue == null || primaryKeyValue.compareTo(0L) == 0) {
return;
}
// 加载单据数据
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(primaryKeyValue, "recon_settleplanbill");
if (dynamicObject == null) {
return;
}
// 获取结算计划单明细
DynamicObjectCollection entryCollection = dynamicObject.getDynamicObjectCollection("qeug_cgxqentry");
if (entryCollection == null || entryCollection.isEmpty()) {
return;
}
// 获取当前单据物料明细
DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("orderformentry");
// 清空现有数据如果有
if (!entryEntity.isEmpty()) {
this.getModel().deleteEntryData("orderformentry");
}
// 填充物料数据
for (int i = 0; i < entryCollection.size(); i++) {
DynamicObject settlePlanMaterial = entryCollection.get(i).getDynamicObject("qeug_materialmasterid");
if (settlePlanMaterial != null) {
this.getModel().insertEntryRow("orderformentry", i);
this.getModel().setValue("material", settlePlanMaterial, i);
}
}
// 刷新界面
this.getView().updateView("orderformentry");
}
}