以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 数据保存问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=64344)

--  作者:wangyinming
--  发布时间:2015/2/11 15:55:00
--  [求助] 数据保存问题

我在表属性里写以下代码计算时间,当时计算后表中有计算结果,但是保存表并关闭狐表后再次打开就没有了,请版主确认一下

 

Select Case e.DataCol.name
    Case "生产开始时间","生产结束时间"
        Dim dr3 As DataRow = e.DataRow
        If dr3.IsNull("生产开始时间") Or dr3.IsNull("生产结束时间") Then
            dr3("开动时间") = Nothing
        Else
            Dim d1 As Date = dr3("生产结束时间")
            Dim d2 As Date = dr3("生产开始时间")
            Dim tp1, tp2 As TimeSpan
            If d1 < d2 Then
                d1 = d1.AddDays(1)
            End If
            Dim time As Double
            tp1 = d1 - d2
            time = tp1.TotalSeconds
            For Each dr As DataRow In DataTables("休息表").Select("")
                Dim d3 As Date = dr("开始时间")
                Dim d4 As Date = dr("结束时间")
                Dim d1s, d1e As Date
                If d4 > d2 Then
                    d1s = new Date(d2.Year, d2.Month, d2.day, d3.Hour, d3.Minute, 0)
                    d1e = new Date(d2.Year, d2.Month, d2.day, d4.Hour, d4.Minute, 0)
                Else
                    d1s = new Date(d1.Year, d1.Month, d1.day, d3.Hour, d3.Minute, 0)
                    d1e = new Date(d1.Year, d1.Month, d1.day, d4.Hour, d4.Minute, 0)
                End If
                If d1 > d1e Then
                    If d2 < d1e AndAlso d2 >= d1s Then
                        tp2 = d1e - d2
                        time = time - tp2.TotalSeconds
                    Else If d2 < d1s Then
                        tp2 = d1e - d1s
                        time = time - tp2.TotalSeconds
                    End If
                Else If d1 > d1s Then
                    If d2 < d1s Then
                        tp2 = d1 - d1s
                        time = time - tp2.TotalSeconds
                    Else
                        time = 0
                    End If
                End If
               
            Next
            dr3("开动时间") = time/60/60
           
        End If
End Select

 

 

附件DATA表中显示

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


--  作者:Bin
--  发布时间:2015/2/11 16:07:00
--  
你的列是表达式列吧,检查一下
--  作者:有点甜
--  发布时间:2015/2/11 16:17:00
--  

http://www.foxtable.com/help/topics/1380.htm

 


--  作者:wangyinming
--  发布时间:2015/2/11 16:32:00
--  

原来如此,是这样的。糊涂了,谢谢