附件落库 (转载自 陈来珍-基础资料附件字段附件如何保存到已有单据的附件字段)
352次浏览
编辑于2024年07月26日 09:37:20
关键字:附件,落库
一、需求
有一个单据D(kded_demod_clz),在其列表中有一个“同步附件”的按钮,点击该按钮时,同步已选单据上物品基础资料的附件字段附件到单据D的附件字段上。
二、思路与方案
首先,通过orm接口查出已选基础资料的附件字段的附件信息,然后直接后台赋值给单据D就行了。对于已持久化的附件,两个实体共用一个附件地址附件时,某一个实体删除附件,另外一个实体中依然可以存在该附件。
三、 实现过程
package example.demoD; public class DemoDBillListPlugin extends AbstractListPlugin { @Override public void itemClick(ItemClickEvent evt) { if (evt.getItemKey().equals("kded_syncattfield")) { BillList billList = this.getView().getControl("billlistap"); String billFormId = billList.getBillFormId(); ListSelectedRowCollection selectedRows = billList.getSelectedRows(); ArrayList<Object> ids = new ArrayList<>(); //先查询出来列表选择的行数据id的集合,然后通过id集合一次查库 for (ListSelectedRow listSelectedRow : selectedRows) { Object primaryKeyValue = listSelectedRow.getPrimaryKeyValue(); ids.add(primaryKeyValue); } DynamicObject[] dObjs = BusinessDataServiceHelper.load(billFormId, "kded_dgoods,kded_attachmentfielddemod", new QFilter[] { new QFilter("id", QCP.in, ids) }); for (DynamicObject dObj : dObjs) { // 获取单据D上的附件字段信息 DynamicObjectCollection dAttCol = dObj.getDynamicObjectCollection("kded_attachmentfielddemod"); DynamicObject goodsObj = dObj.getDynamicObject("kded_dgoods"); /** * 单据D上的基础资料kded_dgoods,必须添加引用附件字段的引用属性,下面才能直接getDynamicObjectCollection("kded_attachmentfield")获取附件字段数据 * 否则需要根据goodsObj的pkid去BusinessDataServiceHelper.loadSingle出来才能查询到附件字段数据 */ DynamicObjectCollection goodsAttCol = goodsObj.getDynamicObjectCollection("kded_attachmentfield"); // 遍历物品的附件字段的附件信息,赋值给单据D的附件 字段 for (DynamicObject goodAtt : goodsAttCol) { dAttCol.addNew().set("fbasedataid", goodAtt.get("fbasedataid")); } } OperationResult result = SaveServiceHelper.saveOperate("save", billFormId, dObjs,OperateOption.create()); if (result.isSuccess()) { this.getView().showSuccessNotification("附件同步成功"); }else { this.getView().showSuccessNotification("附件同步失败"); } // option) } super.itemClick(evt); } }
四、 效果图
单据列表选择单据,并点击”同步附件“。提示”同步成功“后,打开单据,可以看到附件字段中已上传了附件。
本文转载自:开发者社区
作者:陈来珍
原文链接:https://vip.kingdee.com/article/293702895219248640?productLineId=29&lang=zh-CN
赞 0
0人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读