private Dictionary <string, object> CodigoDeAdomd1Dimension(string query) { Dictionary <string, object> resultado = new Dictionary <string, object>(); AdomdConnection con = new AdomdConnection("Data Source=DESKTOP-MF82JHU;catalog=FullOlapCube"); con.Open(); AdomdCommand cmd = new AdomdCommand(query, con); CellSet cs = cmd.ExecuteCellSet(); TupleCollection tuplesOnColumns = cs.Axes[0].Set.Tuples; Microsoft.AnalysisServices.AdomdClient.Tuple tp = cs.Axes[1].Set.Tuples[1]; string tituloX = tp.Members[0].ParentLevel.Caption; string tituloY = ""; foreach (Microsoft.AnalysisServices.AdomdClient.Tuple column in tuplesOnColumns) { tituloY = column.Members[0].Caption; } TupleCollection tuplesOnRows = cs.Axes[1].Set.Tuples; List <string> listaNombres = new List <string>(); List <double> listaValores = new List <double>(); for (int row = 0; row < tuplesOnRows.Count; row++) { for (int members = 0; members < tuplesOnRows[row].Members.Count; members++) { listaNombres.Add(tuplesOnRows[row].Members[members].Caption); listaValores.Add(Convert.ToDouble(cs.Cells[0, row].FormattedValue)); } } con.Close(); resultado.Add("listaNombres", listaNombres); resultado.Add("listaValores", listaValores); resultado.Add("tituloX", tituloX); resultado.Add("tituloY", tituloY); return(resultado); }
private Dictionary <string, object> CodigoDeAdomd2DimensionSA(string query) { Dictionary <string, object> resultado = new Dictionary <string, object>(); AdomdConnection con = new AdomdConnection("Data Source=DESKTOP-MF82JHU;catalog=FullOlapCube"); con.Open(); AdomdCommand cmd = new AdomdCommand(query, con); CellSet cs = cmd.ExecuteCellSet(); TupleCollection tuplesOnColumns = cs.Axes[0].Set.Tuples; Microsoft.AnalysisServices.AdomdClient.Tuple tp = cs.Axes[1].Set.Tuples[1]; string tituloX = tp.Members[0].ParentLevel.Caption; string tituloY = ""; foreach (Microsoft.AnalysisServices.AdomdClient.Tuple column in tuplesOnColumns) { tituloY = column.Members[0].Caption; } TupleCollection tuplesOnRows = cs.Axes[1].Set.Tuples; //List<string> listaNombres = new List<string>(); //List<double> listaValores = new List<double>(); int row = 0; int rowAux = 0; List <LineSeries> seriesList = new List <LineSeries>(); List <string> seriesLabel = new List <string>(); //Convert cvv = new Convert(); while (row < tuplesOnRows.Count) { string firstCategory = tuplesOnRows[rowAux].Members[0].Caption; StackedAreaSeries ls = new StackedAreaSeries(); ls.Title = firstCategory; ChartValues <DateTimePoint> cv = new ChartValues <DateTimePoint>(); while (tuplesOnRows[row].Members[0].Caption == firstCategory) { //for (int members = 0; members < tuplesOnRows[row].Members.Count; members++) //{ DateTimePoint dtp = new DateTimePoint(); dtp.DateTime = new DateTime(Convert.ToInt32(tuplesOnRows[row].Members[1].Caption), 1, 1); seriesLabel.Add(tuplesOnRows[row].Members[1].Caption); //} for (int col = 0; col < tuplesOnColumns.Count; col++) { dtp.Value = Convert.ToDouble(cs.Cells[col, row].FormattedValue); cv.Add(dtp); //listaValores.Add(Convert.ToDouble(cs.Cells[col, row].FormattedValue)); } row++; if (row == tuplesOnRows.Count) { break; } } ls.Values = cv; rowAux = row; seriesList.Add(ls); } con.Close(); resultado.Add("listaNombres", seriesLabel); resultado.Add("listaValores", seriesList); resultado.Add("tituloX", tituloX); resultado.Add("tituloY", tituloY); return(resultado); }