以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数据转换问题.上一个帖子问题不够清晰,重新发一个  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153589)

--  作者:夜点蚊香
--  发布时间:2020/8/16 10:06:00
--  数据转换问题.上一个帖子问题不够清晰,重新发一个
用数据表中已有的 三个字段  上午  9:00   11:00    拼接成      (上午 9:00 - 11:00)  
现在 用  表达式列 公式  [时段] +\'  \' + [上课时间] +\'- \'+[下课时间] 拼接出来的效果是   (上午  66000 - 66600) 
如何让拼接完成后 也按照时间显示.

--  作者:有点蓝
--  发布时间:2020/8/16 20:29:00
--  
如果时段列,表达式处理不了,需要使用代码:
datacolchanged事件
Select Case e.DataCol.Name
    Case "第一列","时段1","时段2"
        e.DataRow("第四列") = e.DataRow("第一列") & math.Floor(e.DataRow("时段1") / 3600) & ":" & cstr(math.Floor((e.DataRow("时段1") Mod 3600)/60)).PadLeft(2,"0") & "-" & math.Floor(e.DataRow("时段2") / 3600) & ":" & cstr(math.Floor((e.DataRow("时段2") Mod 3600)/60)).PadLeft(2,"0")
End Select

--  作者:夜点蚊香
--  发布时间:2020/8/21 22:22:00
--  
错误所在事件:表,课程管理_课程信息表,DataColChanged
详细错误信息:
调用的目标发生了异常。
没有为 类型“Date” 和 类型“Integer” 定义运算符“/”。
报了个错

下面是代码
Select Case e.DataCol.Name
    Case "时段","上课时间","下课时间"
        e.DataRow("时段组合") = e.DataRow("时段") & math.Floor(e.DataRow("上课时间") / 3600) & ":" & cstr(math.Floor((e.DataRow("上课时间") Mod 3600)/60)).PadLeft(2,"0") & "-" & math.Floor(e.DataRow("下课时间") / 3600) & ":" & cstr(math.Floor((e.DataRow("下课时间") Mod 3600)/60)).PadLeft(2,"0")
End Select
[此贴子已经被作者于2020/8/21 22:22:08编辑过]

--  作者:有点蓝
--  发布时间:2020/8/22 9:20:00
--  
我以为是时段列,如果是日期列

Select Case e.DataCol.Name
    Case "时段","上课时间","下课时间"
        e.DataRow("时段组合") = e.DataRow("时段") & format(e.DataRow("上课时间"),"HH:mm") & "-" & format(e.DataRow("下课时间"),"HH:mm")
End Select