以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]老师,帮我改下代码,谢谢!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=62284)

--  作者:huangfanzi
--  发布时间:2014/12/29 12:01:00
--  [求助]老师,帮我改下代码,谢谢!
表格结构:

重量(双精) 起始时间(datatime型)  结束时间(datatime型) 作业耗时(双精)  作业分钟数(双精)
200             2014-12-29 12:00    2014-12-29 13:00        1800                        30
200             2014-12-29 12:00    2014-12-29 13:00        1800                        30
100             2014-12-29 13:00    2014-12-29 14:00        1200                        20
200             2014-12-29 13:00    2014-12-29 14:00        2400                        40

代码使用的背景:一个设备可以同时加工几个产品,例如退火炉,退火炉成本时是按退火时间核算的,在核算一炉内(起始时间一致的为一炉)某个产品的成本时,要按重量比例分摊总成本(也就是加工时间)

代码如下:
Select Case e.DataCol.name
    Case "起始时间","结束时间"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("起始时间") Or dr.IsNull("结束时间") Then
            dr("作业耗时") = Nothing
        Else
            Dim tp As TimeSpan
            tp = dr("结束时间") - dr("起始时间")
            dr("作业耗时") = tp.TotalSeconds()/DataTables("生产记录表").Compute("Sum(重量)", "起始时间 = \'" & e.DataRow("起始时间")  & "")* e.DataRow("重量")  \'应该就是这条代码错了
            dr("作业分钟数")=dr("作业耗时")/60
        End If
End Select

执行结果:
.NET Framework 版本:2.0.50727.6421
Foxtable 版本:2014.10.23.1
错误所在事件:表,生产记录表, DataColChanged
详细错误信息:
调用的目标发生了异常。
表达式包含无效的字符串常量: \'2014-12-29 12:00:00。

[此贴子已经被作者于2014-12-29 12:04:49编辑过]

--  作者:huangfanzi
--  发布时间:2014/12/29 12:11:00
--  
自己搞定了,少打了一个单引号,哈哈!
--  作者:有点甜
--  发布时间:2014/12/29 12:12:00
--  
dr("作业耗时") = tp.TotalSeconds()/DataTables("生产记录表").Compute("Sum(重量)", "起始时间 = #" & e.DataRow("起始时间")  & "#")* e.DataRow("重量")  \'应该就是这条代码错了