Foxtable(狐表)用户栏目专家坐堂 → 表达式不产生值


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

主题:表达式不产生值

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


加好友 发短信
等级:二尾狐 帖子:568 积分:4728 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/10/16 18:52:00 [只看该作者]

图片点击可在新窗口打开查看

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


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

重新把父表,子表所有代码发上来看看

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


加好友 发短信
等级:二尾狐 帖子:568 积分:4728 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/10/16 20:40:00 [只看该作者]

代码

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


加好友 发短信
等级:二尾狐 帖子:568 积分:4728 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/10/16 20:40:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:代码.zip


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


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

子表输入什么列数据,父表没有计算?子表哪个代码是处理这个列的数据的?




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


加好友 发短信
等级:二尾狐 帖子:568 积分:4728 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/10/16 23:00:00 [只看该作者]


取消下列代码后,能正确运行,是下列代码有冲突吗?


If e.DataRow("工序") = "线切割" And e.DataRow("工步") = "割R角"Then

  Select Case e.DataCol.Name

    Case "直径" , "直径高度" , "线切割引线长度" , "钱切割加工速度" , "加工单价", "单工步线切割穿孔数量", "线切割穿孔单价", "一个零件上加工数量" 

  

           e.DataRow("单工步加工时间") = (e.DataRow("直径") * 3.14 * e.DataRow("直径高度") / 4 + e.DataRow("线切割引线长度")) / e.DataRow("钱切割加工速度")

          

           e.DataRow("单工步加工费") = e.DataRow("单工步加工时间") * e.DataRow("加工单价") + e.DataRow("单工步线切割穿孔数量") * e.DataRow("线切割穿孔单价")

End Select

    

End If '



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


加好友 发短信
等级:二尾狐 帖子:568 积分:4728 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/10/16 23:07:00 [只看该作者]

第一个单工步时间是作为触发的,下面的单工步时间是参与计算的,两者有冲突吗?
Select Case e.DataCol.Name
    Case "单工步加工时间" , "一个零件上加工数量" 
           e.DataRow("单个零件工步时间") = e.DataRow("单工步加工时间") * e.DataRow("一个零件上加工数量") 
End Select

Select Case e.DataCol.Name
    Case "单个零件工步时间" , "零件数量" 
           e.DataRow("工步时间小计") = e.DataRow("单个零件工步时间") * e.DataRow("零件数量") 
End Select



If e.DataRow("工序") = "线切割" And e.DataRow("工步") = "割R角"Then
  Select Case e.DataCol.Name
    Case "直径" , "直径高度" , "线切割引线长度" , "钱切割加工速度" , "加工单价", "单工步线切割穿孔数量", "线切割穿孔单价", "一个零件上加工数量" 
  
           e.DataRow("单工步加工时间") = (e.DataRow("直径") * 3.14 * e.DataRow("直径高度") / 4 + e.DataRow("线切割引线长度")) / e.DataRow("钱切割加工速度")
          
           e.DataRow("单工步加工费") = e.DataRow("单工步加工时间") * e.DataRow("加工单价") + e.DataRow("单工步线切割穿孔数量") * e.DataRow("线切割穿孔单价")
End Select
    
End If '


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


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/10/16 23:54:00 [只看该作者]

没有冲突。

If e.DataRow("工序") = "线切割" And e.DataRow("工步") = "割R角" Then '里面的代码只有符合这2个条件才会计算
  Select Case e.DataCol.Name
    Case "直径" , "直径高度" , "线切割引线长度" , "钱切割加工速度"
if e.DataRow("钱切割加工速度") = 0 then
e.DataRow("单工步加工时间") = 0
else
           e.DataRow("单工步加工时间") = (e.DataRow("直径") * 3.14 * e.DataRow("直径高度") / 4 + e.DataRow("线切割引线长度")) / e.DataRow("钱切割加工速度")
end if
    Case "单工步加工时间" , "加工单价", "单工步线切割穿孔数量", "线切割穿孔单价"
           e.DataRow("单工步加工费") = e.DataRow("单工步加工时间") * e.DataRow("加工单价") + e.DataRow("单工步线切割穿孔数量") * e.DataRow("线切割穿孔单价")
End Select
    
End If

另外检查一下有没有表达式列:http://www.foxtable.com/webhelp/topics/2381.htm

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


加好友 发短信
等级:二尾狐 帖子:568 积分:4728 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/10/16 23:56:00 [只看该作者]

是父表冲突了,谢谢蓝老师.
If e.DataCol.name = "加工单价" OrElse e.DataCol.name = "估工" Then
          'e.DataRow("工序加工费") = e.DataRow("加工单价") * e.DataRow("估工")
'End If

Select Case e.DataCol.Name
Case "工序号"
   e.DataRow("工序材料费") = DataTables("零件加工报价系统_Table4").Compute("Sum(材料费小计)", "[工步号] Like '" & e.DataRow("工序号") & "-*'") 
   e.DataRow("工序加工费") = DataTables("零件加工报价系统_Table4").Compute("Sum(加工费小计)", "[工步号] Like '" & e.DataRow("工序号") & "-*'")
End Select

Select Case e.DataCol.Name

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


加好友 发短信
等级:二尾狐 帖子:568 积分:4728 威望:0 精华:0 注册:2013/2/18 17:46:00
  发帖心情 Post By:2023/10/20 12:19:00 [只看该作者]

上述问题仍旧存在,
父表估工数据始终慢了一拍,
父表DataColChanged   
Select Case e.DataCol.Name 
Case "工序号"
   e.DataRow("估工") = DataTables("零件加工报价系统_Table4").Compute("Sum(工步时间小计)/60", "[工步号] Like '" & e.DataRow("工序号") & "-*'")
End Select

子表DataColChanged
Select Case e.DataCol.Name
   Case "材料费小计", "加工费小计", "刷新"
    Dim pr As DataRow
      pr = DataTables("零件加工报价系统_Table3").Find("工序号 = '" & e.DataRow("工序号") & "'")
      If pr IsNot Nothing Then
      DataTables("零件加工报价系统_Table3").DataCols("工序号").RaiseDataColChanged(pr)
 End If
End Select

现在我把子表DataColChanged改为
Select Case e.DataCol.Name
   Case "材料费小计", "加工费小计", "刷新", "工步时间小计"
    Dim pr As DataRow
      pr = DataTables("零件加工报价系统_Table3").Find("工序号 = '" & e.DataRow("工序号") & "'")
      If pr IsNot Nothing Then
      DataTables("零件加工报价系统_Table3").DataCols("工序号").RaiseDataColChanged(pr)
 End If
End Select
测试一下没发现问题
现在就是没搞明白,原来的子表工步时间小计 变化后,必然会导致加工费小计的变化,一样会触发RaiseDataColChanged(pr),为什么会慢一拍?

 回到顶部
总数 62 上一页 1 2 3 4 5 6 7 下一页