Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Imports Microsoft.AnalysisServices.AdomdClient
- Public Class Form1
- Dim matrix(0, 0) As String
- Dim noLines, noCols As Integer
- Dim conn As New AdomdConnection("Provider=SQLNCLI11.1;Data Source=MV-W81-32BITS;" & _
- "Integrated Security=SSPI;Initial Catalog=L1")
- Dim cmd As AdomdCommand
- Private Sub connect()
- conn.Open()
- cmd = New AdomdCommand("SELECT NON EMPTY [Order Date].[All].Children ON rows," & _
- " NON EMPTY [Dim Product].[All].children ON columns FROM [Adventure Works DW2012-cube]" & _
- " WHERE [Measures].[Sales Amount]")
- cmd.Connection = conn
- Dim cs As CellSet
- cs = cmd.ExecuteCellSet
- noCols = cs.Axes(0).Positions.Count
- noLines = cs.Axes(1).Positions.Count
- ReDim matrix(noCols, noLines)
- matrix(0, 0) = ""
- Dim axis As Axis
- For i = 0 To noCols - 1
- matrix(0, i + 1) = cs.Axes(0).Positions(i).Members(0).Caption
- axis = cs.Axes(1)
- For j = 0 To noLines - 1
- matrix(j + 1, 0) = axis.Positions(j).Members(0).Caption
- matrix(j + 1, i + 1) = Math.Round(cs(i, j).Value, 2, MidpointRounding.AwayFromZero)
- Next
- Next
- conn.Close()
- End Sub
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- DataGridView1.DataSource = Nothing
- DataGridView1.DataSource = CreateDataView(matrix, noLines, noCols)
- End Sub
- Function CreateDataView(matrix As Array, noLines As Integer, noCols As Integer) As ICollection
- Dim dt As New DataTable()
- Dim dr As DataRow
- If matrix.Length > 1 Then
- dt.Columns.Add(New DataColumn("Year", GetType(String)))
- Dim k, l As Integer
- For k = 0 To noCols - 1
- dt.Columns.Add(New DataColumn(matrix(0, k + 1), GetType(String)))
- Next
- For l = 1 To noLines
- dr = dt.NewRow()
- For k = 0 To noCols
- dr(k) = matrix(l, k)
- Next
- dt.Rows.Add(dr)
- Next
- End If
- Dim dv As New DataView(dt)
- Return dv
- End Function
- Private Sub Form1_Load_1(sender As Object, e As EventArgs) Handles MyBase.Load
- connect()
- End Sub
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- Chart1.Series.Clear()
- For k = 1 To noCols
- Chart1.Series.Add(matrix(0, k))
- Next
- For l = 1 To noLines
- For k = 1 To noCols
- Chart1.Series(matrix(0, k)).Points.AddXY(matrix(l, 0), matrix(l, k))
- Next
- Next
- End Sub
- End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement