以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  日期后面的0:00:00又出来了  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99497)

--  作者:天若千颖
--  发布时间:2017/4/20 11:52:00
--  日期后面的0:00:00又出来了
以前没有问题,现在都出了,代码如下:

Dim Time As WinForm.ComboBox = e.Form.Controls("日期选择控件")
Time.ComboList= DataTables("钻井进度表").GetComboListString("日期")
Time.ComboList = Time.ComboList.Replace(" 0:00:00", "")

以前把0:00:00替换了,现在代码不变,但是零存在,很多窗口都是如此。

使用

Time.ComboList= Format(DataTables("钻井进度表").GetComboListString("日期"),"d")  的结果直接是:d

删除bin之后还是如此


--  作者:有点色
--  发布时间:2017/4/20 12:03:00
--  

 改成

 

Time.ComboList = Time.ComboList.Replace(" 00:00:00", "")


--  作者:天若千颖
--  发布时间:2017/4/20 12:20:00
--  
这种问题由什么原因导致的呢?以前怎么没有出这个问题。我另外有一个窗口有一个同样的控件,也是这样替换的,却没有问题。会不会今天替换成00:00:00,以后又得全部替换回来? 

 另外,格式化函数怎么在这里没有报错,但也没有起作用呢?


在这个窗口中,我有两个ComboBox ,如果替换格式都为0:00:00的话,两个日期后面都有0:00:00,如果把第一个改为Time.ComboList = Time.ComboList.Replace(" 00:00:00", ""),则第二个框也自动改了,但是替换第二个的话,第一个却不自动改过来,这是什么原因?

Dim Time As WinForm.ComboBox = e.Form.Controls("日期选择控件")
Time.ComboList= DataTables("项目钻井进度表").GetComboListString("日期")
Time.ComboList = Time.ComboList.Replace(" 0:00:00", "")
Dim Time2 As WinForm.ComboBox = e.Form.Controls("日期选择控件1")
Time2.ComboList= DataTables("项目钻井进度表").GetComboListString("日期")
Time2.ComboList = Time.ComboList.Replace(" 0:00:00", "")
[此贴子已经被作者于2017/4/20 12:48:53编辑过]

--  作者:有点色
--  发布时间:2017/4/20 14:56:00
--  

试试这样写

 

Dim Time As WinForm.ComboBox = e.Form.Controls("日期选择控件")
Time.ComboList= DataTables("表A").sqlGetComboListString("format(内转日期,\'yyyy-MM-dd\')")
Time.ComboList = Time.ComboList


--  作者:天若千颖
--  发布时间:2017/4/20 15:04:00
--  
版主你说得这个可行,但是我还是要问:

这种问题由什么原因导致的呢?以前怎么没有出这个问题。我另外有一个窗口有一个同样的控件,也是这样替换的,却没有问题。会不会今天替换成00:00:00,以后又得全部替换回来? 

--  作者:有点色
--  发布时间:2017/4/20 15:08:00
--  
以下是引用天若千颖在2017/4/20 15:04:00的发言:
版主你说得这个可行,但是我还是要问:

这种问题由什么原因导致的呢?以前怎么没有出这个问题。我另外有一个窗口有一个同样的控件,也是这样替换的,却没有问题。会不会今天替换成00:00:00,以后又得全部替换回来? 

 

应该是日期格式的问题吧?你试试统一一下日期格式

 

afterOpenProject事件,短日期

 

Dim cd As System.Globalization.DateTimeFormatInfo = System.Globalization.DateTimeFormatInfo.CurrentInfo
cd.ShortDatePattern = "yyyy年MM月dd日"
Dim DateInfo As System.Reflection.FieldInfo = cd.Gettype.GetField("generalLongTimePattern", System.Reflection.BindingFlags.NonPublic Or System.Reflection.BindingFlags.Instance)
If  DateInfo IsNot Nothing Then
    DateInfo.SetValue(cd, "yyyy-MM-dd HH:mm:ss")
End If