// GET: Faturamento public ActionResult Index() { ViewBag.Title = "Faturamento"; //ViewBag.Title = "Faturamento"; Model.Deposito filtro = (HttpContext.Application["FILTRO"] != null && !string.IsNullOrEmpty(HttpContext.Application["FILTRO"].ToString())) ? (Model.Deposito)HttpContext.Application["FILTRO"] : new Model.Deposito() { descricaoDeposito = "NENHUM PÁTIO SELECIONADO", clienteDeposito = new Model.Cliente() { nomeCliente = "NENHUM" } }; ViewBag.DepositoFiltrado = filtro; var ent = new Business.FaturamentoBLL(filtro); //var dados = ent.GetDadosGrafico(); return(View()); }
public ActionResult GerarGraficoFaturamentoPorDeposito() { Model.Deposito filtro = (HttpContext.Application["FILTRO"] != null && !string.IsNullOrEmpty(HttpContext.Application["FILTRO"].ToString())) ? (Model.Deposito)HttpContext.Application["FILTRO"] : new Model.Deposito() { descricaoDeposito = "NENHUM PÁTIO SELECIONADO", clienteDeposito = new Model.Cliente() { nomeCliente = "NENHUM" } }; ViewBag.DepositoFiltrado = filtro; #region PARAMETRIZAÇÃO DO GRÁFICO var chart = new System.Web.UI.DataVisualization.Charting.Chart(); chart.Width = 900; //LARGURA chart.Height = 500; //ALTURA chart.BackColor = Color.FromArgb(211, 223, 240); chart.BorderlineDashStyle = ChartDashStyle.Solid; chart.BackSecondaryColor = Color.White; chart.BackGradientStyle = GradientStyle.TopBottom; chart.BorderlineWidth = 1; chart.Palette = ChartColorPalette.BrightPastel; chart.BorderlineColor = Color.FromArgb(26, 59, 105); chart.RenderType = RenderType.BinaryStreaming; chart.BorderSkin.SkinStyle = BorderSkinStyle.Emboss; chart.AntiAliasing = AntiAliasingStyles.All; chart.TextAntiAliasingQuality = TextAntiAliasingQuality.Normal; chart.Titles.Add(CreateTitle(filtro.clienteDeposito.nomeCliente)); chart.Legends.Add(CreateLegend()); #endregion //CONSULTA DOS DADOS var ent = new Business.FaturamentoBLL(filtro); var dados = ent.GetDadosGrafico(); var graf = ent.GraficoFaturamento(); #region SELECIONAR DISTINTAMENTE EIXO-X E RÓTULOS DOS MESMOS var Eixos = graf.Select(x => x.CoordenadasGrafico).Distinct().Select(c => c.FirstOrDefault().ROTULO_X).Distinct(); Dictionary <string, int> ColecaoEixos = new Dictionary <string, int>(); int count = 1; foreach (var item in Eixos) { ColecaoEixos.Add(item.ToString(), count); count++; } #endregion foreach (var item in graf) { var Deposito = item.Deposito; Coordenadas C = item.CoordenadasGrafico.FirstOrDefault(); C.X = ColecaoEixos.Where(e => e.Key == C.ROTULO_X).FirstOrDefault().Value; try { //TENTO CRIAR A SÉRIE E ADICIONAR COORDENADA, CASO JA EXISTA ADICIONAR COORDENADA (CATCH) chart.Series.Add(CreateSeries(SeriesChartType.RangeColumn, C.ROTULO_X, C.X, C.Y, Deposito.descricaoDeposito)); } catch { chart.Series[Deposito.descricaoDeposito].Points.Add(new DataPoint() { AxisLabel = C.ROTULO_X, YValues = new double[] { C.Y }, XValue = C.X, Label = C.Y.ToString("C"), //LabelAngle = -90 }); } } chart.ChartAreas.Add(CreateChartArea()); //EXEMPLO USANDO UM DATASOURCE //var statusNumbers = new Dictionary<string, string> //{ // new StatusNumber{Number="55555", Status="USA"}, // new StatusNumber{Number="11385", Status="China"}, // new StatusNumber{Number="4116", Status="Japan"}, // new StatusNumber{Number="3371", Status="Germany"}, // new StatusNumber{Number="2865", Status="UK"}, // new StatusNumber{Number="2423", Status="France"}, // new StatusNumber{Number="2183", Status="India"}, //}; //chart.DataSource = pontos; MemoryStream ms = new MemoryStream(); chart.SaveImage(ms); return(File(ms.GetBuffer(), @"image/png")); }