Foxtable(狐表)用户栏目专家坐堂 → 菜鸟再一次请教高手


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

主题:菜鸟再一次请教高手

美女呀,离线,留言给我吧!
xiaoyuylx
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:23 积分:213 威望:0 精华:0 注册:2015/11/6 13:45:00
菜鸟再一次请教高手  发帖心情 Post By:2015/11/24 10:36:00 [只看该作者]

子表关联列新增一个名称,如何在父表中自动新增一个


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/24 10:58:00 [只看该作者]

DataColChanged事件

 

If e.DataCol.name = "第一列" Then
    If e.DataRow.Isnull("第一列") = False Then
        Dim fdr As DataRow = DataTables("表B").Find("第一列 = '" & e.DataRow("第一列") & "'")
        If fdr Is Nothing Then
            fdr =  DataTables("表B").AddNew
            fdr("第一列") = e.DataRow("第一列")
        End If
    End If
End If


 回到顶部
美女呀,离线,留言给我吧!
xiaoyuylx
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:23 积分:213 威望:0 精华:0 注册:2015/11/6 13:45:00
  发帖心情 Post By:2015/11/24 16:09:00 [只看该作者]

可是我发现子表新增的那行编辑好后,父表增加了好行,大师,这该怎么改正啊


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/24 16:45:00 [只看该作者]

 关联列如果重复修改,就肯定会添加很多行。但如果把修改的行删除也是矛盾的。你好好理一下你的逻辑。

 回到顶部
美女呀,离线,留言给我吧!
xiaoyuylx
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:23 积分:213 威望:0 精华:0 注册:2015/11/6 13:45:00
  发帖心情 Post By:2015/11/24 16:59:00 [只看该作者]

大师,我大概知道是怎么回事了,还记得

 

Select e.DataCol.Name

 

    Case "库位", "牌号", "包装规格"

        e.DataRow("序号") = e.DataRow("库位") + e.DataRow("牌号") + e.DataRow("包装规格")

 

End Select

 

这个事件么,而我关联的那列就是序号列,在编辑过程中,序号一共改变了三次,所以父表增加了三行


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/24 17:08:00 [只看该作者]

If e.DataCol.name = "序号" Then
    If e.DataRow.isnull("库位")=false andalso e.DataRow.isnull("牌号")=false andalso e.DataRow.isnull("包装规格")=false then
        Dim fdr As DataRow = DataTables("表B").Find("序号 = '" & e.DataRow("序号") & "'")
        If fdr Is Nothing Then
            fdr =  DataTables("表B").AddNew
            fdr("序号") = e.DataRow("序号")
        End If
    End If
End If

 回到顶部