以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  自定义加载树,错误提示!!  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=52568)

--  作者:身份不明
--  发布时间:2014/6/18 13:44:00
--  自定义加载树,错误提示!!

.NET Framework 版本:2.0.50727.5477
Foxtable 版本:2014.5.12.1
错误所在事件:加载[生产派单]失败!
详细错误信息:
列名 \'False\' 无效。

 

代码如下:

Dim Filter As String

If e.Node.Text = "加载所有数据" Then
    Filter = ""
Else
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
    Dim pname As String = dr("派单完成")
    Dim Year As Integer = dr("年")
    Dim Month As Integer = dr("月")
    Select Case e.Node.Level
        Case 0          
            Filter ="[派单完成] = " & dr("派单完成") & ""
        Case 1
            Filter ="Year(日期) = " & Year
        Case 2
            Filter ="Year(日期) = " & Year & " And Month(日期) = " & Month  
    End Select
End If

With DataTables("生产派单")
    .LoadFilter = Filter
    .LoadPage = 0
    .LoadTop = 10
    .Load()
    e.Form.Controls("TextBox1").Value = 1 & "/" & .TotalPages
End With



--  作者:有点甜
--  发布时间:2014/6/18 14:02:00
--  

Dim Filter As String

If e.Node.Text = "加载所有数据" Then
    Filter = ""
Else
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
    Dim pname As String = dr("派单完成")
    Dim Year As Integer = dr("年")
    Dim Month As Integer = dr("月")
    Select Case e.Node.Level
        Case 0
            If dr.IsNull("派单完成") = False Then
                Filter ="[派单完成] = " & dr("派单完成") & ""
            End If
        Case 1
            Filter ="Year(日期) = " & Year
        Case 2
            Filter ="Year(日期) = " & Year & " And Month(日期) = " & Month
    End Select
End If

With DataTables("生产派单")
    .LoadFilter = Filter
    .LoadPage = 0
    .LoadTop = 10
    .Load()
    e.Form.Controls("TextBox1").Value = 1 & "/" & .TotalPages
End With

 


--  作者:Bin
--  发布时间:2014/6/18 14:03:00
--  
弹出一下Filter 看看拼接结果是什么.
--  作者:有点甜
--  发布时间:2014/6/18 14:18:00
--  

 如果是sqlserver数据源,可能要这样改。

 

Dim Filter As String

If e.Node.Text = "加载所有数据" Then
    Filter = ""
Else
    Dim dr As DataRow = e.Node.DataRow \'获取生成此节点的行
    Dim pname As String = dr("派单完成")
    Dim Year As Integer = dr("年")
    Dim Month As Integer = dr("月")
    Select Case e.Node.Level
        Case 0
            Filter ="[派单完成] = " & iif(dr("派单完成") = False, 0, 1)
        Case 1
            Filter ="Year(日期) = " & Year
        Case 2
            Filter ="Year(日期) = " & Year & " And Month(日期) = " & Month
    End Select
End If

With DataTables("生产派单")
    .LoadFilter = Filter
    .LoadPage = 0
    .LoadTop = 10
    .Load()
    e.Form.Controls("TextBox1").Value = 1 & "/" & .TotalPages
End With

 

 


--  作者:身份不明
--  发布时间:2014/6/18 15:09:00
--  

可以使用了,甜老师,我上面的代码在原来的系统是可以使用的,原来是Access数据库。

为什么换成SQL数据库后,代码就出错了呢?


--  作者:有点甜
--  发布时间:2014/6/18 15:12:00
--  
sqlserver的逻辑列,不能用false和true,要用0和1