Foxtable(狐表)用户栏目专家坐堂 → [求助]日期报错


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

主题:[求助]日期报错

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
[求助]日期报错  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By: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编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/3/11 17:38:00 [显示全部帖子]

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

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/3/11 17:42:00 [显示全部帖子]

直接修改系统日期格式当然可以解决问题的,但这不是通用的办法呀!

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/3/11 17:45:00 [显示全部帖子]

当系统日期格式的分隔符是"-"或"/"时,不报错;是“.”时,就报错。在Win10测试的。

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2017/3/12 11:14:00 [显示全部帖子]

如何获得一个通用的方法来解决系统日期格式冲突问题,自顶一下。

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


加好友 发短信
等级:六尾狐 帖子:1242 积分:9380 威望:0 精华:0 注册:2013/5/12 9:22:00
回复:(有点色)beforeOpenProject事件, 或者 Befor...  发帖心情 Post By:2017/3/13 11:03:00 [显示全部帖子]

经测试,问题解决了
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

可将"-"替换为"/"为何不可?

 回到顶部