网站建设120,陕西城乡住房建设厅网站,厂房出租做推广什么网站好,百度搜索热词排行榜文章目录 金蝶云星空表单插件单据体批量删除#xff0c;序号自增字段标识说明表单插件获取单据体数据包移除物料为空的行其他移除物料为空的行的方式#xff0c;但是测试不通过#xff0c;不建议使用序号重新生成测试 金蝶云星空表单插件单据体批量删除#xff0c;序号自增… 文章目录 金蝶云星空表单插件单据体批量删除序号自增字段标识说明表单插件获取单据体数据包移除物料为空的行其他移除物料为空的行的方式但是测试不通过不建议使用序号重新生成测试 金蝶云星空表单插件单据体批量删除序号自增
字段标识说明
单据体标识FEntity 序号标识Seq 物料标识F_XXXX_MaterialId 【一键删除】操作标识CleanEmptyEntity
表单插件 获取单据体数据包
//获取单据体为空提示操作失败
var entityD this.View.Model.DataObject[FEntity] as DynamicObjectCollection;
if (entityDnull || entityD.Count0)
{e.Cancel true;base.View.ShowErrMessage(明细信息为空无需操作。);break;
}
//不为空时将物料为空的行全部删除,如果没有为空的行那就提示操作失败
var canEntity entityD.Where(s(s[F_XXXX_MaterialId_Id]).Equals(0)).ToList();
if (canEntity null || canEntity.Count 0)
{e.Cancel true;base.View.ShowErrMessage(明细信息全部有效无需操作。);break;
}移除物料为空的行 //循环删除分录1 测试通过
for (int i entityD.Count - 1; i 0; i--)
{string seq Convert.ToString(entityD[i][Seq]);var getIsDelete canEntity.Where(s (s[Seq] ).Equals(seq)).ToList().FirstOrDefault();if (getIsDelete ! null){entityD.RemoveAt(i);}
}其他移除物料为空的行的方式但是测试不通过不建议使用
//循环删除分录4 测试不通过 删除第一条后下一次循环获取报错集合已修改可能无法执行枚举操作。
foreach (var item in entityD)
{//直接判断 物料编码为空则直接删除if ((item[F_XXXX_MaterialId_Id] ).Equals(0)){entityD.Remove(item);}
}//循环删除分录2 测试不通过 每删除一行集合就少一行然而循环的索引是递增的所以就会有需要删除的行往前挪了错过了判断删除的时机
//for (int i 0; i entityD.Count - 1; i)
//{
// string seq Convert.ToString(entityD[i][Seq]);
// var getIsDelete canEntity.Where(s (s[Seq] ).Equals(seq)).ToList().FirstOrDefault();
// if (getIsDelete ! null)
// {
// entityD.RemoveAt(i);
// }
//}//循环删除分录3 测试不通过 不影响原来的实体
//for (int i canEntity.Count - 1; i 0; i--)
//{
// canEntity.RemoveAt(i);
//}//循环删除分录5 测试不通过无反应
//entityD.ToList().RemoveAll(s (s[F_XXXX_MaterialId_Id] ).Equals(0));
//entityD.ToList().RemoveAll(canEntity);
//entityD.ToList().RemoveAll(s canEntity.Select(d (d[F_XXXX_MaterialId_Id] )).ToList().Contains((s[F_XXXX_MaterialId_Id] )));
//entityD.ToList().RemoveAll(s 0.Contains(s[F_XXXX_MaterialId_Id] ));序号重新生成 //获取已经生成的行的最大序号新的行按照这个继续递增
int maxSeq entityD.Where(s Convert.ToInt64(s[Id]) 0).Max(d Convert.ToInt32(d[Seq]));
//需要 序号重新编号
var sortSeqE entityD.Where(s Convert.ToInt64(s[Id]) 0).ToList();
for (int i0;i sortSeqE.Count();i)
{sortSeqE[i][Seq] maxSeq;
}this.View.UpdateView(FEntity);//刷新单据体测试