Foxtable(狐表)用户栏目专家坐堂 → 求助:跨表引用计算的问题


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

主题:求助:跨表引用计算的问题

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


加好友 发短信
等级:幼狐 帖子:64 积分:484 威望:0 精华:0 注册:2021/4/2 16:54:00
求助:跨表引用计算的问题  发帖心情 Post By:2021/5/15 15:10:00 [只看该作者]

老师,请教一下:现有表一,结构为两列:“课程”、“价格”,行数不多,十行左右,可更改。又有表二,其中两列为“课程选择”、“小计”,通过窗口对课程进行选择,然后根据表一中对应课程的价格自动求和并写入“小计”。现在是:课程选择用的是复选组合框,可根据表一课程列的变化而自由选择(需求已经实现:能单选多选,不可复选),问题是:这个小计该如何实现?代码怎么写?放在什么地方?我现在的做法是:在表二的DataColChanged事件中加了一个对表二选择的课程进行判断的方法,用的是Contains,问题在于,只能提前写入课程和价格,只要表一中有行的变化,表二的DataColChanged事件中的这个代码就得更改,能做到不用更改表二中DataColChanged代码吗?先谢谢了。

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


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


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


加好友 发短信
等级:幼狐 帖子:64 积分:484 威望:0 精华:0 注册:2021/4/2 16:54:00
  发帖心情 Post By:2021/5/15 17:10:00 [只看该作者]

感谢@有点蓝老师的指导。我是一个初学者,你说的这个例子我已看过,感觉与我上面的需求有些差别,正是这个差别是我整不明白的。我求助的问题中,表二“课程选择”这一列是可以多选的,“小计”根据“课程选择”中选课的多少及表一中对应的价格求和。我认为:重点是如何查找出表二“课程选择”中都选择了哪些课,然后再对应表一中的价格并求和。下面是我写在表二DataColChanged代码,能达到要求,还可以更改表一中的价格,但不能更改表一中的课程列,及课程设置的数量,如要改就得再改这儿,重点是用户是不会的。目的是:只更改表一中的课程设置及价格,而无需再来更改程序中的代码,编程吗,方便的是用户。
If e.DataCol.Name = "课程选择" Then   
    Dim Str1 As String =e.DataRow("课程选择")
    Dim S1 As String
    Dim S2 As String
    Dim S3 As String
    Dim S4 As String
    Dim jg1 As DataRow = DataTables("表一").Find("[课程]  = '语文'")
    Dim jg2 As DataRow = DataTables("表一").Find("[课程]  = '数学'")
    Dim jg3 As DataRow = DataTables("表一").Find("[课程]  = '物理'")
    Dim jg4 As DataRow = DataTables("表一").Find("[课程]  = '化学'")

         If Str1 > "" AndAlso Str1.Contains("语文") Then
             S1=1
         Else
             S1=0
         End If
         If Str1 > "" AndAlso Str1.Contains("数学") Then
             S2=1
         Else
             S2=0
         End If
         If Str1 > "" AndAlso Str1.Contains("物理") Then
             S3=1
         Else
             S3=0
         End If
         If Str1 > "" AndAlso Str1.Contains("化学") Then
             S4=1
         Else
             S4=0
         End If

       e.DataRow("小计") = S1*jg1("价格")+S2*jg2("价格")+S3*jg3("价格")+S4*jg4("价格")
End If

[此贴子已经被作者于2021/5/15 17:13:36编辑过]

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


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

做个项目例子发上来吧,不用那么复杂的

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


加好友 发短信
等级:幼狐 帖子:64 积分:484 威望:0 精华:0 注册:2021/4/2 16:54:00
  发帖心情 Post By:2021/5/16 9:48:00 [只看该作者]

怎么看不到上传的文件呀?传哪去了呀?图片点击可在新窗口打开查看
[此贴子已经被作者于2021/5/16 10:11:33编辑过]

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


加好友 发短信
等级:幼狐 帖子:64 积分:484 威望:0 精华:0 注册:2021/4/2 16:54:00
  发帖心情 Post By:2021/5/16 15:25:00 [只看该作者]

请各位老师看一下,能不能改成表B的行可以更改且能达到现有表A小计的计算结果?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.zip



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


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

注意表B的价格变化后,表A也会变化,如果不需要,去掉表B代码即可
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.zip

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


加好友 发短信
等级:幼狐 帖子:64 积分:484 威望:0 精华:0 注册:2021/4/2 16:54:00
  发帖心情 Post By:2021/5/17 7:24:00 [只看该作者]

@有点蓝你好,感谢你的指导。文件在我这儿打不开,说你的文件版本太高,让我升级。能不能麻烦你把代码发给我呀?
[此贴子已经被作者于2021/5/17 7:23:57编辑过]

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


加好友 发短信
等级:超级版主 帖子:107702 积分:547831 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/5/17 8:52:00 [只看该作者]

更新foxtable到最新版本

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


加好友 发短信
等级:幼狐 帖子:64 积分:484 威望:0 精华:0 注册:2021/4/2 16:54:00
  发帖心情 Post By:2021/5/17 9:28:00 [只看该作者]

已解决。感谢@有点蓝。高手呀,真是历害。同时也为你的快速回复点赞。

 回到顶部