以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  日期表达式判断代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=109982)

--  作者:L88919138
--  发布时间:2017/11/24 8:02:00
--  日期表达式判断代码
Dim Date2 As String = Date.Today         
tr = DataTables("存货账").Find("[商品名称] = \'" & dr("存货名称") & "\'and 业务发生日期 is not null and 业务发生日期 <= \'" & Date2 & "\' ","_SortKey Desc ,_Identify desc")



系统提示错误     

.NET Framework 版本:2.0.50727.3643
Foxtable 版本:2017.10.26.1
错误所在事件:自定义函数通用存货账重算
详细错误信息:
调用的目标发生了异常。
无法在 System.DateTime 和 System.String 上执行“<=”操作。


这个表达式要如何修改



--  作者:有点甜
--  发布时间:2017/11/24 8:54:00
--  

1、改成

 

tr = DataTables("存货账").Find("[商品名称] = \'" & dr("存货名称") & "\'and 业务发生日期 is not null and 业务发生日期 <= #" & Date2 & "# ","_SortKey Desc ,_Identify desc")

 

2、改成短日期,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


--  作者:L88919138
--  发布时间:2017/11/25 9:30:00
--  
我是用SQL外部数据源

提示错误:

.NET Framework 版本:2.0.50727.3662
Foxtable 版本:2017.10.26.1
错误所在事件:
详细错误信息:
从字符串向 datetime 转换时失败。

[此贴子已经被作者于2017/11/25 9:37:35编辑过]

--  作者:有点蓝
--  发布时间:2017/11/25 10:16:00
--  
业务发生日期列在数据库中是什么类型?
--  作者:L88919138
--  发布时间:2017/11/25 10:24:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:未命名2.jpg
图片点击可在新窗口打开查看
创建表时是选择日期时间型,好像也没有更好选择;在列属性里“日期时间格式”选择日期
图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2017/11/25 10:53:00
--  
Dim Date2 As date Date.Today
--  作者:L88919138
--  发布时间:2017/11/26 9:33:00
--  
谢谢大师指点