请教单据转换插件基础资料携带入下游单据的多类别基础...
金蝶云社区-王一休
王一休
1人赞赏了该文章 2,341次浏览 未经作者许可,禁止转载编辑于2017年03月06日 11:27:52

各位老师好: 请教单据转换插件基础资料字段如何携带入下游单据的多类别基础字段,例如:自制单据的供商应字段携带入其它应付单的往来单位(往来单位类型已设为供应商),编写如下代码,下推完成后往来单位的值依然为空,请老师指导,谢谢!!

注:有看过老师的这个贴子,https://vip.kingdee.com/article/24930 最终还是没有闹明白,还请针对指导谢谢!!

//追加没有映射关系的字段
public override void OnQueryBuilderParemeter(QueryBuilderParemeterEventArgs e)
{
e.SelectItems.Add(new SelectorItemInfo("F_ZHAOBIAODAILI"));
}

///


/// 设置OnFieldMapping 事件启用
///

///
public override void OnBeforeFieldMapping(BeforeFieldMappingEventArgs e)
{
base.OnBeforeFieldMapping(e);
e.FireFieldMappingEvent = true;
}
public long F_ZHAOBIAODAILI ;
///
/// 获取源单数据
///

///
public override void OnFieldMapping(FieldMappingEventArgs e)
{
List SrcData = e.ConvertSource as List;
if (SrcData.Count > 0 )
{
F_ZHAOBIAODAILI = Convert.ToInt64(SrcData[0]["F_ZHAOBIAODAILI"]) ; //取得源单供应商的内码
}
}
///
/// 写入下游单据往来单位的值
///

///
public override void OnAfterCreateLink(CreateLinkEventArgs e)
{
base.OnAfterCreateLink(e);
ExtendedDataEntity[] heads = e.TargetExtendedDataEntities.FindByEntityKey("FBillHead");
if (heads == null)
{
return;
}
foreach (ExtendedDataEntity head in heads)
{
head.DataEntity["CONTACTUNIT_id"] = F_ZHAOBIAODAILI;
}
}

跟踪结果如下图: