Histórico da Página
Classe pai, responsável por armazenar os dados e métodos comuns das classes que desenham gráficos como: FWChartPie, FWChartBar,FWChartBarComp,FWChartLine e
FWChartLineFWChartFunnel.
Hierarquia
Construtores
Método construtor da classe.
FWChartFactory(): New ( [ ] ) →
Observação
A instância de gráfico gerada pela FWChartFactory teve seu método SaveToPng depreciado.
Seta orientação da legenda.
FwChartFactory(): setLegend ( < nAlign> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
nAlign | Numérico | Define onde será criado a legenda na tela. Ex: CONTROL_ALIGN_NONE, CONTROL_ALIGN_LEFT, CONTROL_ALIGN_TOP, CONTROL_ALIGN_RIGHT, CONTROL_ALIGN_BOTTOM | X |
SetOwner
Define o painel onde sera criado o gráfico
FwChartFactory(): SetOwner ( < oPanel> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
oPanel | Objeto | painel onde sera criado o gráfico | X |
SetXaxis
Define a descrição das series nos gráficos multi series
FwChartFactory(): SetXaxis ( < aXAxis> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
aXAxis | Array | Descrição das séries dos gráficos | X |
AddSerie
Adiciona uma série no Gráfico
FwChartFactory(): AddSerie ( < cTitle>,< uValue> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
cTitle | Caracter | X | ||
uValue | X |
Obs:
Variável uValue
Se a série for unica o tipo de variável deve ser NUMÉRICO Ex.: (cTitle, 10)
Se for multi série o tipo de variável deve ser Array de numéricos Ex.: (cTitle, {10,20,30}
)
Opções de alinhamento dos labels
FwChartFactory(): SetAlignSerieLabel ( < nAlign> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
nAlign | Numérico | posição de alinhamento do Label | X |
disponível somente no gráfico de funil
SetChartDefault
Define o tipo do gráfico
FwChartFactory(): SetChartDefault ( < nChartDefault> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
---|---|---|---|---|
nChartDefault | Numérico | tipo de grafico a ser apresentado | X |
Opções disponíveis :
RADARCHART
FUNNELCHART
COLUMNCHART
NEWPIECHART
NEWLINECHART
Seta máscara para exibir o valor no tooltip.
FwChartFactory(): setMask ( [ cMask] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
cMask | Caracter | Máscara do tooltip. Ex: "R$ *@*", será exibido por exemplo R$ 10,00 |
X |
Seta picture dos valores do gráfico.
FwChartFactory(): setPicture ( < cPicture> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
cPicture | Caracter | Picture que será utilizada nos valores do gráfico. Ex: @E 99.99 | X |
Desativa menu que permite troca do tipo de gráfico pelo usuário
FwChartFactory(): EnableMenu( < lEnable> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
lEnable | Lógico | .T. Ativa e .F. Desativa o menu de troca de painel | X |
Seta título do gráfico.
FwChartFactory(): setTitle ( [ cTitle], [ nAlign] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência |
cTitle | Caracter | Título do gráfico. |
X | ||
nAlign | Numérico | Alinhamento do título. Ex: CONTROL_ALIGN_LEFT,CONTROL_ALIGN_CENTER,CONTROL_ALIGN_RIGHT |
Propriedade | Descrição | Tipo |
Array of Record |
Ativa a classe e cria os componentes bases
FwChartFactory(): Activate( ) -->
Para instanciar objetos do tipo FWChart, existe a classe FWChartFactory, responsável em instanciar o objeto gráfico, conforme parâmetro passado, criando assim gráficos em pizza, barras, funil ou linhas.
#INCLUDE "PRCONST.CH"#INCLUDE "PROTHEUS.CH" User function criachart()Local oFWChartLocal oDlgDEFINE MSDIALOG oDlg PIXEL FROM 10,0 TO 600,400oFWChart := FWChartFactory():New()oFWChart := oFWChart:getInstance( BARCHART ) // cria objeto FWChartBar/*Valores do getInstance:BARCHART - cria objeto FWChartBarBARCOMPCHART - cria objeto FWChartBarCompLINECHART - cria objeto FWChartLinePIECHART - cria objeto FWChartPie*/oFWChart:init( oDLG, .F. )oFWChart:setTitle( "Titulo do grafico", CONTROL_ALIGN_CENTER )oFWChart:setLegend( CONTROL_ALIGN_LEFT )oFWChart:setMask( "R$ *@* " )oFWChart:setPicture( "@E 99.99" )oFWChart:addSerie( "Série 01", 10 )oFWChart:addSerie( "Série 02", 2 )oFWChart:build()ACTIVATE MSDIALOG oDlgReturn |
---|
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
#include 'Protheus.ch'
User Function tstFactory()
Local oDlg
Local oChart
Local oPanel
Local oPanel2
DEFINE DIALOG oDlg TITLE "Teste novos graficos" SIZE 800,800 PIXEL
oPanel:= TPanel():New( , ,,oDlg,,,,,, 0, 50)
oPanel:Align := CONTROL_ALIGN_TOP
oPanel2:= TPanel():New( , ,,oDlg,,,,,, 0, 0)
oPanel2:Align := CONTROL_ALIGN_ALLCLIENT
TButton():New( 10, 10, "Refresh",oPanel,{||BtnClick(oChart)},45,15,,,.F.,.T.,.F.,,.F.,,,.F. )
oChart := FWChartFactory():New()
oChart:SetOwner(oPanel2)
//Para graficos multi serie, definir a descricao pelo SetxAxis e passar array no addSerie
/*oChart:SetXAxis( {"periodo um", "periodo dois", "periodo tres"} )
oChart:addSerie('Apresentação teste', { 96, 33, 10 } )
oChart:addSerie('Qualificação teste', { 100, 33, 10 } )
oChart:addSerie('Fechamento teste', { 99, 36, 10 } )
oChart:addSerie('Pós Venda', { 80, 100, 10 } )
*/
//Para graficos de serie unica utilizar conforme abaixo
oChart:addSerie('Apresentação teste', 96 )
oChart:addSerie('Qualificação teste', 100 )
oChart:addSerie('Fechamento teste', 99 )
oChart:addSerie('Pós Venda', 80 )
//----------------------------------------------
//Picture
//----------------------------------------------
oChart:setPicture("@E 999,999,999.99")
//----------------------------------------------
//Mascara
//----------------------------------------------
oChart:setMask("R$ *@*")
//----------------------------------------------
//Adiciona Legenda
//opções de alinhamento da legenda:
//CONTROL_ALIGN_RIGHT | CONTROL_ALIGN_LEFT |
//CONTROL_ALIGN_TOP | CONTROL_ALIGN_BOTTOM
//----------------------------------------------
oChart:SetLegend(CONTROL_ALIGN_LEFT)
//----------------------------------------------
//Titulo
//opções de alinhamento do titulo:
//CONTROL_ALIGN_RIGHT | CONTROL_ALIGN_LEFT | CONTROL_ALIGN_CENTER
//----------------------------------------------
oChart:setTitle("Titulo do Grafico", CONTROL_ALIGN_CENTER) //"Oportunidades por fase"
//----------------------------------------------
//Opções de alinhamento dos labels(disponível somente no gráfico de funil):
//CONTROL_ALIGN_RIGHT | CONTROL_ALIGN_LEFT | CONTROL_ALIGN_CENTER
//----------------------------------------------
oChart:SetAlignSerieLabel(CONTROL_ALIGN_RIGHT)
//Desativa menu que permite troca do tipo de gráfico pelo usuário
oChart:EnableMenu(.F.)
//Define o tipo do gráfico
oChart:SetChartDefault(FUNNELCHART)
//-----------------------------------------
// Opções disponiveis
// RADARCHART
// FUNNELCHART
// COLUMNCHART
// NEWPIECHART
// NEWLINECHART
//-----------------------------------------
oChart:Activate()
ACTIVATE DIALOG oDlg CENTERED
Return
Static function BtnClick(oChart)
oChart:DeActivate()
//Para graficos multi serie, definir a descricao pelo SetxAxis e passar array no addSerie
/*oChart:SetXAxis( {"periodo um", "periodo dois", "periodo tres"} )
oChart:addSerie('WApresentação teste', { Randomize(1,20), Randomize(1,20), Randomize(1,20) } )
oChart:addSerie('AQualificação teste', { Randomize(1,20), Randomize(1,20), Randomize(1,20) } )
oChart:addSerie('EFechamento teste', { Randomize(1,20), Randomize(1,20), Randomize(1,20) } )
oChart:addSerie('BPós Venda', { Randomize(1,20), Randomize(1,20), Randomize(1,20) } )
*/
//Para graficos de serie unica utilizar conforme abaixo
oChart:addSerie('Apresentação teste', Randomize(1,20) )
oChart:addSerie('Qualificação teste', Randomize(1,20) )
oChart:addSerie('Fechamento teste', Randomize(1,20) )
oChart:addSerie('Pós Venda', Randomize(1,20) )
oChart:Activate()
Return |