以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- HasChanges的状态问题? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=158975) |
-- 作者:hitzfeld -- 发布时间:2020/12/9 8:40:00 -- HasChanges的状态问题? HasChanges按道理是只作用于新增行(红色),但是我发现怎么锁定的也会提示? 比如窗口有三个按钮:保存,审核,退出。我分别在三个按钮写下面代码 保存 Tables("采购单").Current.save Dim dr As Row = Tables("采购单").Current For Each cdr As DataRow In dr.DataRow.GetChildRows("采购明细") cdr.Save Next 审核 If Tables("采购单").Current IsNot Nothing AndAlso Tables("采购单").Current.DataRow.GetChildRows("采购明细").count = 0 msgbox("没有添加明细") Return Else Dim drs1 As List(Of DataRow) drs1 = Tables("采购单").Current.DataRow.GetChildRows("采购明细") For Each dr As DataRow In drs1 If dr("采购数量") = 0 Then msgbox("数量不可为0") Return Else dr.save dr.Locked = True End If Next Tables("采购单").Current.Save() Tables("采购单").Current("审核") = "已审核" Tables("采购单").Current.Locked = True msgbox("已审核") End If 退出 If DataTables("采购明细").HasChanges Then If MessageBox.Show("采购表已经被修改,是否保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then Tables("采购单").Current.Save() Tables("采购单.采购明细").Save() Forms("采购单").close end if end if 保存按钮和审核按钮其实就差一个lock,但是在点击退出的时候,审核必定提示已修改,保存则不会? [此贴子已经被作者于2020/12/9 8:40:39编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/12/9 8:46:00 -- HasChanges不仅仅是只作用于新增行,如何数据的更改都起作用,包括增删改。 可以锁定的表有一个_Locked列,锁定行的时候,会导致_Locked列数据发生变化
|
-- 作者:hitzfeld -- 发布时间:2020/12/9 10:38:00 -- 蓝老师,那如果我只判断保存和锁定状态,有保存(含锁定)就不提醒要怎么写? |
-- 作者:有点蓝 -- 发布时间:2020/12/9 11:04:00 -- 没有办法,完全没有必要,锁定肯定也要保存才有效,不如就白锁了。 |
-- 作者:hitzfeld -- 发布时间:2020/12/9 11:16:00 -- 主要是一直提醒很烦呐。。。。 比如我开了张单,保存了,审核了,退出的时候你还问我要不要保存?我就糊涂了这样一直提醒也不是个事。
|
-- 作者:有点蓝 -- 发布时间:2020/12/9 11:22:00 -- 保存了,审核了 -- 应该反过来,审核了再保存 |