Classe pai, responsável por armazenar os dados e métodos comuns das classes que desenham gráficos como: FWChartPie, FWChartBar,FWChartBarComp,FWChartLine e FWChartFunnel.

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> ) -->



NomeTipoDescriçãoObrigatórioReferência
nAlignNuméricoDefine onde será criado a legenda na tela. Ex: CONTROL_ALIGN_NONE, CONTROL_ALIGN_LEFT, CONTROL_ALIGN_TOP, CONTROL_ALIGN_RIGHT, CONTROL_ALIGN_BOTTOMX


SetOwner

Define o painel onde sera criado o gráfico 


FwChartFactory(): SetOwner ( < oPanel> ) -->

Parâmetros

NomeTipoDescriçãoObrigatórioReferência
oPanelObjeto
painel onde sera criado o gráfico 
X


SetXaxis

Define a descrição das series nos gráficos multi series


FwChartFactory(): SetXaxis ( < aXAxis> ) -->

Parâmetros

NomeTipoDescriçãoObrigatórioReferência
aXAxisArray
Descrição das séries dos gráficos
X


AddSerie

Adiciona uma série no Gráfico


FwChartFactory(): AddSerie ( < cTitle>,< uValue> ) -->

Parâmetros

NomeTipoDescriçãoObrigatórioReferência
cTitleCaracter
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> ) -->

Parâmetros

NomeTipoDescriçãoObrigatórioReferência
nAlignNumé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> ) -->

Parâmetros

NomeTipoDescriçãoObrigatórioReferência
nChartDefaultNumé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] ) -->



NomeTipoDescriçãoObrigatórioReferência
cMaskCaracterMáscara do tooltip. Ex: "R$ *@*", será exibido por exemplo R$ 10,00X


Seta picture dos valores do gráfico.


FwChartFactory(): setPicture ( < cPicture> ) -->



NomeTipoDescriçãoObrigatórioReferência
cPictureCaracterPicture que será utilizada nos valores do gráfico. Ex: @E 99.99X


Desativa menu que permite troca do tipo de gráfico pelo usuário


FwChartFactory(): EnableMenu( < lEnable> ) -->



NomeTipoDescriçãoObrigatórioReferência
lEnableLógico.T. Ativa e .F. Desativa o menu de troca de painelX




Seta título do gráfico.


FwChartFactory(): setTitle ( [ cTitle], [ nAlign] ) -->



NomeTipoDescriçãoObrigatórioReferência
cTitleCaracterTítulo do gráfico.X
nAlignNuméricoAlinhamento do título. Ex: CONTROL_ALIGN_LEFT,CONTROL_ALIGN_CENTER,CONTROL_ALIGN_RIGHT


Ativa a classe e cria os componentes bases


FwChartFactory(): Activate(  ) -->


Desativa a classe


FwChartFactory(): DeActivate(  ) -->



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.




Exemplo
#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