1. 程式人生 > >金蝶雲星空拆分錄二次開發

金蝶雲星空拆分錄二次開發

tao 示例代碼 clas 關聯關系 rowid clone 數量 uid eee

有客戶需求按照一定的規則將一條分錄拆成多條分錄,比如物料的數量是1400,那麽按照數量500的標準來拆分錄,那麽需要將原來的分錄拆成500,500,400這三條分錄,之前使用的方法是用this.View.Model.CreateNewEntryRow("FT_BD_CUSTLOCATION")和this.View.Model.SetValue()來完成拆分錄,這樣需要添加的字段較多,但是依然能達到效果。問題是這樣拆分錄之後,單據的關聯關系被破壞了,上查和下查都查不到關聯的單據了,所以需要使用clone()的方法來完成拆分錄,示例代碼如下:

DynamicObject obj = this.View.Model.DataObject as DynamicObject;//構建整個單據的數據包
Entity entity = this.View.BusinessInfo.GetEntity("FTreeEntity");//構建單據體數據包
DynamicObjectCollection entityrows = entity.DynamicProperty.GetValue(obj) as DynamicObjectCollection;//構建單據行數據包

DynamicObject EntryRow = entityrows[i].Clone() as DynamicObject;//克隆單據體的第i行

EntryRow["Seq"] = Seq;//給單據行的具體字段進行賦值
EntryRow["RowId"] = System.Guid.NewGuid().ToString();
entityrows.Add(EntryRow);//將克隆出來的新行添加到單據體數據包中

用這種方式做的拆單功能不會破壞單據的轉換關系,上查下查都沒有問題!

金蝶雲星空拆分錄二次開發