以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于取消的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47306) |
-- 作者:zyys2813 -- 发布时间:2014/3/7 20:47:00 -- 关于取消的问题 在窗口中新增一行,保存,再新增一行,撤销 出现:新增的第二行删除,但新增且已保存的第一行"出库数量"清空,再撤销一次又有了 查看帮助的 Validating 事件,要把"撤销"按钮的"执行验证"属性设为False即可,但还是不管用 "出库数量"的 Validating代码为 Dim c As DataRow = Tables("出库").Current.DataRow If c.RowState = DataRowState.added Then If e.Form.Controls("出库数量").value > e.Form.Controls("库存数量").value Then MessageBox.Show("出库数量大于库存数量") e.Cancel = True End If End If 撤销的代码为 Dim c As DataRow = Tables("出库").Current.DataRow If c.RowState = DataRowState.Added Then c.Delete() else DataTables("出库").RejectChanges() end if 补充:只新增一行再撤销,没有问题 可能说的较乱,请大神帮忙,谢谢 [此贴子已经被作者于2014-3-7 20:53:57编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/3/7 21:37:00 -- 是问怎样才能让 第一行 的出库数量 保持不变?
你看看你的出库数量是根据什么计算的,再看看 DataRowDeleted 事件写了什么代码 |
-- 作者:zyys2813 -- 发布时间:2014/3/8 8:57:00 -- 有点甜老师 出库数量是人工填写的,DataRowDeleted 事件 里没有代码
|
-- 作者:狐狸爸爸 -- 发布时间:2014/3/8 9:08:00 -- Dim c As DataRow = Tables("出库").Current.DataRow If c.RowState = DataRowState.added Then If e.Form.Controls("出库数量").value > e.Form.Controls("库存数量").value Then MessageBox.Show("出库数量大于库存数量") c("出库数量") = nothing e.Cancel = True End If End If [此贴子已经被作者于2014-3-8 9:08:50编辑过]
|
-- 作者:zyys2813 -- 发布时间:2014/3/8 16:54:00 -- 经过反复试验,可能是与 有多个控件的ValueChanged事件中 Select()到同一个控件造成的, 这样做的原因是不知道下拉窗口取值后,如何跳到另一个控件。 后来在下拉窗口中DoubleClick写 If Forms("窗口1").Opened Then Forms("窗口1").Controls("出库数量").Select() End If 问题解决了, 不知道有没有别的方法。 |