Foxtable(狐表)用户栏目专家坐堂 → [求助]DateTimePicker控件输入时间后时间变成00:00(已解决)


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

主题:[求助]DateTimePicker控件输入时间后时间变成00:00(已解决)

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


加好友 发短信
等级:童狐 帖子:272 积分:2125 威望:0 精华:0 注册:2018/8/13 9:55:00
[求助]DateTimePicker控件输入时间后时间变成00:00(已解决)  发帖心情 Post By:2018/12/20 12:22:00 [只看该作者]

各位老师前辈,请教一个问题,我的窗口设置了时间控件,外部sql表时间字段类型设置为datetime,然后窗口的DateTimePicker时间格式设置为Time,设置代码如下,但是输入时间后,时间都自动变成00:00,然后光标跳转到下一个控件,不知道是什么问题,希望老师们能解答一下,多谢了!


'窗口AfterLoad设置控件输入时间
Dim kssj As WinForm.DateTimePicker = e.Form.Controls("开始时间")
kssj.DateTimeFormat = DateTimeFormatEnum.Time
Dim jssj As WinForm.DateTimePicker = e.Form.Controls("结束时间")
jssj.DateTimeFormat = DateTimeFormatEnum.Time
[此贴子已经被作者于2018/12/21 12:14:23编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/20 12:26:00 [只看该作者]

你是不是要改成datetime?http://www.foxtable.com/webhelp/scr/2033.htm

 

你选择的是日期,时间默认就是 00:00 的,你要手动输入时间才行


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


加好友 发短信
等级:童狐 帖子:272 积分:2125 威望:0 精华:0 注册:2018/8/13 9:55:00
  发帖心情 Post By:2018/12/20 12:49:00 [只看该作者]

我是想只要时间,不要日期,我现在按上面的设置,选中一个日期后,控件内容是00:00,然后可以手动输入时间,比如12:43,但是输入到第四位完成后,时间又变成了00:00,然后光标跳转到下一个控件去了!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/20 15:12:00 [只看该作者]

你这个控件绑定表列了吧?这个列,也要设置成对应的类型的。在列属性那里设置

 

http://www.foxtable.com/webhelp/scr/0044.htm

 


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


加好友 发短信
等级:童狐 帖子:272 积分:2125 威望:0 精华:0 注册:2018/8/13 9:55:00
  发帖心情 Post By:2018/12/20 16:05:00 [只看该作者]

我这个控件绑定了列,数据表是外部SQL Server,如果我把字段类型设置为time,打开窗口时会提示DateTimePicker只能绑定到日期列,忽略提示可以输入时间,但是保存时,数据表里面的时间会全部变成0!
[此贴子已经被作者于2018/12/20 16:04:44编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/20 18:27:00 [只看该作者]

这个列,也要设置成对应的类型的。在列属性那里设置

 

http://www.foxtable.com/webhelp/scr/0044.htm

 


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


加好友 发短信
等级:童狐 帖子:272 积分:2125 威望:0 精华:0 注册:2018/8/13 9:55:00
  发帖心情 Post By:2018/12/21 12:03:00 [只看该作者]

老师,我加这这段代码,现在开始时间列和结束时间列可以输入时间了:

DataTables("Table10").DataCols("开始时间").SetDateTimeFormat(DateTimeFormatEnum.Time)
DataTables("Table10").DataCols("结束时间").SetDateTimeFormat(DateTimeFormatEnum.Time)

然后我用下面的代码计算结束时间减去开始时间,得到的时间是后面有长长的小数位数,怎样才能只保留两位小数呢?

'计算拜访时长
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("开始时间")
            Dim v As Double = tp.TotalSeconds() / 3600
            dr("拜访时长") = v
        End If
End Select

开始时间:11:22
结束时间:14:15
拜访时长:2.88333333333333

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/21 12:08:00 [只看该作者]

dr("拜访时长") = v

 

改成

 

dr("拜访时长") = format(v, "0.00")


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


加好友 发短信
等级:童狐 帖子:272 积分:2125 威望:0 精华:0 注册:2018/8/13 9:55:00
  发帖心情 Post By:2018/12/21 12:14:00 [只看该作者]

可以了,多谢老师!

 回到顶部