Foxtable(狐表)用户栏目专家坐堂 → 通用代码


  共有715人关注过本帖树形打印复制链接

主题:通用代码

帅哥哟,离线,有人找我吗?
1234567
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
通用代码  发帖心情 Post By: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
按此在新窗口浏览图片

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111376 积分:566944 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/10/25 8:40:00 [只看该作者]

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

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


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111376 积分:566944 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/10/25 8:41:00 [只看该作者]

查不了。建议改为2个列,比如最小直径、最大直径

 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By: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

 

如何加一个判断?


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111376 积分:566944 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/10/25 9:55:00 [只看该作者]

还要加什么判断?

 回到顶部
帅哥哟,离线,有人找我吗?
1234567
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:827 积分:6488 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2024/10/25 10:01:00 [只看该作者]

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


 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111376 积分:566944 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/10/25 10:03:00 [只看该作者]


 回到顶部