Foxtable(狐表)用户栏目专家坐堂 → 窗口的SQLQuery表能不能加进去加载树?


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

主题:窗口的SQLQuery表能不能加进去加载树?

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
窗口的SQLQuery表能不能加进去加载树?  发帖心情 Post By:2014/1/28 9:05:00 [只看该作者]

请问各位老师:

窗口的SQLQuery表能不能加进去加载树?

下面是帮助的文档,不过是针对内部表的。那外部查询表呢?能否也实现?


2、然后新建一个窗口,窗口中插入一个目录树(TreeView),窗口的AfterLod事件代码设为:

Dim cmd As New SQLCommand
Dim
dt As DataTable
cmd
.CommandText = "SELECT DISTINCT 产品,客户 From {订单}"
dt
= cmd.ExecuteReader()
Dim
trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv
.BuildTree(dt,"产品|客户")
trv
.Nodes.Insert("加载所有数据",0)


3、最后将目录树的NodeMouseDoubleClick事件设为:

Dim Filter As String
If
e.Node.Text = "加载所有数据" Then
Filter = ""
Else
Dim
Value() As String
Value = e.Node.FullPath.Split("\")
Select
Case e.Node.Level
Case
0
Filter ="[产品] = '" & Value(0) & "'"
Case 1
Filter ="[产品] = '" & Value(0) & "' And [客户] = '" & Value(1) & "'"
End Select
End
If
DataTables
("订单").LoadFilter = Filter
DataTables
("订单").Load()

这样我们只需双击某个节点,既可动态加载对应的订单


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/1/28 19:32:00 [只看该作者]

 外部表也一样的哦亲,只需要指定数据源的名称就行了。


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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/1/28 20:45:00 [只看该作者]

谢谢有点甜老师,可以了!!!

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/2/17 21:00:00 [只看该作者]

有点甜老师 

我的这个表是一个用select语句写出来的窗口的SQLQuery表,select语句如下:

SELECT VIP消费信息.购买日期 AS "日期", VIP消费信息.门市专柜编号 AS "门市专柜编号", VIP消费信息.门市专柜简称 AS "门市专柜简称", SUM(VIP消费信息.实收金额) AS "VIP销售额", 门店整体销售额.门店整体销售额 AS "门店整体销售额" ,SUM(VIP消费信息.实收金额)/门店整体销售额.门店整体销售额 AS "VIP销售占比",COUNT(DISTINCT VIP消费信息.VIP卡号) AS "VIP销售笔数",SUM(VIP消费信息.数量) AS "VIP销售件数", SUM(VIP消费信息.实收金额)/COUNT(DISTINCT VIP消费信息.VIP卡号) AS "VIP客单价", SUM(VIP消费信息.实收金额)/SUM(VIP消费信息.数量) AS "VIP物单价", SUM(VIP消费信息.实收金额)/COUNT(DISTINCT VIP消费信息.VIP卡号)/SUM(VIP消费信息.实收金额)/SUM(VIP消费信息.数量) AS "VIP连带率"
FROM (dbo.VIP消费信息 AS VIP消费信息
     INNER JOIN dbo.门店整体销售额 AS 门店整体销售额 ON (VIP消费信息.购买日期 = 门店整体销售额.购买日期 and VIP消费信息.门市专柜编号 = 门店整体销售额.门市专柜编号 ))
GROUP BY VIP消费信息.购买日期, VIP消费信息.门市专柜编号, VIP消费信息.门市专柜简称, 门店整体销售额.门店整体销售额

我想在这个表的旁边加一个  加载树,照着帮助了,窗口的After Load 代码如下:
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT Year(日期) As 年, Month(日期) As 月, 门市专柜编号 From {经营成果分析_经营成果分析}"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月|门市专柜编号")

也设置了目录树的代码:
Dim Value()As String
Dim Filter As String
Value = e.Node.FullPath.Split("\")
Select Case e.Node.Level
    Case 0
        Filter ="Year(日期) = " & Value(0)
    Case 1
        Filter ="Year(日期) = " & Value(0) & " And Month(日期) = " & Value(1)
    Case 2
        Filter ="Year(日期) = " & Value(0) & " And Month(日期) = " & Value(1) & " And 门市专柜编号 = '" & Value(2) & "'"
    End Select
DataTables("经营成果分析_经营成果分析").LoadFilter = Filter
DataTables("经营成果分析_经营成果分析").Load()

应用窗口时显示:
对象名 '经营成果分析_经营成果分析' 无效。
错误代码位置:窗口,经营成果分析,After Load

是什么情况呢?
cmd.CommandText = "SELECT DISTINCT Year(日期) As 年, Month(日期) As 月, 门市专柜编号 From {经营成果分析_经营成果分析}"

表名不是这样写吗?

[此贴子已经被作者于2014-2-17 21:00:39编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/2/17 21:14:00 [只看该作者]

呃……表名应该这样写

e.form.controls("Table1").Table.Datatable.Load()
或者
Tabels("窗口名_Table1").Datatable.Load()

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/2/17 21:22:00 [只看该作者]

哎,我还是上传例子上来给您看下。。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:学习案例.rar



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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/2/17 22:06:00 [只看该作者]

不能直接引用查询表执行加载数据操作的。

afterload代码

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT Year(日期) As 年, Month(日期) As 月, 门市专柜编号 from (Select VIP消费信息.购买日期 As 日期, VIP消费信息.门市专柜编号 As 门市专柜编号, VIP消费信息.门市专柜简称 As 门市专柜简称, SUM(VIP消费信息.实收金额) As VIP销售额, 门店整体销售额.门店整体销售额 As 门店整体销售额 ,SUM(VIP消费信息.实收金额)/门店整体销售额.门店整体销售额 As VIP销售占比,COUNT(DISTINCT VIP消费信息.VIP卡号) As VIP销售笔数,SUM(VIP消费信息.数量) As VIP销售件数, SUM(VIP消费信息.实收金额)/COUNT(DISTINCT VIP消费信息.VIP卡号) As VIP客单价, SUM(VIP消费信息.实收金额)/SUM(VIP消费信息.数量) As VIP物单价, SUM(VIP消费信息.实收金额)/COUNT(DISTINCT VIP消费信息.VIP卡号)/SUM(VIP消费信息.实收金额)/SUM(VIP消费信息.数量) As VIP连带率" _
& " FROM (dbo.VIP消费信息 As VIP消费信息" _
& " INNER JOIN dbo.门店整体销售额 As 门店整体销售额 ON (VIP消费信息.购买日期 = 门店整体销售额.购买日期 And VIP消费信息.门市专柜编号 = 门店整体销售额.门市专柜编号 ))" _
& " GROUP BY VIP消费信息.购买日期, VIP消费信息.门市专柜编号, VIP消费信息.门市专柜简称, 门店整体销售额.门店整体销售额) as temp"
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt, "年|月|门市专柜编号")


双击代码

Dim Value()As String
Dim Filter As String
Value = e.Node.FullPath.Split("\")
Select Case e.Node.Level
    Case 0
        Filter ="Year(日期) = " & Value(0)
    Case 1
        Filter ="Year(日期) = " & Value(0) & " And Month(日期) = " & Value(1)
    Case 2
        Filter ="Year(日期) = " & Value(0) & " And Month(日期) = " & Value(1) & " And 门市专柜编号 = '" & Value(2) & "'"
End Select
Tables("门店成果分析_经营成果分析").Fill("select * from (Select VIP消费信息.购买日期 As 日期, VIP消费信息.门市专柜编号 As 门市专柜编号, VIP消费信息.门市专柜简称 As 门市专柜简称, SUM(VIP消费信息.实收金额) As VIP销售额, 门店整体销售额.门店整体销售额 As 门店整体销售额 ,SUM(VIP消费信息.实收金额)/门店整体销售额.门店整体销售额 As VIP销售占比,COUNT(DISTINCT VIP消费信息.VIP卡号) As VIP销售笔数,SUM(VIP消费信息.数量) As VIP销售件数, SUM(VIP消费信息.实收金额)/COUNT(DISTINCT VIP消费信息.VIP卡号) As VIP客单价, SUM(VIP消费信息.实收金额)/SUM(VIP消费信息.数量) As VIP物单价, SUM(VIP消费信息.实收金额)/COUNT(DISTINCT VIP消费信息.VIP卡号)/SUM(VIP消费信息.实收金额)/SUM(VIP消费信息.数量) As VIP连带率" _
& " FROM (dbo.VIP消费信息 As VIP消费信息" _
& " INNER JOIN dbo.门店整体销售额 As 门店整体销售额 ON (VIP消费信息.购买日期 = 门店整体销售额.购买日期 And VIP消费信息.门市专柜编号 = 门店整体销售额.门市专柜编号 ))" _
& " GROUP BY VIP消费信息.购买日期, VIP消费信息.门市专柜编号, VIP消费信息.门市专柜简称, 门店整体销售额.门店整体销售额) as temp where " & filter, "VIP数据", True)

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


加好友 发短信
等级:九尾狐 帖子:2355 积分:16187 威望:0 精华:0 注册:2013/9/1 8:09:00
  发帖心情 Post By:2014/2/17 22:41:00 [只看该作者]

谢谢有点甜老师,你可以给我那个例子吗?我在你写的那个例子看下。
我复制这些代码还是出错。
说:
afterload代码

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C

不是cmd的成员......

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/2/17 22:49:00 [只看该作者]

 呃,楼主,请灵活变通下,cmd.C你原本怎么写,现在就怎么写connectionName

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2014/2/17 22:53:00 [只看该作者]

甜兄,下次记得加个空格:

 

cmd.connection name = "数据源"

 

这样就不会被这个论坛屏蔽了。

 

 


 回到顶部
总数 12 1 2 下一页