以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 引用出错 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=13856) |
||||
-- 作者:7032175 -- 发布时间:2011/10/29 15:40:00 -- 引用出错 这个表在引用的时候在实测值里面输入内容后就会出现如图所示的问题 不知道 是怎么回事 代码我研究了半天 也没有错在什么地方 实在是搞不定了 还是请狐狸爸爸帮我一下麻烦狐狸爸爸了
![]() ![]() |
||||
-- 作者:7032175 -- 发布时间:2011/10/29 15:41:00 -- 密码是888 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/10/29 15:42:00 -- 错误提示非常清楚,“理化厂标"没有“原”这一列。 再看看:
http://www.foxtable.com/help/topics/1485.htm
|
||||
-- 作者:7032175 -- 发布时间:2011/10/29 15:58:00 -- 我看到这个了 我研究了半天还是没有搞定 这段代码 是狐爸爸您写的 我只做了一点点的修改 现在就是不能用 真是急死我了 |
||||
-- 作者:7032175 -- 发布时间:2011/10/29 16:04:00 -- 狐狸爸爸由于我的水平有限 还是请狐狸爸爸 写一下 谢谢您了 |
||||
-- 作者:7032175 -- 发布时间:2011/10/29 16:12:00 -- 我搞明白问题出在什么地方了 但是就是不知道 怎么改 由于我的实测有很多多表头而且分布不一样 (nm & "_" & "厂标" ) = "合格" 前面nm & "_" & "厂标" 只针对一个分列 但是我的表里面有二个甚至二个以上的分列表头 这段代码就不能管用了
请问题狐狸爸爸 这样如何更改代码 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/10/29 19:52:00 -- Select Case e.DataCol.name [此贴子已经被作者于2011-10-29 19:51:49编辑过]
|
||||
-- 作者:7032175 -- 发布时间:2011/11/10 16:26:00 -- Select Case e.DataCol.name 狐狸爸爸 这个代码会针对这样几种情况时行判断 首先是 N值--N值、〈N值、〉N值、≥N值、≤N值 这是现在的对N值的判断。 还有一种判断就是只针对N值 厂标里面只有数字,没有大于、小于等等的符号,当实测里面的数大于或小于厂标里面的数时用正负数体现,代码如何加进去 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2011/11/10 16:39:00 -- Select Case e.DataCol.name Case "牌号" Dim dr As DataRow = DataTables("理化厂标").Find("牌号 = \'" & e.NewVAlue & "\'") If dr IsNot Nothing Then e.DataRow("原料指标_MgO镁_厂标") = dr("原料指标_MgO镁") e.DataRow("原料指标_SiO2硅_厂标") = dr("原料指标_SiO2硅") \' e.DataRow("硅_厂标") = dr("硅") \' e.DataRow("钙_厂标") = dr("钙") Else e.DataRow("原料指标_MgO镁_厂标") = Nothing e.DataRow("原料指标_SiO2硅_厂标") = Nothing \' e.DataRow("硅_厂标") = Nothing \' e.DataRow("钙_厂标") = Nothing End If Case "原料指标_MgO镁_实测","原料指标_SiO2硅_实测" Dim dr As DataRow = DataTables("理化厂标").Find("牌号 = \'" & e.DataRow("牌号") & "\'") If dr IsNot Nothing AndAlso e.newvalue Then Dim nm As String = e.DataCol.Name.SubString(0,1) Dim ov As String = dr(nm) If Isnumeric(ov) Then Dim v As Double = ov If e.NewValue = v Then e.DataRow(nm & "_" & "厂标" ) = "合格" ElseIf e.NewValue > v Then e.DataRow(nm & "_" & "厂标" ) = e.newvalue -v Else e.DataRow(nm & "_" & "厂标" ) = v - e.newvalue End If ElseIf ov.IndexOf("-") > 0 Then Dim vls() As String = ov.split("-") Dim v1 As Double = vls(0) Dim v2 As Double = vls(1) If e.newvalue >= v1 AndAlso e.newvalue <= v2 Then e.DataRow(nm & "_" & "厂标" ) = "合格" ElseIf e.newvalue < v1 Then e.DataRow(nm & "_" & "厂标" ) = e.newvalue - v1 Else e.DataRow(nm & "_" & "厂标" ) = e.newvalue - v2 End If Else Dim o As String = ov.SubString(0,1) Dim v As Double = val(ov.SubString(1)) If o = ">" Then If e.NewValue > v Then e.DataRow(nm & "_" & "厂标" ) = "合格" Else e.DataRow(nm & "_" & "厂标" ) = v - e.newvalue End If ElseIf o = "<" If e.NewValue < v Then e.DataRow(nm & "_" & "厂标" ) = "合格" Else e.DataRow(nm & "_" & "厂标" ) = e.newvalue - v End If ElseIf o = "≥" Then If e.NewValue >= v Then e.DataRow(nm & "_" & "厂标" ) = "合格" Else e.DataRow(nm & "_" & "厂标" ) = v - e.newvalue End If ElseIf o = "≤" If e.NewValue <= v Then e.DataRow(nm & "_" & "厂标" ) = "合格" Else e.DataRow(nm & "_" & "厂标" ) = e.newvalue - v End If End If End If End If End Select |
||||
-- 作者:7032175 -- 发布时间:2011/11/11 8:50:00 -- 狐狸爸爸你写的这段代码应用起来有错误 呀 |