单据列表和编辑界面套打携带凭证号(以应收单为例)二开方案仅供参考

使用visual studio新建工程,并添加相关引用

新建类TestPrinter.cs,继承基类“AbstractBillPlugIn”,并重载OnPrepareNotePrintData方法。
using Kingdee.BOS.App.Data; using Kingdee.BOS.Core.Bill.PlugIn; using Kingdee.BOS.Orm.DataEntity; using Kingdee.BOS.Orm.Metadata.DataEntity; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestPrintPlugIn { public class TestPrinter : AbstractBillPlugIn { public override void OnPrepareNotePrintData(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.PreparePrintDataEventArgs e) { if (e.DataSourceId.Equals("FBillHead", StringComparison.OrdinalIgnoreCase)) { DynamicObject billObj = this.Model.DataObject; // 读取单据内码 long billId = Convert.ToInt64(billObj[0]); // 查询vh表获取单据对应凭证号 string sql = string.Format("SELECT VH.FID,VH.FVOUCHERGROUPNO FROM T_AR_RECEIVABLE_VH VH WHERE FID={0}", billId); DataSet dataset = DBUtils.ExecuteDataSet(this.Context, sql); Dictionary<string, string> myDictionary = new Dictionary<string, string>(); foreach (DataTable dtt in dataset.Tables) { for (int i = 0; i < dtt.Rows.Count; i++) { try { myDictionary.Add(dtt.Rows[i]["FID"].ToString(), dtt.Rows[i]["FVOUCHERGROUPNO"].ToString()); } catch (Exception ex) { //log } } } //注册临时字段 DynamicObjectType dot = e.DataObjects[0].DynamicObjectType; dot.RegisterSimpleProperty("FVOUCHERGROUPNO", typeof(object), attributes: new SimplePropertyAttribute() { Alias = "FVOUCHERGROUPNO" }); DynamicObject obj = new DynamicObject(dot); foreach (var p in e.DataObjects[0].DynamicObjectType.Properties) { obj[p] = e.DataObjects[0][p]; } //动态字段赋值 obj["FVOUCHERGROUPNO"] = myDictionary[billId.ToString()]; e.DataObjects[0] = obj; } base.OnPrepareNotePrintData(e); } } }新建类TestPrinterList.cs,继承基类“ AbstractListPlugIn”,并重载OnPrepareNotePrintData方法。
using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TestPrintPlugIn { public class TestPrinterList : AbstractListPlugIn { public override void OnPrepareNotePrintData(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.PreparePrintDataEventArgs e) { base.OnPrepareNotePrintData(e); if (e.DataSourceId.Equals("FBillHead", StringComparison.OrdinalIgnoreCase)) { if (e.DataObjects != null) { List<long> lstId = new List<long>(); foreach (var data in e.DataObjects)
单据列表和编辑界面套打携带凭证号(以应收单为例)二开方案仅供参考
使用visual studio新建工程,并添加相关引用新建类TestPrinter.cs,继承基类“AbstractBillPlugIn”,并重载OnPrepareNotePrintData方法。u...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



