Foxtable(狐表)用户栏目专家坐堂 → [求助]非关联表间的同步更新数据


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

主题:[求助]非关联表间的同步更新数据

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


加好友 发短信
等级:一尾狐 帖子:422 积分:2708 威望:0 精华:0 注册:2012/2/10 18:12:00
[求助]非关联表间的同步更新数据  发帖心情 Post By:2015/5/5 15:29:00 [只看该作者]

有一个编辑窗口,父表为报销名单,子表为病案首页,出院记录,再入院记录,现改变报销名单中年龄一列数值,然后已新增一行的子表中年龄一列随之改变,照帮助上代码所写如下:
报销名单DataColChanged
Select Case e.DataCol.name
    Case "身份证号","报销起日"
        Dim dr As DataRow = DataTables("病案首页").sqlFind("身份证号 = '" & e.OldValue & "报销起日 = '"& e.OldValue & "'")
        Dim dr4 As DataRow = DataTables("出院记录").sqlFind("身份证号 = '" & e.OldValue & "报销起日 = '"& e.OldValue & "'")
        Dim dr6 As DataRow = DataTables("再入院记录").sqlFind("身份证号 = '" & e.OldValue & "报销起日 = '"& e.OldValue & "'")
        If dr Is Nothing Then 
            dr = DataTables("病案首页").AddNew()
            dr4 = DataTables("出院记录").AddNew()
            dr6 = DataTables("再入院记录").AddNew()
            dr("身份证号") = e.DataRow("身份证号")
            dr("报销起日") = e.DataRow("报销起日")
            dr("年龄") = e.DataRow("年龄")
            dr("床号") = e.DataRow("床号")
            dr("住院号") = e.DataRow("住院号")
        Else
            dr("身份证号") = e.DataRow("身份证号")
            dr("报销起日") = e.DataRow("报销起日")
        End If
    Case "年龄","床号","住院号"
        Dim dr As DataRow = DataTables("病案首页").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 ='" & e.DataRow("报销起日") & "'" )
        
        Dim dr4 As DataRow = DataTables("出院记录").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 ='" & e.DataRow("报销起日") & "'" )
       
        Dim dr6 As DataRow = DataTables("再入院记录").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 ='" & e.DataRow("报销起日") & "'" )
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select


2、报销名单DataColChanging
Dim dr As DataRow = DataTables("病案首页").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 = '" & e.DataRow("报销起日") & "'")
Dim dr4 As DataRow = DataTables("出院记录").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 = '" & e.DataRow("报销起日") & "'")
Dim dr6 As DataRow = DataTables("再入院记录").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 = '" & e.DataRow("报销起日") & "'")
If dr IsNot Nothing Then
    dr.Delete()
End If

求助如何修改?

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


加好友 发短信
等级:一尾狐 帖子:422 积分:2708 威望:0 精华:0 注册:2012/2/10 18:12:00
  发帖心情 Post By:2015/5/5 15:55:00 [只看该作者]

急!求教老师指正修改!

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


加好友 发短信
等级:婴狐 帖子:88 积分:518 威望:0 精华:0 注册:2015/5/3 21:12:00
  发帖心情 Post By:2015/5/5 16:01:00 [只看该作者]

就是把代码拷贝几份也不写么?

 

Select Case e.DataCol.name
    Case "身份证号","报销起日"
        Dim dr As DataRow = DataTables("病案首页").sqlFind("身份证号 = '" & e.OldValue & "报销起日 = '"& e.OldValue & "'")
        Dim dr4 As DataRow = DataTables("出院记录").sqlFind("身份证号 = '" & e.OldValue & "报销起日 = '"& e.OldValue & "'")
        Dim dr6 As DataRow = DataTables("再入院记录").sqlFind("身份证号 = '" & e.OldValue & "报销起日 = '"& e.OldValue & "'")
        If dr Is Nothing Then
            dr = DataTables("病案首页").AddNew()
            dr("身份证号") = e.DataRow("身份证号")
            dr("报销起日") = e.DataRow("报销起日")
            dr("年龄") = e.DataRow("年龄")
            dr("床号") = e.DataRow("床号")
            dr("住院号") = e.DataRow("住院号")
           
        Else
            dr("身份证号") = e.DataRow("身份证号")
            dr("报销起日") = e.DataRow("报销起日")
        End If
        If dr4 Is Nothing Then
            dr4 = DataTables("出院记录").AddNew()
            dr4("身份证号") = e.DataRow("身份证号")
            dr4("报销起日") = e.DataRow("报销起日")
            dr4("年龄") = e.DataRow("年龄")
            dr4("床号") = e.DataRow("床号")
            dr4("住院号") = e.DataRow("住院号")
        Else
            dr4("身份证号") = e.DataRow("身份证号")
            dr4("报销起日") = e.DataRow("报销起日")
        End If
        If dr6 Is Nothing Then
            dr6 = DataTables("再入院记录").AddNew()
            dr6("身份证号") = e.DataRow("身份证号")
            dr6("报销起日") = e.DataRow("报销起日")
            dr6("年龄") = e.DataRow("年龄")
            dr6("床号") = e.DataRow("床号")
            dr6("住院号") = e.DataRow("住院号")
        Else
            dr6("身份证号") = e.DataRow("身份证号")
            dr6("报销起日") = e.DataRow("报销起日")
        End If
    Case "年龄","床号","住院号"
        Dim dr As DataRow = DataTables("病案首页").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 ='" & e.DataRow("报销起日") & "'" )
       
        Dim dr4 As DataRow = DataTables("出院记录").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 ='" & e.DataRow("报销起日") & "'" )
       
        Dim dr6 As DataRow = DataTables("再入院记录").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 ='" & e.DataRow("报销起日") & "'" )
        If dr IsNot Nothing Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
        If dr4 IsNot Nothing Then
            dr4(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
        If dr6 IsNot Nothing Then
            dr6(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

 

------------

 

Dim dr As DataRow = DataTables("病案首页").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 = '" & e.DataRow("报销起日") & "'")
Dim dr4 As DataRow = DataTables("出院记录").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 = '" & e.DataRow("报销起日") & "'")
Dim dr6 As DataRow = DataTables("再入院记录").sqlFind("身份证号 = '" & e.DataRow("身份证号") & "报销起日 = '" & e.DataRow("报销起日") & "'")
If dr IsNot Nothing Then
    dr.Delete()
End If
If dr4 IsNot Nothing Then
    dr4.Delete()
End If
If dr6 IsNot Nothing Then
    dr6.Delete()
End If


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


加好友 发短信
等级:一尾狐 帖子:422 积分:2708 威望:0 精华:0 注册:2012/2/10 18:12:00
  发帖心情 Post By:2015/5/5 16:26:00 [只看该作者]

不是,就是照此写了一直处于报错状态

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍01
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:88 积分:518 威望:0 精华:0 注册:2015/5/3 21:12:00
  发帖心情 Post By:2015/5/5 16:27:00 [只看该作者]

以下是引用JK362223在2015/5/5 16:26:00的发言:
不是,就是照此写了一直处于报错状态

 

报什么错?关键是你要理解代码啊,灵活变通啊。


 回到顶部