选单插件为个别字段赋值
金蝶云社区-Zw814
Zw814
0人赞赏了该文章 968次浏览 未经作者许可,禁止转载编辑于2016年12月05日 11:33:40

(1)该单据数据由选单生成,其中仓库、仓位需要手工为其赋值,运行出来出现这样的情况,应该如何改正?
(2)仓位应该怎么赋值,像仓库这样赋不正确


public class PackingPackConvert : AbstractConvertPlugIn
{
public override void OnAfterFieldMapping(AfterFieldMappingEventArgs e)
{
#region 变量定义
int iLength = 0, iDetailEntryCount = 0;
Dictionary dicValue = null;
bool bStatus = false;
string strOrgId = string.Empty, strStockId = string.Empty, strStockPlaceId = string.Empty, strErr = string.Empty;
object objValue = null;
DynamicObjectCollection dycDetailEntry = null;
DynamicObject[] stockObjs = null;
DynamicObject newRow = null;
Entity DetailEntity = null;
BaseDataField stockFId = null, stockPlaceId = null;
long lstockId = 0;
IViewService viewService = null;
#endregion
try
{
base.OnAfterFieldMapping(e);
var TarEntitySet = e.TargetExtendDataEntitySet;
iLength = TarEntitySet.FindByEntityKey("FEntity").Length;
for (int i = 0; i < iLength; i++)
{
objValue = TarEntitySet.FindByEntityKey("FBillHead")[0]["FUSEORGID"];
strOrgId = (objValue == null ? "0" : (objValue as DynamicObject)["Id"].ToString()); //组织Id
dicValue = new Dictionary();
dicValue = CommonUtils.GetPackDefaultStockPlace(this.Context, strOrgId);
bStatus = Convert.ToBoolean(dicValue["STATUS"]); //状态
strStockId = dicValue["STOCKID"].ToString(); //仓库Id
strStockPlaceId = dicValue["STOCKPLACEID"].ToString(); //仓位Id
strErr = dicValue["ERROR"].ToString(); //错误信息
if (bStatus == false)
{
throw new KDException("", strErr);
return;
}
else
{
DetailEntity = e.TargetBusinessInfo.GetEntity("FEntity");
dycDetailEntry = TarEntitySet.FindByEntityKey("FBillHead")[0]["BC_PACKINGPACKENTRY"] as DynamicObjectCollection;
iDetailEntryCount = dycDetailEntry.Count;
newRow = new DynamicObject(DetailEntity.DynamicObjectType);
dycDetailEntry.Add(newRow);

#region 仓库
stockFId = e.TargetBusinessInfo.GetField("FDELIVERYSTOCKID") as BaseDataField;
lstockId = Convert.ToInt64(dicValue["STOCKID"]);
viewService = ServiceHelper.GetService();
stockObjs = viewService.LoadFromCache(this.Context, new object[] { lstockId }, stockFId.RefFormDynamicObjectType);
stockFId.RefIDDynamicProperty.SetValue(newRow, lstockId);
stockFId.DynamicProperty.SetValue(newRow, stockObjs[0]);
#endregion

#region 仓位
//stockFId = e.TargetBusinessInfo.GetField("FDELIVERYSTOCKPLACEID") as BaseDataField;
//lstockId = Convert.ToInt64(dicValue["STOCKPLACEID"]);
//viewService = ServiceHelper.GetService();
//stockObjs = viewService.LoadFromCache(this.Context, new object[] { lstockId }, stockFId.RefFormDynamicObjectType);
//stockFId.RefIDDynamicProperty.SetValue(newRow, lstockId);
//stockFId.DynamicProperty.SetValue(newRow, stockObjs[0]);
#endregion
}
}
}
catch (Exception ex)
{
throw ex;
}
}
}

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0