Private Sub BuildChart(ByVal FieldValue As String) Dim theCommand As SqlCommand = New SqlCommand theCommand.Connection = Me.sqlConnection1 theCommand.CommandType = CommandType.Text Dim s As String = String.Empty Select Case _currDrill Case 1 'theChartInfo はこのレベルでは null でなければなりません 'コマンドをビルドします s += " select TOP 10 a.customerID as 'Customer', count(b.OrderID) as 'Order Count' " s += " FROM " s += " Customers a, Orders b " s += " WHERE a.CustomerID = b.CustomerID " s += " GROUP BY a.CustomerID " s += " ORDER BY 2 DESC " theCommand.CommandText = s 'このドリル レベルのために Chart プロパティを設定します Me.ultraChart1.ChartType = ChartType.BarChart3D Me.ultraChart1.Legend.Visible = True 'DataSource を設定します Me.ultraChart1.Data.DataSource = Me.GetChartData(theCommand) 'このレベルのためにリンク ラベルを設定します Me.lnk1.Text = "Root" Me.lnk1.Enabled = False Me.lnk1.Visible = True Me.lnk2.Enabled = False Me.lnk2.Visible = False Me.lnk3.Enabled = False Me.lnk3.Visible = False 'このレベルのために UI ラベルを設定します Me.lbl1.Enabled = True Me.lbl2.Enabled = False Me.lbl3.Enabled = False 'レベル 2:実際の Orders PER 顧客を取得できます Case 2 'コマンドをビルドします s += " select TOP 10 CONVERT(VARCHAR(10), a.OrderID) as 'Order ID', count(b.OrderID) as 'Line Items' " s += " FROM Orders a, [Order Details] b " s += " WHERE a.OrderID = b.OrderID AND " s += " a.CustomerID = @CustomerID " s += " group by a.OrderID order by 2 DESC " theCommand.CommandText = s theCommand.Parameters.Add("@CustomerID", FieldValue) 'このドリル レベルのために Chart プロパティを設定します Me.ultraChart1.ChartType = ChartType.PieChart3D Me.ultraChart1.Legend.Visible = True 'DataSource を設定します Me.ultraChart1.Data.DataSource = Me.GetChartData(theCommand) 'このレベルのためにリンク ラベルを設定します Me.lnk1.Enabled = True Me.lnk1.Visible = True Me.lnk2.Text = FieldValue Me.lnk2.Enabled = False Me.lnk2.Visible = True Me.lnk3.Enabled = False Me.lnk3.Visible = False 'このレベルのために UI ラベルを設定します Me.lbl1.Enabled = False Me.lbl2.Enabled = True Me.lbl3.Enabled = False 'コマンドをビルドします Case 3 s += " select a.ProductName as 'Product', b.Quantity as 'Quantity' " s += " FROM Products a, [Order Details] b WHERE a.ProductID = b.ProductID " s += " AND b.OrderID = @OrderID ORDER BY b.Quantity ASC" theCommand.CommandText = s theCommand.Parameters.Add("@OrderID", FieldValue) 'このドリル レベルのために Chart プロパティを設定します Me.ultraChart1.ChartType = ChartType.CylinderColumnChart3D Me.ultraChart1.Legend.Visible = True 'DataSource を設定します Me.ultraChart1.Data.DataSource = Me.GetChartData(theCommand) 'このレベルのためにリンク ラベルを設定します Me.lnk1.Enabled = True Me.lnk1.Visible = True Me.lnk2.Enabled = True Me.lnk2.Visible = True Me.lnk3.Text = FieldValue Me.lnk3.Enabled = False Me.lnk3.Visible = True 'このレベルのために UI ラベルを設定します Me.lbl1.Enabled = False Me.lbl2.Enabled = False Me.lbl3.Enabled = True Case Else Throw New ApplicationException("Unhandled Drill Level") End Select End Sub