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.  
    2. Título do Gráfico - Receitas e Despesas - Ano 1998
    3. Titulo do Eixo X - Meses
    4. Título do Eixo Y - Reais - R$
    5. Sequências de Dados - Duas sequências : Receitas e Despesas
    6. Mostrar Legendas - Azul para Receitas e Vermelha para despesas
    7. O gráfico deverá ter borda com sombra.
    8. 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