以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 流程控制 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=141327) |
-- 作者:yifan3429 -- 发布时间:2019/9/26 21:26:00 -- 流程控制 Dim r As Row = Tables("凭证").Current If e.DataCol.Name = "结账" Then \'如果是已结帐列的内容变动 \'If r IsNot Nothing Then If r("审核") = True Then r("结账") = False r.Locked = True \'那么锁定此行 r("结账信息") = User.Name & "-"& Date.Now & "结账" r("结账日期") = Date.Now r("出纳") = User.Name Else e.Cancel = True MessageBox.Show("不能批准还未通过审核的行.") End If End If 如果审核没有通过 就会停止执行 不允许结账 并提示 如果审核通过就可以结账
|
-- 作者:狐狸爸爸 -- 发布时间:2019/9/27 8:04:00 -- 先纠正一点,作为老用户,怎么可能还用: Dim r As Row = Tables("凭证").Current 应该是: Dim r As DataRow = e.DataRow 其他没看出什么
|
-- 作者:houseer -- 发布时间:2019/9/27 11:36:00 -- 以下是引用狐狸爸爸在2019/9/27 8:04:00的发言:
先纠正一点,作为老用户,怎么可能还用: Dim r As Row = Tables("凭证").Current 应该是: Dim r As DataRow = e.DataRow 其他没看出什么 请问这俩种写法有什么区别?
|
-- 作者:有点蓝 -- 发布时间:2019/9/27 12:07:00 -- e.DataRow指触发事件的行 Tables("凭证").Current指当前行 比如使用代码赋值了10行,e.DataRow会不同,而Tables("凭证").Current可能不会变都是同一行
|
-- 作者:yifan3429 -- 发布时间:2019/9/27 14:20:00 -- Dim r As DataRow = e.DataRow If e.DataCol.Name = "结账" Then \'如果是已结帐列的内容变动 \'If r IsNot Nothing Then If r("审核") = True Then r("结账") = False r.Locked = True \'那么锁定此行 r("结账信息") = User.Name & "-"& Date.Now & "结账" r("结账日期") = Date.Now r("出纳") = User.Name Else e.Cancel = True MessageBox.Show("不能批准还未通过审核的行.") End If End If 代码找不到问题了了 老师看下 我需要的是 点击结账列 如果审核列是勾选的 那么填充结账相关信息,如果审核没有勾选那么停止操作 并提示要先审核后。 现在是会有提示但是结账还是会被勾选。
|
-- 作者:有点蓝 -- 发布时间:2019/9/27 14:22:00 -- 代码放到datacolchanging事件 |