Desenvolvimento - Visual Fox Pro
Criando, formatando e imprimindo gráficos no Visual FoxPro com o Microsoft Graph
Neste artigo o autor mostra detalhadamente como usar o Microsoft Graph no VFP.
por Rodrigo Duarte BruscainNesta coluna irei mostrar detalhadamente como usar o Microsoft Graph no VFP. O MS Graph não é uma DLL nem uma OCX, o MS Graph é um programa ( Graph.exe ) que é acionado via COM. Apesar de ser um programa o MS Graph só pode ser usado a partir de outro programa, um exemplo bem comum é a criação de gráficos pelo Microsoft Excel, Power Point, Word, Acess e outros.
No VFP usamos o objeto OLE Bound Control para acoplar ao VFP o serviço OLE (Object Linking and Embedding) do Windows. Podemos encontrar esse objeto na Toolbar Form Controls, Toolbox ou na Toolbar do Report Designer do VFP.
Para demonstrar o uso do MS Graph, criei um Form com quatro Pages, cada Page tem uma funcionalidade a qual estarei explicando abaixo.
Figura 1 - Tabela onde são definidos os dados e legendas para o gráfico.
Na Figura 1 temos um Grid com os dados que serão usados para criação do gráfico. Na coluna "A" temos três seqüências que são as Receitas, Despesas e Outros. A seqüência é um conjunto de barras, linhas ou fatias conforme o Tipo e Subtipo de gráfico selecionado (ver Figura 3 e 4). Para o tipo de gráfico Pizza e Rosca só é aceito uma seqüência, as demais são ignoradas. Com isso em um gráfico de Pizza ou Rosca, seria processada somente a seqüência Receitas.
Note que os dados das colunas contem textos (Jan, Fev, Mar, Abr, Mai, Jun), ou seja, o MS Graph só aceita valores no formato caractere.
O código abaixo cria o cursor usado pela Tabela da Figura 1.
Figura 2 - Propriedades do gráfico.
Figura 3 - Tipos de gráfico.
No código abaixo temos as primeiras linhas processadas pelo evento Click do Combo Tipo (Figura 3).
Figura 4 - Subtipo de gráfico.
No código abaixo temos as primeiras linhas processadas pelo evento Click do Combo Subtipo (Figura 4). Ao selecionar um Subtipo de gráfico a propriedade "grafico" é valorizada com o código do gráfico reconhecido pelo objeto do MS Graph acoplado ao objeto OleBoundControl.
Figura 5 - Criação do gráfico
Após escolher um Tipo e um Subtipo de gráficos (ver Figura 3 e 4) clicamos no botão Atualiza (Figura 5). O botão irá processar o gráfico conforme Tipo e Subtipo de gráfico selecionado e as Propriedades definidas. Podemos também invocar a IDE do MS Graph dando um duplo click sobre o gráfico. No código abaixo temos as primeiras linhas processadas pelo evento Click do botão Atualiza.
Figura 6 - Gerador de relatório.
Na Figura 7 estamos no gerador de relatórios onde foi incluído um campo OleBoundControl. O tamanho do campo pode ser ajustado ao tamanho desejado, pois o tamanho do gráfico é ajustado automaticamente, podemos também ajustar seu tamanho pelas propriedades conforme Figura 7.
Figura 7 - Propriedades do objeto OleBoundControl do relatório
Na figura 7 Após inclusão do campo (ver Figura 6) agora vamos definir o seu vinculo com o gráfico armazenado no cursor. Para isso selecionamos a opção Field no box Picture from e digitamos o nome do cursor onde o gráfico está gravado e seu respectivo campo Grafico.MsGraphObj clicamos em OK e pronto.
Figura 8 - Visualização do Relatório
E por fim no Page "Impressão" podemos visualizar o relatório (ver Figura 8) ou imprimir.
Conclusão
Nesta coluna, minha intenção foi demonstrar como montar um gerador de gráficos pelo VFP. Nada muito sofisticado, mas objetivo e com um resultado eficaz.
Clique aqui para fazer o download do código fonte.
Visão geral do produto:
http://www.microsoft.com/brasil/msdn/produtos/visualfox/Visaogeral.mspx
Informações da Microsoft atualizadas mensalmente sobre o produto:
http://msdn.microsoft.com/vfoxpro/
Até a próxima coluna.
Grande abraço!
- WEB Services com Visual FoxPro 9.0Visual Fox Pro
- Importando arquivos “Textos” com FOX e VB ou DelphiVisual Fox Pro