以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助-时段统计  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193044)

--  作者:lovetoday
--  发布时间:2024/8/12 12:19:00
--  求助-时段统计
老师,我在SQL数据库里有,时间格式列A和列B,例其时间为列A20:00,列B22:47,有双精度的列C,扩展类型为时段,我用C=B-A,得出C=167(我用的是分钟),请问我如何让列C的显示格式为02:47,让列C这样显示后,我能否还能这样去写表达式:Math.Ceiling((r("列C") - 149) / 60) * 60
--  作者:有点蓝
--  发布时间:2024/8/12 13:48:00
--  
列C 扩展类型为时段默认就是显示为02:47这种格式的呀。

表达式:([列C] - 149) / 60 * 60


--  作者:lovetoday
--  发布时间:2024/8/12 14:30:00
--  
老师,C列我在建列时是为双精列,并扩展为时段,在加载进窗口后,用这个代码计算后,显示的就是147这个数,
    \'用时计算
    If r.IsNull("砼销明细_超时_时起") Or r.IsNull("砼销明细_超时_时止") Then
        r("砼销明细_超时_用时自") = Nothing
    Else
        Dim tp As TimeSpan
        tp = r("砼销明细_超时_时止") - r("砼销明细_超时_时起")
        r("砼销明细_超时_用时自") = tp.TotalMinutes()
    End If
列A是时起,列B是时止,列C是用时自

--  作者:有点蓝
--  发布时间:2024/8/12 14:38:00
--  
时段是以秒为单位的哦

r("砼销明细_超时_用时自") = tp.TotalSeconds()

--  作者:lovetoday
--  发布时间:2024/8/12 14:48:00
--  
老师,我改成秒后,显示的是8820了,还是没有显示成02:47这样的时分格式,那我是不是要在加载表时,定义用时自列的格式呢,比如,我在建表时,时起是日期格式列,但加载进窗口后又不是了,我在加载表时加了,这句代码后,才正确显示,DataTables("工作总表_Table7").DataCols("砼销明细_超时_时起").SetDateTimeFormat(DateTimeFormatEnum.Time),
--  作者:lovetoday
--  发布时间:2024/8/12 15:04:00
--  
老师,我加了    DataTables("工作总表_Table7").DataCols("砼销明细_超时_用时自").SetDateTimeFormat(DateTimeFormatEnum.Time)后,显示的就是HH:mm
--  作者:有点蓝
--  发布时间:2024/8/12 15:25:00
--  
不需要SetDateTimeFormat的,除非是日期列。肯定没有设置为时段列,日期列是无法设置为时段列的,只有双精度可以
--  作者:lovetoday
--  发布时间:2024/8/12 16:13:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20240812160709.png
图片点击可在新窗口打开查看

--  作者:lovetoday
--  发布时间:2024/8/12 16:13:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20240812160725.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2024/8/12 16:40:00
--  
看上面的代码,设置的是窗口表,窗口表和列属性的设置没有任何关系的。请上传实例看看