以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]麻烦大神帮我看下 运行下面代码可以出来结果,但是运行后面的代码就不行了(增加了一个条件)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=140609)

--  作者:1239752201
--  发布时间:2019/9/9 22:09:00
--  [求助]麻烦大神帮我看下 运行下面代码可以出来结果,但是运行后面的代码就不行了(增加了一个条件)
麻烦大神帮我看下   运行下面代码可以出来结果,但是运行后面的代码就不行了(增加了一个条件)
******软件目的:将病害统计表中的扣分值列的数据,按桥梁名称、桥梁代码、构件编号、部件名称为条件统计到梁式桥上部结构表中
If e.DataCol.Name = "构件编号"
    Dim Filter As String = "[构件编号] = \'" & e.DataRow("构件编号")& "\'"
    Dim drs As List(Of DataRow) = DataTables("病害统计表").Select(Filter)
    For Each dr As DataRow In drs
...........................

If e.DataCol.Name = "构件编号"
    Dim drs As List(Of DataRow) = DataTables("病害统计表").Select("[构件编号] = \'" & e.DataRow("构件编号") & "\' And  [部件名称] = \'" & e.DataRow("部件名称") & "\'")
    For Each dr As DataRow In drs
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:示例.rar


[此贴子已经被作者于2019/9/9 22:19:12编辑过]

--  作者:有点蓝
--  发布时间:2019/9/9 22:19:00
--  
测试没有问题啊。哪里不对?怎么测试?
--  作者:1239752201
--  发布时间:2019/9/9 22:31:00
--  
不知道下面图片表述清楚不
第一段代码的结果

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



--  作者:有点蓝
--  发布时间:2019/9/9 22:41:00
--  
If e.DataCol.Name = "构件编号" OrElse e.DataCol.Name = "部件名称"
    \' Dim Filter As String = "[构件编号] = \'" & e.DataRow("构件编号") & "\'"
    Dim drs As List(Of DataRow) = DataTables("病害统计表").Select("[构件编号] = \'" & e.DataRow("构件编号") & "\' And  [部件名称] = \'" & e.DataRow("部件名称") & "\'")
    For Each dr As DataRow In drs

--  作者:1239752201
--  发布时间:2019/9/9 22:45:00
--  
可以了  非常感谢
--  作者:1239752201
--  发布时间:2019/9/9 23:37:00
--  
增加  OrElse e.DataCol.Name = "部件名称" 后结果可以出来了,但是出现了新问题,执行下面代码,会提示出错,我觉的是事件被执行了2遍,不知道对不对,麻烦抽空帮忙看看
1、执行的代码

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20190909232826.png
图片点击可在新窗口打开查看
2、提示出错的界面

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



--  作者:有点蓝
--  发布时间:2019/9/10 8:46:00
--  
If e.DataCol.Name = "构件编号" OrElse e.DataCol.Name = "部件名称"
if e.DataRow.isnull("构件编号") = false andalso e.DataRow.isnull("部件名称") = false
    \' Dim Filter As String = "[构件编号] = \'" & e.DataRow("构件编号") & "\'"
    Dim drs As List(Of DataRow) = DataTables("病害统计表").Select("[构件编号] = \'" & e.DataRow("构件编号") & "\' And  [部件名称] = \'" & e.DataRow("部件名称") & "\'")
    For Each dr As DataRow In drs

--  作者:1239752201
--  发布时间:2019/9/10 23:01:00
--  
    Dim Values As New List(Of String) \'集合
    Values.Add("上部承重构件")
    Values.Add("一般构件")
    Values.Add("橡胶支座")
直接运行下面代码结果是合适的
pmciav = DataTables("梁式桥上部结构").Compute("Avg(PMCIl)", "部件名称 = \'上部承重构件\'")

但是运行这个结果是错误的
pmciav = DataTables("梁式桥上部结构").Compute("Avg(PMCIl)", "部件名称 = \'Values(0)\'")
[此贴子已经被作者于2019/9/10 23:03:11编辑过]

--  作者:有点蓝
--  发布时间:2019/9/10 23:03:00
--  
参考:http://www.foxtable.com/webhelp/topics/1284.htm

pmciav = DataTables("梁式桥上部结构").Compute("Avg(PMCIl)", "部件名称 = \'" & Values(0) & "\'")

--  作者:1239752201
--  发布时间:2019/9/11 23:47:00
--  

这个in帮助里面
[国籍] In (\'中国\',\'美国\',\'英国\',\'法国\',\'俄罗斯\')
表示判断国籍是否是上述五国之一,显然这比用OR来连接多个表达式要简洁很多。


能不能实现下面这样子的功能
If  e.DataRow("评定项目") In ( \'蜂窝麻面\', \'磨损 \' ) Then