二开案例.表单插件.批量复制单据体的数据行到子单据体

【应用场景】
批量复制单据体的数据行到子单据体。
【案例演示】
采购订单,将明细信息单据体选中数据行复制新增到子单据体。

【实现步骤】
<1>编写表单插件,代码如下。
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using Kingdee.BOS.Util;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【表单插件】批量复制单据体的数据行到子单据体
/// </summary>
[Description("【表单插件】批量复制单据体的数据行到子单据体"), HotUpdate]
public class CopyEntityDataToSubEntityFormPlugIn : AbstractDynamicFormPlugIn
{
public override void EntryBarItemClick(BarItemClickEventArgs e)
{
base.EntryBarItemClick(e);
if (e.BarItemKey.EqualsIgnoreCase("BatchCopyAdd"))
{
var fieldMaps = new List<Tuple<string, string>>();
// 单据体.字段标识=>子单据体.字段标识
fieldMaps.Add(new Tuple<string, string>("FMaterialId", "F_Jac_Base"));
fieldMaps.Add(new Tuple<string, string>("FQty", "F_Jac_Qty"));
CopyEntityDataToSubEntity(this.View, "FPOOrderEntry", "F_Jac_SubEntity", fieldMaps);
}
}
private void CopyEntityDataToSubEntity(IDynamicFormView view, string entityKey, string subEntityKey, List<Tuple<string, string>> fieldMaps)
{
var entity = view.BusinessInfo.GetEntity(entityKey);
//var subEntity = view.BusinessInfo.GetEntity(subEntityKey);
var entryGrid = view.GetControl<EntryGrid>(entityKey);
var selectedRows = entryGrid.GetSelectedRows();
if (selectedRows == null)
{
view.ShowMessage("请选择分录数据行!");
return;
}
selectedRows = selectedRows.OrderBy(o => o).ToArray();
var currentRowIndex = view.Model.GetEntryCurrentRowI
二开案例.表单插件.批量复制单据体的数据行到子单据体
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



