以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]编号跨表更新,没有要访问的 Original 数据。 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=94282) |
-- 作者:yancheng -- 发布时间:2016/12/20 15:55:00 -- [求助]编号跨表更新,没有要访问的 Original 数据。 Sel ect Case e.DataCol.Name Case "项目编号" If e.DataRow.IsNull(e.DataCol.name) =False AndAlso e.DataRow.OriginalValue("项目编号") <> Nothing Then Dim nm() As String = {"施工合同"} For Each n As String In nm If DataTables.Contains(n) =False Then DataTables(n).load End If DataTables(n).sqlReplaceFor("项目编号",e.DataRow("项目编号"),"项目编号 = \'" & e.DataRow.OriginalValue("项目编号") & "\'") DataTables(n).save Next Else MessageBox.Show("""项目编号""为空,请输入新的值.","提示!",MessageBoxButtons.OK,MessageBoxIcon.Warning) e.Cancel = True End If Case "项目名称" If e.DataRow.IsNull(e.DataCol.name) =False And e.DataRow.OriginalIsNull("项目名称") =False Then Dim nm() As String = {"施工合同"} For Each n As String In nm DataTables(n).sqlReplaceFor("项目名称",e.DataRow("项目名称"),"项目编号 = \'" & e.DataRow("项目编号") & "\'") DataTables(n).save Next End If End Se lect
|
-- 作者:有点色 -- 发布时间:2016/12/20 16:01:00 -- 这段代码不应该报错的。做个实例看看。 |
-- 作者:yancheng -- 发布时间:2016/12/20 16:23:00 -- 是这样的,这个代码写在:DataColChanged里面的。 提醒错误是,在窗口,保存旧行,再新增加行,时提示错误。
|
-- 作者:yancheng -- 发布时间:2016/12/20 16:27:00 -- 我现在其实疑问在,一个新增加行的编号。单元格。它的原始值 肯定为空。关键能不能用:.Original来访问它? |
-- 作者:有点色 -- 发布时间:2016/12/20 16:30:00 -- 以下是引用yancheng在2016/12/20 16:27:00的发言:
我现在其实疑问在,一个新增加行的编号。单元格。它的原始值 肯定为空。关键能不能用:.Original来访问它?
我测试,没问题。
你也可以直接判断是不是新增的行,用rowstate属性获取,新增的行没必要去获取值。 |