public CellSet getCellSet(string mdxQuery) { CellSet cs; AdomdCommand cmd = new AdomdCommand( mdxQuery, _mdConn); cs = cmd.ExecuteCellSet(); return cs; }
private void displayCellSetSimply(CellSet cs) { int i; int j; OlapInfo olapInfo = cs.OlapInfo; OlapInfoAxis columnAxisInfo = olapInfo.AxesInfo.Axes[0]; OlapInfoAxis rowAxisInfo = olapInfo.AxesInfo.Axes[1]; Axis columnAxis = cs.Axes[0]; Axis rowAxis = cs.Axes[1]; int colOffset = rowAxisInfo.Hierarchies.Count; int rowOffset = columnAxisInfo.Hierarchies.Count; int numberOfColumns = rowAxisInfo.Hierarchies.Count + cs.Axes[0].Positions.Count; int numberOfRows = columnAxisInfo.Hierarchies.Count + cs.Axes[1].Positions.Count; // 1 - DGV Setup DgvCube.ColumnCount = numberOfColumns; DgvCube.RowCount = numberOfRows; DgvCube.ColumnHeadersVisible = false; DgvCube.RowHeadersVisible = false;
// 2 - Fill "Column Headers" for (i = 0; i < columnAxis.Positions.Count; i++) { for (j = 0; j < columnAxisInfo.Hierarchies.Count; j++) { DgvCube[i+colOffset, j].Value = columnAxis.Positions[i].Members[j].Caption; DgvCube[i + colOffset, j].Style.BackColor = Color.SteelBlue; DgvCube[i + colOffset, j].Style.ForeColor = Color.White; } }
// 3 - Fill "Row Header" and "Data Area" at the same time for (j = 0; j < rowAxis.Positions.Count; j++) { for (i = 0; i < rowAxisInfo.Hierarchies.Count; i++) { DgvCube[i, j + rowOffset].Value = rowAxis.Positions[j].Members[i].Caption; DgvCube[i, j + rowOffset].Style.BackColor = Color.SteelBlue; DgvCube[i, j + rowOffset].Style.ForeColor = Color.White; } for (i = 0; i < columnAxis.Positions.Count; i++) { DgvCube[i + colOffset, j + rowOffset].Value = cs.Cells[i, j].FormattedValue; } } DgvCube.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; } #endregion
DgvCube[i + colOffset, j + rowOffset].Value = cs.Cells[i, j].FormattedValue;
private void button2_Click(object sender, EventArgs e) { DgvCube.DataSource = null; CellSet cs = _mdFacade.getCellSet(C_MDXQUERY); displayCellSetSimply( cs); }