Foxtable(狐表)用户栏目专家坐堂 → [分享]再谈系统日期格式冲突


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

主题:[分享]再谈系统日期格式冲突

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/11/29 13:47:00 [只看该作者]

 mark

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


加好友 发短信
等级:六尾狐 帖子:1243 积分:9391 威望:0 精华:0 注册:2013/5/12 9:22:00
回复:(逛逛)定义一个变量,在出错的事件最上面,检...  发帖心情 Post By:2016/11/29 15:02:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:beforeloadinnertable15.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:beforeloadinnertable13.png
图片点击可在新窗口打开查看

另贴出代码BeforeLoadInnerTable:

msgbox(Date.Today)
Vars.Add("ddd",Gettype(Boolean),False)
If Vars("ddd") = False Then
    Dim cd As System.Globalization.DateTimeFormatInfo = System.Globalization.DateTimeFormatInfo.CurrentInfo
    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
    Vars("ddd") = True
End If
msgbox(Date.Today)
'加载指定日期内的数据
Select Case e.DataTableName
    Case "hc","fybxd"
        e.Filter = "[rq] >=  #" & e.User.ExtendedValues("起始日期") & "# And [rq] <= #" & e.User.ExtendedValues("结束日期") & "#"
        'MessageBox.Show(CStr(e.User.ExtendedValues("起始日期")).Split(" ")(0) & "   " & CStr(e.User.ExtendedValues("结束日期")).Split(" ")(0))
        'MessageBox.Show(CDate(CStr(e.User.ExtendedValues("起始日期")).Split(" ")(0)) & "   " & CDate(CStr(e.User.ExtendedValues("结束日期")).Split(" ")(0)))
        'Return
    Case "bmwz"
        e.Filter = "[gmrq] >=  #" & e.User.ExtendedValues("起始日期") & "# And [gmrq] <= #" & e.User.ExtendedValues("结束日期") & "#"
    Case "bc"
        e.Filter = "[jhrq] >=  #" & e.User.ExtendedValues("起始日期") & "# And [jhrq] <= #" & e.User.ExtendedValues("结束日期") & "#"
    Case "劳务登记","交易明细"
        e.Filter = "[日期] >=  #" & e.User.ExtendedValues("起始日期") & "# And [日期] <= #" & e.User.ExtendedValues("结束日期") & "#"
End Select


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


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/29 15:15:00 [只看该作者]

你只是设置长日期,没有设置短日期

msgbox(Date.Today)
Vars.Add("ddd",Gettype(Boolean),False)
If Vars("ddd") = False Then
    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
    Vars("ddd") = True
End If
msgbox(Date.Today)

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


加好友 发短信
等级:六尾狐 帖子:1243 积分:9391 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2016/11/29 16:17:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:beforeloadinnertable16.png
图片点击可在新窗口打开查看

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


加好友 发短信
等级:六尾狐 帖子:1243 积分:9391 威望:0 精华:0 注册:2013/5/12 9:22:00
  发帖心情 Post By:2016/11/29 16:35:00 [只看该作者]

BeforeOpenProject事件

msgbox(Date.Today)
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    
msgbox(Date.Today)

我个人认为这段代码放在BeforeOpenProject事件中较好:
1.打开项目前就校对好日期格式;
2.不用修改系统日期格式;
3.不用重启应用程序.
[此贴子已经被作者于2017/3/13 11:10:52编辑过]

 回到顶部
总数 15 上一页 1 2