以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]日期报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=97396)

--  作者:wyz20130512
--  发布时间:2017/3/11 12:53:00
--  [求助]日期报错
图片点击可在新窗口打开查看\'加载指定日期内的数据(BeforeLoadInnerTable)

Select Case e.DataTableName
        Case "bc"
        e.Filter = "[jhrq] >=  #" & e.User.ExtendedValues("起始日期") & "# And [jhrq] <= #" & e.User.ExtendedValues("结束日期") & "#"
        MessageBox.Show(e.Filter)
End Select

报错:日期的语法错误 在查询表达式‘[jhrq] >= #1.1.2016# And [jhrq] <= #3.11.2017#\' 中。
[此贴子已经被作者于2017/3/11 13:00:12编辑过]

--  作者:有点蓝
--  发布时间:2017/3/11 14:35:00
--  

格式化一下

 

Format(e.User.ExtendedValues("起始日期"),"M/d/yyyy")


--  作者:wyz20130512
--  发布时间:2017/3/11 17:32:00
--  
Dim d As Date = Date.Today()
Output.Show(d)
Output.Show(Format(d,"MM/dd/yyyy"))

输出结果:
03.11.2017
03.11.2017

为何Format()不起作用? 另外论坛怎么不能上传附件了?
[此贴子已经被作者于2017/3/11 17:33:29编辑过]

--  作者:有点蓝
--  发布时间:2017/3/11 17:35:00
--  

设置项目的全局日期格式也不行么http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=93429

 


--  作者:wyz20130512
--  发布时间:2017/3/11 17:38:00
--  
是的,这正是本人以前在论坛发的帖子,用了15楼的代码,也不起作用。
[此贴子已经被作者于2017/3/11 17:40:09编辑过]

--  作者:有点蓝
--  发布时间:2017/3/11 17:40:00
--  
直接改系统的日期格式试试
--  作者:wyz20130512
--  发布时间:2017/3/11 17:42:00
--  
直接修改系统日期格式当然可以解决问题的,但这不是通用的办法呀!
--  作者:wyz20130512
--  发布时间:2017/3/11 17:45:00
--  
当系统日期格式的分隔符是"-"或"/"时,不报错;是“.”时,就报错。在Win10测试的。
--  作者:wyz20130512
--  发布时间:2017/3/12 11:14:00
--  
如何获得一个通用的方法来解决系统日期格式冲突问题,自顶一下。
--  作者:有点色
--  发布时间:2017/3/12 20:19:00
--  

beforeOpenProject事件, 或者 BeforeLoadInnerTable事件,写下面代码

 

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