之前 有提一个帖子“单据体删除操作校验规则不生效”
{{{/article/2593005}}}
根据回复,通过脚本
1、在选择包含不能删除的分录(是否锁定)时,控制了删除:
2:、在选择都能删除的分录(是否锁定)时,控制错误
跟踪分析发现:在“BeforeDeleteRow”是对每条分录执行一次,但每一轮“BeforeDeleteRow”中执行获得选择分录值(“this.View.GetControl
附脚本如下:
public override void BeforeDeleteRow(BeforeDeleteRowEventArgs e)
{
base.BeforeDeleteEntry(e);
Field IsControl = this.View.BillBusinessInfo.GetField("IsLocked");
if (IsControl != null)
{
int IsLockedCount=0;
for (int i = 0; i < SelectedRowIndexs.Length; i++)
{
int IsUnHand = Convert.ToInt32(this.Model.GetValue( "IsLocked", SelectedRowIndexs));
if (IsUnHand != null)
{
IsLockedCount = IsLockedCount + Convert.ToInt32(IsUnHand);
}
}
if (IsLockedCount > 0)
{
this.View.ShowMessage("包含被锁定的"+IsLockedCount.ToString()+"行,不允许删除。");
e.Cancel = true;
}
}
}
推荐阅读