二开案例.单据体显示物料上的附件
需求:物料上添加了附件字段,用于上传图纸。希望录单时,能查看附件
二开方案:在单据明细上增加附件字段,使用二开插件,将物料的附件携带到该字段上。
1、在物料上添加“多选附件(文件服务器)”字段,ID为F_UNW_ATTACHMENTS_QTR
2、在单据体上添加“基础资料属性”字段,引用物料上的附件字段
3、在单据体上添加“基础资料属性”字段,引用物料上的附件字段。打开单据,发现系统不支持,带不出附件。
4、变通实现,在单据体上添加“多选附件(文件服务器)”字段,ID为F_UNW_Attachments_tzk。通过二开插件,将物料上的附件带到该字段上。
注意:该字段值来自物料,不需要保存到数据库。可设置成只读,“字段名”属性设置为空。
4、通过二开插件,将物料上的附件带到该字段上。
using Kingdee.BOS.Contracts; using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; using Kingdee.BOS.Core.Metadata; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.ServiceHelper; using System; using System.Linq; namespace Test202408 { [Kingdee.BOS.Util.HotUpdate] public class 单据体明细显示物料附件 : AbstractBillPlugIn { string materialFieldKey = "F_UNW_Material"; //单据体中的物料字段名 string fromFieldKey = "F_UNW_Attachments_qtr"; //物料上的附件字段名 string toFieldKey = "F_UNW_Attachments_tzk"; //单据体上的附件字段名 public override void AfterBindData(EventArgs e) { var entry = this.View.BusinessInfo.GetEntity("FEntity"); var rows = this.Model.GetEntityDataObject(entry); for (int i = 0; i < rows.Count; i++) { LoadMaterialAttachments(materialFieldKey, fromFieldKey, toFieldKey, i); } } public override void DataChanged(DataChangedEventArgs e) { if (e.Key == materialFieldKey) { LoadMaterialAttachments(materialFieldKey, fromFieldKey, toFieldKey, e.Row); } } void LoadMaterialAttachments(string materialFieldKey, string fromFieldKey, string toFieldKey, int rowNumber) { var materialObj = this.Model.GetValue(materialFieldKey, rowNumber) as DynamicObject; if (materialObj == null) return; IMetaDataService metaService = ServiceFactory.GetMetaDataService(this.Context); FormMetadata metaData = (FormMetadata)metaService.Load(this.Context, "BD_MATERIAL"); var materialId = materialObj[0]; OQLFilter filter = OQLFilter.CreateHeadEntityFilter(string.Format("FMaterialId={0}", "'" + materialId + "'")); DynamicObject dyo = BusinessDataServiceHelper.Load(this.Context, metaData.BusinessInfo, null, filter).FirstOrDefault(); if (dyo == null) return; var value = dyo[fromFieldKey]; this.Model.SetValue(toFieldKey, value, rowNumber); } } }
5、效果
二开案例.单据体显示物料上的附件
需求:物料上添加了附件字段,用于上传图纸。希望录单时,能查看附件二开方案:在单据明细上增加附件字段,使用二开插件,将物料的附件携带...
点击下载文档
本文2024-09-16 18:40:53发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-23718.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章