电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

复制整张单据并保存

来源:金蝶云社区作者:金蝶2024-09-166

复制整张单据并保存

现需要通过插件在点击按钮时,实现:复制当前整张单据(包括单据头以及所有单据体),更改其中部分字段后保存生成新的单据。
  通过Clone复制单据信息,更该字段后再通过ISaveService进行保存;
  

public override void EndOperationTransaction(EndOperationTransactionArgs e)
{
	base.EndOperationTransaction(e);
	if (e.DataEntitys.Length > 0)
	{
		for (int i = 0; i < e.DataEntitys.Length; i++)
		{
			string billno = e.DataEntitys[i]["BillNO"].ToString();
			//e.DataEntitys[i].Clone();
			IViewService ivs = Kingdee.BOS.App.ServiceHelper.GetService();
			MetaDataService metaService = new MetaDataService();
			FormMetadata formmeta = metaService.Load(this.Context, "YL_T_TMS_ForwardInfo") as FormMetadata;
			DynamicObjectType dt = formmeta.BusinessInfo.GetDynamicObjectType();
			DynamicObject[] dyos = ivs.Load(this.Context, new object[] {e.DataEntitys[i]["Id"]}, dt);
			if (dyos.Length > 0)
			{
				DynamicObject[] dyosclon = dyos.Clone() as DynamicObject[];
				if (dyosclon != null)
				{
					IEnumerable infopk =ServiceHelper.GetService().GetSequenceInt64(this.Context, "YL_T_TMS_ForwardInfo", 1);
					dyosclon[0]["Id"] = infopk.ElementAt(0);
					dyosclon[0]["BillNo"] = dyosclon[0]["BillNo"] + "QC";
					//dyosclon[0][""]
					DynamicObjectCollection forwardInfoForw =dyosclon[0]["YL_T_TMS_ForwardInfoForw"] as DynamicObjectCollection;
					if (forwardInfoForw.Count > 0)
					{
						//int[] forwpk = ServiceHelper.GetService().GetSequenceInt32(this.Context, "YL_T_TMS_ForwardInfoForw", forwardInfoForw.Count);
						//for (int j = 0; j < forwardInfoForw.Count; j++)
						//{
						// forwardInfoForw[j]["Id"] = forwpk[j];
						//}
						forwardInfoForw.Clear();
					}
					DynamicObjectCollection dyocmat = dyosclon[0]["YL_T_TMS_ForwardInfoMAT"] as DynamicObjectCollection;
					if (dyocmat.Count > 0)
					{
						//int[] matpk = ServiceHelper.GetService().GetSequenceInt32(this.Context, "YL_T_TMS_ForwardInfoMAT", dyocmat.Count);
						for (int j = 0; j < dyocmat.Count; j++)
						{
							dyocmat[j]["Id"] = infopk.ElementAt(0);
						}
					}
					ISaveService ise = Kingdee.BOS.App.ServiceHelper.GetService();
					ise.Save(this.Context, formmeta.BusinessInfo, dyosclon);
				}
			}
		}
	}
}

①先根据单据ID调用Load方法加载出完整的数据包:

formID="PUR_PurchaseO

复制整张单据并保存

现需要通过插件在点击按钮时,实现:复制当前整张单据(包括单据头以及所有单据体),更改其中部分字段后保存生成新的单据。 通过Clone复...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信