以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- e.datacolchanged事件和e.datacolchanging事件的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=157951) |
-- 作者:ycwk -- 发布时间:2020/11/3 14:18:00 -- e.datacolchanged事件和e.datacolchanging事件的问题 下面这段代码,在修改指标名称字段后,弹出提示, 用户点是,则允许修改字字段值并且修改关联表, 点否则不允许修改字段值也不修改关联表,但是现在写在datacolchanging事件中,点是,始终不能为新值, 不知道要怎么弄了 If e.DataCol.Name = "指标名称" Then \'如果更改的是身份证号码列 Dim Result As DialogResult Result = MessageBox.Show("与此指标关联的对象都会受到影响,是否继续?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If Result = DialogResult.Yes Then \'如果点的是 \'msgbox("Y") Dim dr As DataRow = DataTables("医疗业务报表指标关联表").SQLFind("指标名称 = \'" & e.OldValue & "\'" ) If dr IsNot Nothing Then \'如果有符合条件的记录 dr("指标名称")=e.NewValue \'同意变动, 则关联表赋新值 dr.Save e.DataRow("指标名称")=e.NewValue e.DataRow.Save \'保存主表指标名称字段为修改后的值,避免在界面上不点保存,点刷新时, 关联表已被修改了,而主表字段被还原 ; 这句没用 End If Else \'如果点的否 \'msgbox("N") \'dr("指标名称")=e.OldValue \'不同意变动还原成旧值,这里用e.cancel=true没用,变都变了 e.Cancel=True End If End If
|
-- 作者:有点蓝 -- 发布时间:2020/11/3 14:21:00 -- 代码没有问题,关联表直接改的数据库,界面要显示新值需要重新加载数据才行 |