Foxtable(狐表)用户栏目专家坐堂 → 目录树filter出错?


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

主题:目录树filter出错?

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/12/13 12:20:00 [只看该作者]

SQL SEVER 2008 SP2

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/12/13 12:54:00 [只看该作者]

我试了一下:机具 订单表,按采购入库那样写,也不行。我改成下面的代码,不提错,但是不对。不能筛选,年月

Dim Filter As String
If e.node.name = "所有订单" Then
    filter = ""
Else
    Dim d1 As Date
    Dim d2 As Date
   Dim dr As DataRow = e.Node.DataRow
    Dim Year As Integer = e.Node.DataRow("年")
    Dim Month As Integer = e.Node.DataRow("月")
    Dim htmc As String = e.Node.DataRow("合同名称")
    Dim gys As String = e.Node.DataRow("供应商")
    Select Case e.Node.Level
        Case 0
            filter = "false"
        Case 1
            filter="合同名称 = '"& htmc &"'"
        Case 2
            filter = " " & dr("进货日期").year & "= " & Year & " And 合同名称 = '" & htmc & "'"
        Case 3
            Filter = "" & dr("进货日期").year & "= " & Year & " And " & dr("进货日期").month & "="  & month & " And 合同名称 = '"& htmc &"'"
        Case 4
            Filter = "" & dr("进货日期").year & "= " & Year & " And " & dr("进货日期").month & "="  & month & " And 合同名称 = '"& htmc &"' And 供应商 = '" & gys & "'"
    End Select
    
End If

If filter > "" Then
    DataTables("机具订单").RemoveFor(filter)
    DataTables("机具订单").AppendLoad(filter)
    Tables("机具订单").Filter= Filter
Else
    DataTables("机具订单").LoadFilter= Filter
    DataTables("机具订单").load()
    Tables("机具订单").Filter= Filter
End If
[此贴子已经被作者于2016/12/13 13:00:19编辑过]

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


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

参考写法

 

Case 3

            Dim d As Date = new Date(year, month, 1)

            filter = "进货日期 >= #" & d & "# and 进货日期 < #" & d.AddMonths(1) & "# And 合同名称 = '" & htmc & "'"

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/12/13 14:30:00 [只看该作者]

这样也写也不行。

弹错:标准表达式中数据类型不匹配。


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/12/13 14:33:42编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/12/13 14:46:00 [只看该作者]

If filter > "" Then
    DataTables("机具订单").RemoveFor(filter)
    DataTables("机具订单").AppendLoad(filter)
    Tables("机具订单").Filter= Filter.Replace("'","#")
Else
    DataTables("机具订单").LoadFilter= Filter
    DataTables("机具订单").load()
    Tables("机具订单").Filter= Filter.Replace("'","#")
End If

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/12/13 15:27:00 [只看该作者]

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2016.7.29.1
错误所在事件:
详细错误信息:
该字符串未被识别为有效的 DateTime。有一个从索引 0 处开始的未知字。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/12/13 15:34:00 [只看该作者]

你分别合成两个filter,因为后台语法和前台不同,后台日期用',前台日期用#.

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  18楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/12/13 15:37:00 [只看该作者]

或者在二楼代码的基础上改一下:

Dim filter As String
If e.Node.name = "所有考勤" Then
    filter = ""
Else
    
    Dim dr As DataRow = e.Node.DataRow
    Dim htmc As String = e.Node.DataRow("合同名称")
    Dim Year As Integer = e.Node.DataRow("年")
    Dim Month As Integer = e.Node.DataRow("月")
Dim dy As Date = new Date(Year ,1,1)
Dim dm As Date = new Date(Year ,Month ,1)
    Select Case e.Node.Level
        Case 0
            Filter ="合同名称 ='" & htmc & "'"
        Case 1
            Filter =" 考勤月份 >= #" & dy & "# and 考勤月份 < #" & dy.AddYears(1) & "# And 合同名称 = '" & htmc & "' "
        Case 2
            Filter ="考勤月份 >= #" & dm & "# and 考勤月份 < #" & dm.AddMonths(1) & "#  And 合同名称 ='" & htmc & "'"
    End Select
End If
DataTables("考勤").loadFilter = filter.Replace("#","'")
DataTables("考勤").load
Tables("考勤").Filter = filter
[此贴子已经被作者于2016/12/13 15:38:43编辑过]

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


加好友 发短信
等级:四尾狐 帖子:842 积分:5971 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By:2016/12/13 16:09:00 [只看该作者]

标准表达式中数据类型不匹配。

一样的问题。。用18楼 的代码。


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


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  20楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/12/13 16:18:00 [只看该作者]

你的月份列是数字的还是日期的?
如果是日期列,上面的表达式没有错。
如果是数字的,肯定报错。
这是很简单的问题,不应该折腾这么久的,你做个例子发上来,或者联系客服远程看看。

 回到顶部
总数 23 上一页 1 2 3 下一页