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> ) -->
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} )
Os gráficos NEWLINECHART e RADARCHART funcionam apenas em multi série
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 |
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 '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