Foxtable(狐表)用户栏目专家坐堂 → [求助]sqltabler的关联子表增加行问题


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

主题:[求助]sqltabler的关联子表增加行问题

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


加好友 发短信
等级:幼狐 帖子:156 积分:1328 威望:0 精华:0 注册:2016/6/21 12:27:00
[求助]sqltabler的关联子表增加行问题  发帖心情 Post By:2022/4/23 17:16:00 [只看该作者]

大师:我这个是sqltable的关联表,用组色ID做关联,上表有三行数据,当鼠标点击第一行在下面增加行的时候不会有问题,但当鼠标点击第二行在下面增加行的时候,下面增加行的组色ID应该是上表第二行的组色ID,但增加出来的行却是上表第一行的组色ID,下面附图及关联代码:
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看
Dim d As Row = Tables("销售订单_颜色尺码").Current
If d IsNot Nothing Then
    Tables("销售订单_面辅信息").Filter = "订单款号 = '" & d("订单款号") & "'and 组色ID = '" & d("组色ID") & "'"
End If
If e.Table.Current IsNot Nothing Then
    Dim Filter As String = "订单款号 = '" & e.Table.Current("订单款号") & "'"
    If  DataTables("销售订单_面辅信息").Find(Filter) Is Nothing Then '如果对应的订单明细没有加载过
        DataTables("销售订单_面辅信息").AppendLoad(Filter) '则追载此订单的订单明细
    End If
End If

请大师指点

                        谢谢


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


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

怎么做的关联?上表是窗口的sqltable?

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


加好友 发短信
等级:幼狐 帖子:156 积分:1328 威望:0 精华:0 注册:2016/6/21 12:27:00
  发帖心情 Post By:2022/4/23 17:30:00 [只看该作者]

窗口中的上下表都是SQLtablege


图片点击可在新窗口打开查看此主题相关图片如下:123.png
图片点击可在新窗口打开查看

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


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

怎么做的关联?

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


加好友 发短信
等级:幼狐 帖子:156 积分:1328 威望:0 精华:0 注册:2016/6/21 12:27:00
  发帖心情 Post By:2022/4/24 12:48:00 [只看该作者]

Dim d As Row = Tables("销售订单_颜色尺码").Current
If d IsNot Nothing Then
    Tables("销售订单_面辅信息").Filter = "订单款号 = '" & d("订单款号") & "'and 组色ID = '" & d("组色ID") & "'"
End If
If e.Table.Current IsNot Nothing Then
    Dim Filter As String = "订单款号 = '" & e.Table.Current("订单款号") & "'"
    If  DataTables("销售订单_面辅信息").Find(Filter) Is Nothing Then '如果对应的订单明细没有加载过
        DataTables("销售订单_面辅信息").AppendLoad(Filter) '则追载此订单的订单明细
    End If
End If

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


加好友 发短信
等级:超级版主 帖子:106320 积分:540735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/24 13:32:00 [只看该作者]

怎么增加行的?怎么给组色ID赋值的?

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


加好友 发短信
等级:幼狐 帖子:156 积分:1328 威望:0 精华:0 注册:2016/6/21 12:27:00
  发帖心情 Post By:2022/4/24 15:37:00 [只看该作者]

用系统增加行代码增加行:

Tables("销售订单_面辅信息").AddNew()

用下面的代码在子表事件的DataColChanged给组色ID赋值:

If e.DataCol.Name = "订单款号" Then
    If e.NewValue Is Nothing Then
        e.DataRow("组色ID") = Nothing
    Else
        Dim drx As DataRow
        drx = DataTables("销售订单_颜色尺码").Find("[订单款号] = '" & e.NewValue & "'")
        If drx IsNot Nothing
            e.DataRow("组色ID") = drx("组色ID")
        End If
    End If
End If


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


加好友 发短信
等级:超级版主 帖子:106320 积分:540735 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/24 15:45:00 [只看该作者]

"销售订单_颜色尺码"一个[订单款号] 会对应多个"组色ID"的吧,上面代码只是把找到的第一个赋值给"销售订单_面辅信息"

如果取父表选中行的"组色ID",datacolchanged事件没有任何用处,只有副作用

直接在新增按钮处理即可
dim r as row = Tables("销售订单_面辅信息").AddNew()
r("组色ID") = Tables("销售订单_颜色尺码").current("组色ID")

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


加好友 发短信
等级:幼狐 帖子:156 积分:1328 威望:0 精华:0 注册:2016/6/21 12:27:00
  发帖心情 Post By:2022/4/24 16:00:00 [只看该作者]

谢谢

 回到顶部