Foxtable(狐表)用户栏目专家坐堂 → 多表融合之辅助计位列


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

主题:多表融合之辅助计位列

帅哥,在线噢!
刘效功天津
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:129 积分:881 威望:0 精华:0 注册:2023/9/19 11:27:00
多表融合之辅助计位列  发帖心情 Post By:2023/9/22 15:05:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:关于辅助列计数问题.rar


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


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

把代码里的列名【辅助数值型】改为为正确的列名【辅助定位】即可

 回到顶部
帅哥,在线噢!
刘效功天津
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:129 积分:881 威望:0 精华:0 注册:2023/9/19 11:27:00
  发帖心情 Post By:2023/9/22 15:56:00 [只看该作者]

没搞明白

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


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

自己写了什么代码不明白!!打开项目看看表A的datacolchanged事件不就知道了

 回到顶部
帅哥,在线噢!
刘效功天津
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:129 积分:881 威望:0 精华:0 注册:2023/9/19 11:27:00
  发帖心情 Post By:2023/9/22 16:02:00 [只看该作者]

''设置相同型材名称时用于多表融合的辅助数值型通用代码代码
'If e.DataCol.Name = "型材名称" Then
'    Dim dr As DataRow 
'    dr = DataTables("表A").Find("[型材名称] = '" & e.NewValue & "'")
'    If dr IsNot Nothing Then 
'                dr("辅助定位") = 0
'        '     Else
'        For i As Integer = 1 To 500
'            e.DataRow("辅助定位") = e.DataRow("辅助定位") + i
'            'e.DataRow("辅助定位") = dr("辅助定位") + i '全变
'            'dr("辅助定位") = e.DataRow("辅助定位") + i
'            'dr("辅助定位") = dr("辅助定位") + i'全变一次,相同的不变
           
'        Next 
'    End If
'End If 

   目的 型材名称如果第1次出现,辅助定位就设为1 如果第二次出现,就设为2,以此类推

   玻璃副框 出现了3次  就依次设为123........

       边框   出现了2次  就依次设为12........

封边条  出现了1次  就设为1


老师 上面的代码实现不了,上面的目的,搞了1上午也没搞明白,老师帮忙改改代码,压缩包里有文件可以测试,谢谢老师!


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


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

If e.DataCol.Name = "型材名称" Then
if e.DataRow.isnull("辅助定位") then
    e.DataRow("辅助定位") = DataTables("表A").compute("max(辅助定位)","[型材名称] = '" & e.NewValue & "'") + 1
    End If
End If 

 回到顶部
帅哥,在线噢!
刘效功天津
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:129 积分:881 威望:0 精华:0 注册:2023/9/19 11:27:00
  发帖心情 Post By:2023/9/22 16:10:00 [只看该作者]

老师,我上面发给您的代码实现不了辅助定位中所需的定位数字,烦请老师修改一下代码,谢谢老师

 回到顶部
帅哥,在线噢!
刘效功天津
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:129 积分:881 威望:0 精华:0 注册:2023/9/19 11:27:00
  发帖心情 Post By:2023/9/22 16:11:00 [只看该作者]

好的,老师,我测试一下,谢谢老师!

 回到顶部
帅哥,在线噢!
刘效功天津
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:129 积分:881 威望:0 精华:0 注册:2023/9/19 11:27:00
  发帖心情 Post By:2023/9/22 17:38:00 [只看该作者]

If e.DataCol.Name = "型材名称" Then
if e.DataRow.isnull("辅助定位") then
    e.DataRow("辅助定位") = DataTables("表A").compute("max(辅助定位)","[型材名称] = '" & e.NewValue & "'") + 1
    End If
End If 

谢谢老师,测试没问题了,
假如删掉一行或清除一行数据,入住定位数字能重新计算就更好了,比如 玻璃副框 有3个,辅助定位依次是1,2,3  如果删除2的数据,能从新计算,把原来的3 变成2  如果删除1的数据,辅助定位重新计算,原来的2变为1 原来的3变为2,
也就是重新计算一下  就更完美了,因为层这个排序值能够看到相同的型材有几个

老师还的调整一下代码, 谢谢老师

 回到顶部
帅哥,在线噢!
刘效功天津
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:129 积分:881 威望:0 精华:0 注册:2023/9/19 11:27:00
  发帖心情 Post By:2023/9/22 17:40:00 [只看该作者]

老师,我这个键盘可能有问题了,老是打错别字

 回到顶部
总数 11 1 2 下一页