Categorias

Criando gráficos em ASP.NET usando C#

Apresento a vocês o script pronto e funcional para se criar, em C# ASP.NET, gráficos.

É um exemplo simples que pode ser facilmente adaptado para N funcionalidades, como por exemplo aquelas chaves de verificações para evitar-se o uso de rôbos ao ler uma página.

Este exemplo foi criado no Framework 3.5 porém, funciona perfeitamente no 2.0 apesar de não ter testado em outros, acredito que funcione também. Nossa aplicação tera apenas um único arquivo DEFAULT.ASPX, e não iremos definir nenhum objeto na área designer, tudo será criado em tempo de execução.

MÃOS A OBRA! Abra seu Visual Studion (VS) e inicie um novo Web Site escolha a linguagem C#. Na guia Solution Explorer selecione o arquivo DEFAULT.ASPX e click no botao View Code, será aberto o arquivo DEFAULT.ASPX.CS entre com o código a seguir.

Espero que esta possa lhe ser de grande utilidade.

Veja este código em funcionamento

// -- Default.ASPX.CS (Inicio)
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    using System.Drawing;
    using System.Drawing.Imaging;
    using System.Drawing.Text;
    //using System.Drawing.Design;


    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Estou Criando um Objeto do tipo BITMAP - Uma Imagem
            Bitmap objBMP;
            
            // Criando Objeto do Tipo Imagem
            Graphics objGrafico;

            // Determinando qual sera a altura/largura da imagem BMP; estou criando uma area que ocupa a tela inteira
                objBMP      = new Bitmap(800, 640);
            
            // Adicionando a Imagem BMP ao objeto grafico, que sera usado para mostrar a imagem
                objGrafico  = Graphics.FromImage(objBMP);
            
            // Determinando a cor de fundo da imagem
                //Color representa ARGB (Alpha, Red, Green, Blue) o melhor e deixar como White
                objGrafico.Clear(Color.Violet );

            // Criando objeto usado para desenhar linhas e curvas
                Pen p = new Pen(Color.Yellow, 0);
            
            // Armazena um conjunto de quadro inteiros que representam a localizacao e o tamanho de um retangulo. 
            // Para a funcões Region mais avancadas, utilize um objeto Region ao inves de Retangle.
            // O tamanho do grafico esta utilizando quase todo o espaco da area 800 x 640

                int nLeft  = 100;   int nTop    = 50;
                int nWidth = 600;   int nHeight = 500;
                Rectangle rect = new Rectangle(nLeft, nTop, nWidth, nHeight);
                objGrafico.DrawEllipse(p, rect);

            // Quantidade de faixa do grafico o numero de faixas poderia por exemplo ser um vetor
                Brush b1 = new SolidBrush(Color.Silver);
                Brush b2 = new SolidBrush(Color.Tomato);
                Brush b3 = new SolidBrush(Color.Blue);
                Brush b4 = new SolidBrush(Color.Yellow);

            // Aqui estou anexando o numero de faixas ao objeto grafico, observe que inicio a peira faixa em 0,
            // na sequencia vem o largura da faixa preste atencao pois o TOTAL da largura da feixa deve obrigatória
            // mente resultar em 360, pois tota  circunferencia tem 300 graus. 
            // TESTE: Troque o 120 por 80 e execute.

                objGrafico.FillPie(b1, rect, 0f   , 80f);   // Silver
                objGrafico.FillPie(b2, rect, 80f  , 80f);   // Tomato
                objGrafico.FillPie(b3, rect, 160f , 80f);   // Blue
                objGrafico.FillPie(b4, rect, 240f , 120f);  // Yellow

            // Criando um objeto do tipo FONTE
                FontFamily objFonte      = new FontFamily(GenericFontFamilies.Monospace);
                 FontStyle objFonteStyle = FontStyle.Bold | FontStyle.Italic ;

            // Determinando o TAMANHO e ESTILO da fonte
                Font font = new Font(objFonte, 16, objFonteStyle);

            // Determinando a COR da fonte
                SolidBrush brush = new SolidBrush(Color.Black);

            // Utilizo o metodo DrawString, para anexar escrever no grafico
                objGrafico.DrawString("Criando Graficos em ASP.NET ", font, brush, nLeft+250, nTop-30);
                objGrafico.DrawString("HereClick Software Office ME", font, brush, nLeft-50, nTop+530);

            //Esta e a parte que salva o Bitmap na OutputStream.
            // A OutputStream e justamente um objeto que guarda tudo o que vai ser enviado ao usuario. 
            // No caso de requisicões feitas para este arquivo .aspx, o que sera retornado ao usuario sera uma 
            // imagem em formato jpeg em vez de um documento HTML. E esta linha que mostra o grafico na tela

                objBMP.Save(Response.OutputStream,   ImageFormat.Gif);

            // Armazeno a imagem em disco, para utiliza-la.
                objBMP.Save(Server.MapPath("x.jpg"), ImageFormat.Jpeg);
            
            // Limpo os objetos criado da memoria;
                objFonte.Dispose();
                objBMP.Dispose();
                objGrafico.Dispose();   
        }
    }
// -- Default.ASPX.CS (Fim)

Arquivos para Download:

Graficos.zip