以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]跨表条件计算问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59730) |
-- 作者:sulgz -- 发布时间:2014/11/9 23:37:00 -- [求助]跨表条件计算问题 A、B两表,假如B表第二列是AA,那么第三列等于A表AA对应的第二列14。 假如B表第二列是BB,那么第三列等于A表AA对应的第二列12*1.5。 假如B表第二列是CC,那么第三列等于A表AA对应的第二列13*0.5。 |
-- 作者:y2287958 -- 发布时间:2014/11/10 8:05:00 -- 假如B表第二列是BB,那么第三列等于A表AA对应的第二列12*1.5。 假如B表第二列是CC,那么第三列等于A表AA对应的第二列13*0.5。 红色部分,似乎读不懂
|
-- 作者:有点甜 -- 发布时间:2014/11/10 9:00:00 -- 表B,Datacolchanged事件
If e.DataCol.Name = "第二列" Then
http://www.foxtable.com/help/topics/1451.htm
|
-- 作者:sulgz -- 发布时间:2014/11/10 10:57:00 -- 谢版主,但没解决问题。 一、我那个是计算(=14*1.5)不是对应。
二、计算是有条件的(假如B表第二列是AA,第三列=14*1.5)。 三、只想用代码实现,不用事件实现。 [此贴子已经被作者于2014-11-10 10:59:08编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/11/10 11:00:00 -- 那规律是什么,获取表A的值后,然后乘以多少? |
-- 作者:有点甜 -- 发布时间:2014/11/10 11:03:00 -- If e.DataCol.Name = "第二列" Then Dim fdr As DataRow = DataTables("表A").Find("第一列 = \'" & e.DataRow("第二列") & "\'") If fdr IsNot Nothing Then If e.DataRow("第二列") = "AA" Then e.DataRow("第三列") = fdr("第二列") * 1.5 Else If e.DataRow("第二列") = "BB" Then e.DataRow("第三列") = fdr("第二列") * 1.5 Else If e.DataRow("第二列") = "CC" Then e.DataRow("第三列") = fdr("第二列") * 0.5 End If Else e.DataRow("第三列") = Nothing End If End If
|
-- 作者:sulgz -- 发布时间:2014/11/10 11:06:00 -- 老大,不想用事件,用按钮的代码能行吗? |
-- 作者:有点甜 -- 发布时间:2014/11/10 11:08:00 -- For Each dr As DataRow In DataTables("表B").DataRows Dim fdr As DataRow = DataTables("表A").Find("第一列 = \'" & dr("第二列") & "\'") If fdr IsNot Nothing Then If dr("第二列") = "AA" Then dr("第三列") = fdr("第二列") * 1.5 Else If dr("第二列") = "BB" Then dr("第三列") = fdr("第二列") * 1.5 Else If dr("第二列") = "CC" Then dr("第三列") = fdr("第二列") * 0.5 End If Else dr("第三列") = Nothing End If Next |
-- 作者:sulgz -- 发布时间:2014/11/10 11:20:00 -- 强啊 |