Criando Gráficos no VB 5.0 com o MSChart.


Conteúdo

Introdução.

Para construir gráficos em sua aplicação você pode usar o Crystal Reports, o Excel
via automação OLE ou o controle gráfico do VB , o MSChart.

O MSChart permite apresentar seus dados em forma de gráfico como uma planilha do 
Excel(linhas e colunas); gráficos tridimensionais, gráficos de torta, barra, pizza, etc.

Antes de iniciar você deve adicionar o controle Microsoft Chart Control ao seu 
projeto da seguinte maneira:
A figura 1.0 abaixo mostra a barra de ferramentas e a configuração inicial 
do MSChart:

fig 1.0 - Barra de Ferramentas

fig 2.0 - MSChart no Formulário - Configuração Inicial

Agora basta definir a fonte de dados que alimentará o gráfico , geralmente uma
tabela , e fazer a configuração do Controle MSChart. 

Para abrir um diálogo de propriedades do controle, clique com o botão direito 
do mouse sobre o mesmo, selecione a opção Properties e a janela para configuração
surge como mostrada na figura 2.0 abaixo:


fig.3.0 - Pág. de Propriedades do MSChart
Cada aba permite configurar diversas propriedades utilizadas na confecção de um gráfico.
O MSChart não é lá aquela maravilha , mas consegue resolver , eu diria uns 70% dos
problemas relacionados a confecção de gráficos no Visual Basic.

Conteúdo

Utilização e configuração.

Vejamos agora as propriedades do MSChart e de como configurá-lo.

Fig 4.0

A configuração inicial do controle gráfico apresenta uma série de quatro barras em cinco colunas com legendas R1 a R5. Esta sequência de dados é definida pela propriedade RowCount. A quantidade de colunas é definida pela propriedade ColumnCount. Na figura acima alteramos RowCount para 2 e ColumnCount também para 2 e ainda definimos a propriedade RowLabel para cada coluna e a propriedade ShowLegend para True.

A propriedade ChartType permite obter os seguintes tipos de gráficos :

Aba Chart

Aba Axis e Axis Grid

Aba Series e Series Color

Aba BackDrop

Aba Text

Aba Fonts

Além destas propriedades temos as seguintes:

Exemplos de Utilização do MsChart

Vejamos dois exemplos de utilizando o MSChart:

  1. Vamos construir um gráfico cujo objetivo é mostrar a evolução das receitas e despesas mensais. Nosso gráfico deverá ter as seguinte configuração:
    1. Título do Gráfico - Receitas e Despesas - Ano 1998
    2. Titulo do Eixo X - Meses
    3. Título do Eixo Y - Reais - R$
    4. Sequências de Dados - Duas sequências : Receitas e Despesas
    5. Mostrar Legendas - Azul para Receitas e Vermelha para despesas
    6. O gráfico deverá ter borda com sombra.
    7. Número de linhas de sequências de dados - Três , representando os meses : Agosto, Setembro e Outubro.
    O jeitão do gráfico depois de pronto deverá ser o da figura 5.0

    figura 5.0

     

Agora vamos por a mão na massa e montar o gráfico . Iremos fazer isto em tempo de projeto.

Bem , acho que com isso terminamos o gráfico, agora basta executar o projeto.

Projeto - Alunos

A esta altura voce deve estar pensando - "... pô se toda vez que eu tiver que fazer um gráfico tiver que usar este processo trabalhoso eu desisto. ! ", e você esta certo não tem cabimento , mas existe uma maneira bem mais fácil de fazer isto. Que tal alimentar os dados do seu gráfico diretamente de seus arquivos de dados ?

Vamos mostrar a seguir um projeto simples que indica como fazer isto. Iremos criar um gráfico com os dados existentes em nossa tabela tblalunos para obter um gráfico que indique o número de alunos matriculados por série.

Para facilitar criamos uma consulta que calcula a quantidade de alunos por série e a armazenamos no banco de dados com o nome de SEL_ SERIE , a instrução SQL da consulta é a seguinte:

SELECT DISTINCTROW TBLALUNOS.SERIE, Count(TBLALUNOS.CODALUNO) AS ALUNOS
FROM TBLALUNOS
GROUP BY TBLALUNOS.SERIE;
O código do projeto é dado abaixo:
Private Sub Form_Load()
Set db = DBEngine.Workspaces(0).OpenDatabase("d:\escola\escola.mdb")
End Sub
Option Explicit
Dim db As Database
Dim rs As Recordset
Dim qry As QueryDef
Dim reg As Integer
Dim i As Integer
Private Sub grafico_Click()
'O objeto Mschart foi chamado de graf1


Set qry = db.QueryDefs("sel_series")
Set rs = qry.OpenRecordset

rs.MoveLast
rs.MoveFirst

reg = rs.RecordCount

graf1.chartType = 1 'barra em duas dimensões
graf1.ShowLegend = False 'não mostra legenda
graf1.Title = "Relação de Alunos por Turma" 'titulo do gráfico

graf1.ColumnCount = 1 'uma série
graf1.RowCount = reg 'número sequencia de dados
graf1.Visible = True

While Not rs.EOF()

For i = 1 To reg

graf1.Row = i
graf1.RowLabel = rs("SERIE") & " Série "
graf1.Data = rs("alunos")

rs.MoveNext

Next

Wend

End Sub

O gráfico obtido esta exposto abaixo:

 

Bem , deu para perceber que se quisermos algo mais requintado teremos que usar produtos de terceiros pois o Mschart deixa a desejar mas eu diria que para coisas simples dá pra quebrar o galho.

Ah! ia esquecendo , como imprimir o gráfico ??? Insira o controle Picture no seu formulário e deixa-o invisível, e seguir insira um botão de comando com o nome de imprimir e acrescente o seguinte código a ele:

Private Sub Command2_Click()

graf1.EditCopy

Picture1.Picture = Clipboard.GetData()
Printer.PaintPicture Picture1.Picture, 0, 0
Printer.EndDoc
Picture1.Picture = LoadPicture()

End Sub

Arrivederci !!!

Conteúdo

Retorna