コード例 #1
0
        // 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());
        }
コード例 #2
0
        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"));
        }