单据一直加载中
金蝶云社区-土豆
土豆
0人赞赏了该文章 1,461次浏览 未经作者许可,禁止转载编辑于2015年06月13日 09:03:17

业务场景:
我需要根据单据体1中数量和每箱数量,去计算出需要多少箱,然后插入箱数和物料信息到单据体2中并打印出标签;
单据体1中数量不大的时候,正常;
单据体1中数量较大时,单据就会一直加载中,等十几分钟还是加载中。
求处理方法插件代码如下:
int xiang = 0;
decimal shishou = 0;
int x=0;
int row = this.Model.GetEntryRowCount("FDetailEntity");
this.Model.DeleteEntryData("FDetailEntity2");

for (int i = 0; i < row; i++)
{
//根据明细单据体中【箱/pcs】和【实收数量】,计算当前明细行数据有几箱并插入条形码单据体
xiang = this.Model.GetValue("F_ZC_Xiang", i) == null ? 0 : Convert.ToInt32(this.Model.GetValue("F_ZC_Xiang", i));
shishou = this.Model.GetValue("FActReceiveQty", i) == null ? 0 : Convert.ToInt32(this.Model.GetValue("FActReceiveQty", i));
if (shishou > 0 && xiang > 0)
{
for (int j = 0; j < Math.Ceiling(shishou / xiang); j++)
{
this.Model.CreateNewEntryRow("FDetailEntity2");
this.Model.SetValue("FMaterialId2", this.Model.GetValue("FMaterialId", i), x);
this.Model.SetValue("F_ZC_UnitID", this.Model.GetValue("FUnitId", i), x);
this.Model.SetValue("F_ZC_Qty", xiang, x);

this.Model.SetValue("F_ZC_BatchNo", this.Model.GetValue("FLot", i), x);
this.Model.SetValue("FExpiryDate2", this.Model.GetValue("FExpiryDate", i), x);

x++;
}
if (shishou % xiang != 0)
{
this.Model.SetValue("F_ZC_Qty", shishou % xiang, x - 1);
}
}
}
this.View.UpdateView();
this.View.InvokeFormOperation(FormOperationEnum.Save);