不能直接引用查询表执行加载数据操作的。
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)