以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  通用代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193908)

--  作者:1234567
--  发布时间:2024/10/24 16:50:00
--  通用代码

DataColChanged

Dim d As DataRow = e.DataRow
Select Case e.Col.name
    Case "工序", "工步"
    Case Else
        Dim dr As DataRow = DataTables("工时定额").Find("工序=\'" & e.Row("工序") & "\' and 工步=\'" & e.Row("工步") & "\' and 直径=\'" & e.Row("直径") & "\'")
        d("单工步加工时间") = dr("单工步加工时间")
End Select

 

工时定额表制定定额标准,通过比较不同工序的指定列的对应数值,确定d("单工步加工时间") ,请问,如何把不同工序的指定列代入到Find条件中去,比如棒料的指定列是直径,板的指定列是长度和宽度


此主题相关图片如下:9.png
按此在新窗口浏览图片

--  作者:有点蓝
--  发布时间:2024/10/24 17:38:00
--  
   Case Else
if d("工步") = “棒料
        Dim dr As DataRow = DataTables("工时定额").Find("工序=\'" & e.Row("工序") & "\' and 工步=\'" & e.Row("工步") & "\' and 直径=\'" & e.Row("直径") & "\'")
        d("单工步加工时间") = dr("单工步加工时间")
elseif d("工步") = “
        Dim dr As DataRow = DataTables("工时定额").Find("工序=\'" & e.Row("工序") & "\' and 工步=\'" & e.Row("工步") & "\' and 长度=\'" & e.Row("长度") & "\'")
        d("单工步加工时间") = dr("单工步加工时间")
end if
End Select

--  作者:1234567
--  发布时间:2024/10/25 8:40:00
--  

如果工时定额表中直径列的数值是A~B这种形式,比如0~10,10~20。

如何根据当前行中的直径数值,在工时定额表中查找到符合条件的行?


--  作者:有点蓝
--  发布时间:2024/10/25 8:41:00
--  
查不了。建议改为2个列,比如最小直径、最大直径
--  作者:1234567
--  发布时间:2024/10/25 9:38:00
--  

.NET Framework 版本:4.0.30319.1
Foxtable 版本:2024.10.20.1
错误所在事件:表,工步,DataColChanged
详细错误信息:
Exception has been thrown by the target of an invocation.
Object reference not set to an instance of an object.

 

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "工序", "工步"
    Case Else
       If dr("工序") = "锯" AndAlso dr("工步") = "棒料" Then
        Dim dr1 As DataRow = DataTables("工时定额").Find("工序=\'" & e.DataRow("工序") & "\' and 工步=\'" & e.DataRow("工步") & "\' and 最小直径<=\'" & e.DataRow("直径") & "\' and 最大直径>\'" & e.DataRow("直径") & "\'")
        dr("单工步加工时间") = dr1("单工步加工时间")
End If
End Select

 

如何加一个判断?


--  作者:有点蓝
--  发布时间:2024/10/25 9:55:00
--  
还要加什么判断?
--  作者:1234567
--  发布时间:2024/10/25 10:01:00
--  

当我输入的直径数据超过工时定额表的最大最小直径范围,就会出现报错


--  作者:有点蓝
--  发布时间:2024/10/25 10:03:00
--  
http://www.foxtable.com/webhelp/topics/0396.htm,理解一下示例三