Foxtable(狐表)用户栏目专家坐堂 → 老师代码最终改为以下代码实现了我需要的功能,但不知道是为什么?请指教,谢谢!


  共有2287人关注过本帖树形打印复制链接

主题:老师代码最终改为以下代码实现了我需要的功能,但不知道是为什么?请指教,谢谢!

帅哥哟,离线,有人找我吗?
wky10652008
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:223 积分:3039 威望:0 精华:0 注册:2017/4/23 19:43:00
老师代码最终改为以下代码实现了我需要的功能,但不知道是为什么?请指教,谢谢!  发帖心情 Post By:2017/9/22 21:29:00 [只看该作者]

'多表数据同步增加,修改
If e.DataCol.Name="身份证号码" Then    '判断发生变化的是不是 "身份证号码 "列,如果是,则:
    If e.OldValue Is Nothing And e.NewValue IsNot Nothing  Then    '如果"身份证号码"列旧值为空,新值不为空,则:
        DataTables("基本信息管理").Save '先保存 基本信息表,得到一个永久的序号
        For Each  dt As DataTable In DataTables    '定义一个"DataTable"类型,并进行循环
            Select Case   dt.Name
                Case "证书管理","职称管理","岗位管理","学历管理","人员状态管理","合同管理"    '判断表名
                    Dim dr As DataRow=DataTables(dt.name).AddNew()    '给"DataTables(dt.name)"增加一行
                    dr("序号")=e.DataRow("序号")    '给"DataTables(dt.name)"中增加的行的"序号"列赋值
                    dr("单位名称")=e.DataRow("单位名称")    '给"DataTables(dt.name)"中增加的行的"单位名称"列赋值
                    dr("姓名")=e.DataRow("姓名")    '给"DataTables(dt.name)"中增加的行的"序号"列赋值
                    dr("身份证号码")=e.DataRow("身份证号码")    '给"DataTables(dt.name)"中增加的行的"身份证号码"列赋值
                    DataTables(dt.name).Save   '保存表
            End Select
        Next
    ElseIf e.OldValue IsNot Nothing And e.NewValue IsNot Nothing  Then    '如果"身份证号码"列旧值不为空,新值不为空,则:          
        For Each  dt1 As DataTable In DataTables    '定义一个"DataTable"类型,并进行循环
            Select Case   dt1.Name
                Case "证书管理","职称管理","学历管理","人员状态管理","合同管理"
                    Dim dr As DataRow=DataTables(dt1.name).find("身份证号码='" & e.OldValue &"'")   '在"DataTables(dt.name)"中进行查找
                    If dr IsNot Nothing Then    '如果找到
                        dr("序号")=e.DataRow("序号")    '修改"DataTables(dt.name)"中"序号"的值
                        dr("单位名称")=e.DataRow("单位名称")     '修改"DataTables(dt.name)"中"单位名称"的值
                        dr("姓名")=e.DataRow("姓名")     '修改"DataTables(dt.name)"中"姓名"的值
                        dr("身份证号码")=e.DataRow("身份证号码")     '修改"DataTables(dt.name)"中"身份证号码"的值
                        DataTables(dt1.name).Save   '保存表
                    End If
            End Select
        Next
    End If
End If

'单独修改 "岗位管理" 表的数据
If e.DataCol.Name="身份证号码" Then    '判断发生变化的是不是 "身份证号码 "列,如果是,则
    If e.OldValue IsNot Nothing And e.NewValue IsNot Nothing  Then    '如果"身份证号码"列旧值不为空,新值不为空,则:                      
        Dim dr As DataRow=DataTables("岗位管理").find("身份证号码='" & e.NewValue &"'")       '在"DataTables(dt.name)"中进行查找
        If dr IsNot Nothing Then       '如果找到
            dr("序号")=e.DataRow("序号")    '修改"DataTables(dt.name)"中"序号"的值
            dr("单位名称")=e.DataRow("单位名称")     '修改"DataTables(dt.name)"中"单位名称"的值
            dr("姓名")=e.DataRow("姓名")     '修改"DataTables(dt.name)"中"姓名"的值
            dr("身份证号码")=e.DataRow("身份证号码")     '修改"DataTables(dt.name)"中"身份证号码"的值
        End If
    End If
End If

'============================================================================以上代码还需要完善

[此贴子已经被作者于2017/9/23 10:25:26编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/22 21:39:00 [只看该作者]

Dim dr As DataRow=DataTables(dt.name).find("身份证号码='" & e.OldValue &"'")

 回到顶部
帅哥哟,离线,有人找我吗?
wky10652008
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:223 积分:3039 威望:0 精华:0 注册:2017/4/23 19:43:00
  发帖心情 Post By:2017/9/22 22:05:00 [只看该作者]

Dim dr As DataRow=DataTables(dt.name).find("身份证号码='" & e.OldValue &"'")

老师我重新更新了代码,这个地方我改了还是不行,请你帮我重新看一下代码,谢谢

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110810 积分:563988 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/22 23:22:00 [只看该作者]

上传实例测试

 回到顶部