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 Bruscain



Olá pessoal! É um prazer estar fornecendo esse artigo a toda comunidade VFP, espero que possa ajudá-los com as colunas que estarei publicando a partir de hoje. Gostaria também de expressar meus agradecimentos a toda equipe do Linha de Código por abrirem espaço para compartilhar com a comunidade VFP alguns de meus conhecimentos.

Nesta 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!

Rodrigo Duarte Bruscain

Rodrigo Duarte Bruscain - Coordenador de Sistemas e Desenvolvimento de Projetos da Clone©, atua com desenvolvimento e customizações de aplicações ERP desenvolvidas em Microsoft Visual FoxPro há 10 anos. Membro ativo da comunidade FoxBrasil no yahoo groups. Foi Consultor Técnico da StarSoft© atendendo diversas empresas de pequeno, médio e grande porte em segmentos diferenciados. Atualmente dedica-se em soluções corporativas de acesso remoto desenvolvidas em VFP9 com MS-SQL Server e XML Web services interligando Brasil, China, Taiwan e Indonésia.