以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 判断引用多行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=44127) |
-- 作者:yuyu060712 -- 发布时间:2013/12/23 17:40:00 -- 判断引用多行 老师,之前做过判断表达式,现在我想引用满足条件的多行?代码怎么写呢? |
-- 作者:Bin -- 发布时间:2013/12/23 17:43:00 -- 有具体的问题,才有具体的答复,泛泛而问很难帮上你. |
-- 作者:yuyu060712 -- 发布时间:2013/12/23 17:45:00 -- If e.DataCol.Name = "产品编号"
Then
\'发生变化的是产品编号吗? 这个是判断后引用一行,我想引用多行满足前面条件的的数据 |
-- 作者:Bin -- 发布时间:2013/12/23 17:48:00 -- 把FInd 换成 select http://www.foxtable.com/help/topics/0400.htm |
-- 作者:yuyu060712 -- 发布时间:2013/12/23 17:57:00 -- If e.DataCol.Name = "第一列" Then \'发生变化的是产品编号吗? \'在产品表找出该产品 Dim dr As DataRow dr = DataTables("表A").Select("第一列 = " & "\'" & e.DataRow("第一列") & "\'" ) If dr IsNot Nothing \'如果找到, 则设置各列内容 e.DataRow("第二列")= dr("第二列") e.DataRow("第三列")= dr("第三列") e.DataRow("第四列")= dr("第四列") End If End If |
-- 作者:yuyu060712 -- 发布时间:2013/12/23 17:58:00 -- 不可以啊 |
-- 作者:Bin -- 发布时间:2013/12/23 18:00:00 -- 请看清楚帮助例子,你选择出来的是行集合,多行. 并不是单一的行 |
-- 作者:yuyu060712 -- 发布时间:2013/12/24 10:13:00 -- If e.DataCol.Name = "第一列" Then \'发生变化的是产品编号吗? 老师,我修改了一下,可能哪里有点问题,只会借用最后一行 |
-- 作者:Bin -- 发布时间:2013/12/24 10:17:00 -- If e.DataCol.Name = "第一列" Then \'发生变化的是产品编号吗? Dim drs As List(Of DataRow) \'定义个行的集合 drs = DataTables("表A").Select("第一列 = " & "\'" & e.DataRow("第一列") & "\'" )\'把查询到的行放到drs这个集合去,此时如果有查询到的行,都存在这个集合中了. For Each dr As DataRow In drs \'循环遍历你查询引用到的所有行. \'此时每次执行的DR都是不一样的, 第一次执行是你查询到的行里面的第一行,第二次执行为你查询到的行第二行,以此类推. e.DataRow("第二列")= dr("第二列") e.DataRow("第三列")= dr("第三列") e.DataRow("第四列")= dr("第四列") \'你每次都把查询到的行赋值给e.datarow 那后一次就把前一次给覆盖了,自然只有最后一次生效.
Next End If |
-- 作者:yuyu060712 -- 发布时间:2013/12/24 10:23:00 -- 老师那后面的代码怎么写?集合我没懂。麻烦老师了 |