以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  学习统计加载树 出错误。。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=45219)

--  作者:幼狐
--  发布时间:2014/1/18 15:30:00
--  学习统计加载树 出错误。。


图片点击可在新窗口打开查看此主题相关图片如下:2.jpg
图片点击可在新窗口打开查看
我的表结构,学习的时候加载树是按产品统计的,我想把统计加载树改成按客户名称统计。上面是我设计的表样式

表名:订单。。代码如下:

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = "SELECT Year(日期) As 年, Month(日期) As 月, 客户名称, Count([_Identify]) As 订单数 From {订单} Group By Year(日期), Month(日期), 客户名称"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月|客户名称")
trv.StopRedraw
For Each nd As WinForm.TreeNode In trv.AllNodes
    Dim Value()As String
    Dim Filter As String
    Dim d1 As Date
    Dim d2 As Date
    Value = nd.FullName.Split("\\") \'注意这里用FullName属性,不能用FullPath属性
    Select Case nd.Level
        Case 0
            nd.text = nd.text & "年"
            Filter = "年 = " & value(0)
        Case 1
            nd.text = nd.text & "月"
            Filter = "年 = " & value(0) & " And 月 = " & value(1)
        Case 2
            Filter = "年 = " & value(0) & " And 月 = " & value(1) & " And 客户名称 = \'" & Value(2) & "\'"
    End Select
    nd.Text = nd.text & "(" & dt.Compute("Sum(订单数)",Filter) & "条)"
Next
trv.Nodes.Insert("加载所有行","加载所有行(" & dt.Compute("Sum(订单数)") & "条)",0)
trv.ResumeRedraw

 

最后运行的时候错误如下提示:


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

 

老师帮我看看哪里设置的不对啊!


--  作者:Bin
--  发布时间:2014/1/18 15:32:00
--  
建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行出错,然后分析原因,搞不定,贴出代码,并告诉我们运行到哪一行出错,以及错误提示。

--  作者:狐狸爸爸
--  发布时间:2014/1/18 15:33:00
--  

外部表,还是内部表?

外部表记得设置数据源名称:

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

 

还有道sql执行窗口执行一下你的sql语句:

SELECT Year(日期) As 年, Month(日期) As 月, 客户名称, Count([_Identify]) As 订单数 From {订单} Group By Year(日期), Month(日期), 客户名称

看看能否得到结果,记得sql语句中的表名和列名都以后台数据为准。

 

最还如果还不行,就上传文件测试。

[此贴子已经被作者于2014-1-18 15:33:50编辑过]

--  作者:Bin
--  发布时间:2014/1/18 15:33:00
--  
trv.BuildTree(dt, "年|月|客户名称")

看错误提示,有可能是你DT是空的

--  作者:幼狐
--  发布时间:2014/1/18 15:40:00
--  

用的是外部数据源,已经设置好外部数据源的名称了,之后在执行SQL的时候测试了一下,

显示的错误提示是:

.NET Framework 版本:2.0.50727.5472
Foxtable 版本:2013.10.14.1
错误所在事件:
详细错误信息:
至少一个参数没有被指定值。


--  作者:Bin
--  发布时间:2014/1/18 15:43:00
--  
你还是上个例子看看吧.
--  作者:狐狸爸爸
--  发布时间:2014/1/18 15:47:00
--  

显然sql语句中的表名和列名错了了,记得我前面强调的:

 

sql语句中的表名和列名都以后台的实际名称为准。

 

 

 

 


--  作者:幼狐
--  发布时间:2014/1/18 16:02:00
--  


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

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

图片点击可在新窗口打开查看此主题相关图片如下:3.jpg
图片点击可在新窗口打开查看
外部数据源名称:编号  表名:订单

测试后,还是不对,狐狸爸爸帮忙看看,是我哪里设置错了!


--  作者:狐狸爸爸
--  发布时间:2014/1/18 16:03:00
--  

我7楼说得很清楚了


--  作者:Bin
--  发布时间:2014/1/18 16:03:00
--  
如果你是外部数据表,不要和狐表里面的表对比.

你应该到数据库里对比一下你的列名.