Gráficos no Protheus Usando a função MATGRAPH pode-se criar gráficos que serão montados a partir dos dados de um array ou de um arquivo de trabalho passado como parâmetro. Pode-se também escolher o tipo de gráfico com 2 ou 3 dimensões e visualizar em formato de linha, barra ou área. Para usar, use o include PROTHEUS.CH ou TOTVS.CH e inclua a função abaixo em seu programa, modificando-a da maneira que achar
#include "Totvs.ch" User Function fGrafico() local lGraph3D := .t. // .F. Grafico 2 dimensoes - .T. Grafico 3 dimensoes local lMenuGraph := .t. // .F. Nao exibe menu - .T. Exibe menu para mudar o tipo de grafico local lMudaCor := .t. local nTipoGraph := 2 local nCorDefault := 1 local aDados := {} local aStru := {} local cArquivo := CriaTrab(,.f.) local i If MsgYesNo("Deseja exibir o grafico com os dados do array?") // O grafico sera montado a partir dos dados do array aDados aDados := {{"Valor 1", 400}, {"Valor 2", 500},{"Valor 3", 800}} MatGraph("Graficos",lGraph3D,lMenuGraph,lMudaCor,nTipoGraph,nCorDefault,aDados) Else lGraph3D := .F. nTipoGraph := 5 nCorDefault := 12 aDados := {{"Janeiro", 400}, {"Fevereiro", 500},{"Março", 800}, {"Abril", 500},; {"Maio", 800},{"Junho", 440},{"Julho", 330}, {"Agosto", 100},; {"Setembro", 0},{"Outubro", 800},{"Novembro", 800},{"Dezembro", 1800}} aStru := { {"EixoX", "C", 20, 0}, {"EixoY", "N", 8, 2} } dbCreate(cArquivo,aStru) dbUseArea(.T.,,cArquivo,"GRAFICO",.F.,.F.) For i:=1 to Len(aDados) ("GRAFICO")->( dbAppend() ) ("GRAFICO")->(EixoX) := aDados[i][1] ("GRAFICO")->(EixoY) := aDados[i][2] Next i // O grafico sera montado a partir dos dados da area de trabalho "GRAFICO" MatGraph("Graficos", lGraph3D, lMenuGraph, lMudaCor, nTipoGraph, nCorDefault,,"GRAFICO", {"EixoX","EixoY"}) ("GRAFICO")->( dbCloseArea() ) EndIf Return