以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]目录树层级的设置代码,不知道哪错了,请修改  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=43640)

--  作者:hrw68529
--  发布时间:2013/12/12 9:54:00
--  [求助]目录树层级的设置代码,不知道哪错了,请修改

下列代码运行出错,不知道什么原因,我想建立四层目录树,请赐教。

1、窗口的AfterLoad事件代码为:

Dim cmd As New SQLCommand

Dim dt As DataTable

cmd.CommandText = "SELECT DISTINCT 公务参照区分 ,Year(生成日期) As 年, Month(生成日期) As 月, 审签序号 From {公务信息表}"

dt = cmd.ExecuteReader()

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")

trv.BuildTree(dt, "公务参照区分|年|月|审签序号")

trv.Nodes.Insert("显示所有行",0)


2、目录树的NodeMouseDoubleClick事件代码为:

Dim Value()As String

Dim Filter As String

Dim d1 As Date

Dim d2 As Date

Value = e.Node.FullPath.Split("\\")

Select Case e.Node.Level

    Case 0

        If e.Node.Text = "显示所有行" Then

            Tables("审签表_查询").Filter = ""

        Else

         Tables("审签表_查询").Filter = "[公务参照区分] = \'" & Value(0) & "\'"

        End If

   Case 1     

        Dim y As Integer = value(1)

        d1 = New Date(y,1,1) \'取得该年的第一天

        d2 = new Date(y,12,31) \'取得该年的最后一天

        Filter = "生成日期 >= #" & d1 & "# And 生成日期 <= #" & d2 & "#"


   Case 2

        Dim y As Integer = value(1)

        Dim m As Integer = value(2)

        d1 = New Date(y, m, 1) \'取得该月的第一天

        d2 = new Date(y, m, Date.DaysInMonth(y,m)) \'取得该月的最后一天

        Filter = "生成日期 >= #" & d1 & "# And 生成日期 <= #" & d2 & "#"

    Case 3

        Dim y As Integer = value(1)

        Dim m As Integer = value(2)

        d1 = New Date(y, m, 1) \'取得该月的第一天

        d2 = new Date(y, m, Date.DaysInMonth(y,m)) \'取得该月的最后一天

        Filter = "生成日期 >= #" & d1 & "# And 生成日期 <= #" & d2 & "# And 审签序号 = \'" & Value(3) & "\'"

End Select

Tables("审签表_查询").Filter = Filter


--  作者:Bin
--  发布时间:2013/12/12 9:56:00
--  
请问报什么错?
--  作者:Bin
--  发布时间:2013/12/12 9:57:00
--  
有个例子就最好了,至少也说一下提示什么错误吧.
--  作者:hrw68529
--  发布时间:2013/12/12 9:59:00
--  
如图:


--  作者:hrw68529
--  发布时间:2013/12/12 9:59:00
--  
如图:
图片点击可在新窗口打开查看此主题相关图片如下:截图03.png
图片点击可在新窗口打开查看
图片点击可在新窗口打开查看此主题相关图片如下:截图04.png
图片点击可在新窗口打开查看


--  作者:hrw68529
--  发布时间:2013/12/12 10:02:00
--  
生成的目录树应为:
显示所有行
公务参照区分
    年
       月
          审签序号

--  作者:狐狸爸爸
--  发布时间:2013/12/12 10:02:00
--  

你到执行SQL窗口执行下面的SQL语句:

 

SELECT DISTINCT 公务参照区分 ,Year(生成日期) As 年, Month(生成日期) As 月, 审签序号 From {公务信息表}

 

看看会不会报错。


--  作者:hrw68529
--  发布时间:2013/12/12 10:08:00
--  
报错:
如图:
图片点击可在新窗口打开查看此主题相关图片如下:截图05.png
图片点击可在新窗口打开查看

--  作者:hrw68529
--  发布时间:2013/12/12 10:09:00
--  
如图:
图片点击可在新窗口打开查看此主题相关图片如下:截图06.png
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2013/12/12 10:09:00
--  

原因清楚了:

 

1、如果是外部数据源,记得:

http://www.foxtable.com/help/topics/2344.htm

 

2、如果是内部表,说明的SQL语句中的表名错了