Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Índice:


Índice
exclude.*ndice:

Objetivo:


O objetivo desta página é exemplificar como inserir um gráfico em um relatório.net. Existem dezenas de parâmetros que podem ser configurados tais como as series, eixos, legendas etc. Os exemplos abaixo abrangem as principais configurações necessárias para inclusão de um gráfico.

Introdução


Esta é uma ferramenta bastante eficiente para as organizações. Nos produtos da linha RM é possível criar e editar gráficos utilizando consultas SQL como fonte de dados. Utilizaremos as informações inclusas em um relatório.net para montagem dos exemplos.

Utilização


Para inclusão de gráficos no RM Reports, é necessário possuir informações no relatório organizadas de forma que existam argumentos e valores correspondentes para que as séries existentes possam ser configuradas, por exemplo:


Informações
iconfalse

Principais configurações;

Deck of Cards
idI
Card
labelTipo de Gráfico

Quando arrastamos um controle de gráfico para o corpo do relatório, um wizard de configuração iniciará, onde é definido o tipo do gráfico, quais as séries existentes, e o visual da apresentação do gráfico.

Card
labelSeries

Uma vez definidos o tipo do gráfico e a sua aparência, as séries devem ser configuradas. Um gráfico pode possuir de 1 a N séries. Para cadastrar as séries deve-se acessar o wizard de configuração do gráfico e selecionar a opção “Séries” no menu à esquerda.

Card
labelDados

Na opção “Dados” na aba “Binding de Séries”, associamos os campos utilizados no Argumento e no Valor.

Aviso
iconfalse

Após configurar as opções de “Construção” do gráfico, as demais opções são utilizadas apenas para ajustes visuais que não afetam a forma como as informações são manipuladas pelo componente.




Exemplos;

Deck of Cards
idExemplos
Card
labelGráfico de Barras
Deck of Cards
idGráfico de Barras
Card
labelSQL

Vamos criar um gráfico de barras a partir da consulta SQL que retorna o código da seção e os seguintes totais por seção: funcionários e dependentes ativos, funcionários e dependentes inativos.

Bloco de código
languagesql
SELECT SEC.CODIGO,
  (SELECT COUNT(CHAPA)
   FROM PFUNC
   WHERE CODSITUACAO = 'A'
     AND CODSECAO = SEC.CODIGO) 'FUNCIONARIOS ATIVOS',
  (SELECT COUNT(NRODEPEND)
   FROM PFDEPEND
   JOIN PFUNC ON (PFDEPEND.CHAPA = PFUNC.CHAPA
                  AND PFUNC.CODSITUACAO = 'A')
   WHERE PFUNC.CODSECAO = SEC.CODIGO) 'DEPENDENTES ATIVOS',
  (SELECT COUNT(CHAPA)
   FROM PFUNC
   WHERE CODSITUACAO <> 'A'
     AND CODSECAO = SEC.CODIGO) 'FUNCIONARIOS NÃO ATIVOS',
  (SELECT COUNT(NRODEPEND)
   FROM PFDEPEND
   JOIN PFUNC ON (PFDEPEND.CHAPA = PFUNC.CHAPA
                  AND PFUNC.CODSITUACAO <> 'A')
   WHERE PFUNC.CODSECAO = SEC.CODIGO) 'DEPENDENTES NÃO ATIVOS'
FROM PSECAO SEC
WHERE SEC.CODIGO IN ('01.02',
                     '01.03',
                     '03.01',
                     '01.14',
                     '01.10',
                     '02.02',
                     '01.01',
                     '01.04',
                     '01.08',
                     '01.09')
Card
labelRelatório

Depois de criado a consulta SQL, criamos um novo relatório, adicionamos a consulta SQL criada como fonte de dados e adicionamos a banda Detalhe os campos que desejamos visualizar.


Neste exemplo utilizaremos um único gráfico que exibirá todas as informações provenientes da banda Detalhe1. Para isso deve-se adicionar um rodapé de detalhe a banda que contém os dados. Clique com o botão direito do mouse sobre a banda detalhe a qual os dados foram associados, selecione a opção “Inserir Seção”, “Rodapé do Detalhe”.


Arraste para esta banda um componente do tipo gráfico 

Card
labelGráfico

Depois de arrastar o componente para o rodapé do detalhe será aberto o wizard de configuração do gráfico. Selecionamos o tipo “Barra”. Adicionamos uma série para cada uma das colunas de dados retornadas na nossa consulta SQL.


No Binding das Séries, para todos os itens o argumento será “Qualitativo” e o campo CODIGO será associado ao argumento, no valor de cada série o tipo retornado pela consulta SQL é numérico, a ligação é feita por valores e o valor é associado ao campo correspondente na consulta SQL.


Após a configuração das séries e dados, o gráfico gerado do rodapé do relatório foi o seguinte:

Card
labelGráfico de Torta
Deck of Cards
idGráfico de Torta
Card
labelSQL

Vamos criar um gráfico de torta a partir da consulta SQL que retorna a quantidade de relatórios existentes por cada aplicação do ERP.

Bloco de código
languagesql
SELECT CODAPLICACAO,
       COUNT(CODIGO) TOTAL
FROM RRPTREPORT
GROUP BY CODAPLICACAO
Card
labelRelatório

Após a criação da consulta SQL, criamos um novo relatório, adicionamos a consulta SQL criada como fonte de dados e adicionamos a banda Detalhe os campos que desejamos visualizar.


Neste exemplo também utilizaremos um único gráfico que exibirá todas as informações provenientes da banda Detalhe1. Para isso deve-se adicionar um rodapé de detalhe a banda que contém os dados. Clique com o botão direito do mouse sobre a banda detalhe a qual os dados foram associados, selecione a opção “Inserir Seção”, “Rodapé do Detalhe”.


Arraste para esta banda um componente do tipo gráfico. Aba “Caixa de Ferramentas”, “Controles Avançados”, “Gráfico”.

Card
labelGráfico

Após arrastar o componente para o rodapé do detalhe será aberto o wizard de configuração do gráfico. Selecionamos o tipo “Torta”.

Adicionamos uma série para cada uma das colunas de dados retornadas na nossa consulta SQL, neste caso, apenas uma série e pode-se utilizar a série criada automaticamente pelo wizard.

No Binding das Séries, o campo CODAPLICACAO deve ser o argumento, do tipo “Qualitativo”, já que distingue as informações e o campo TOTAL será associado ao valor da série.


Após a configuração da série e dos dados, o gráfico gerado do rodapé do relatório foi o seguinte:

Card
labelGráfico de Linha
Deck of Cards
idGráfico de Linha
Card
labelSQL

Vamos criar um gráfico de torta a partir da consulta SQL que retorna a quantidade de relatórios existentes por cada aplicação do ERP.


Bloco de código
languagesql
SELECT DATALAN.DATAEMISSAO,
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C00001') 'C00001',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C00305') 'C00305',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C00306') 'C00306',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C00307') 'C00307',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C00308') 'C00308',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C00311') 'C00311',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C00318') 'C00318',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C00436') 'C00436',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C00455') 'C00455',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C00511') 'C00511',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C00521') 'C00521',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C01323') 'C01323',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C01338') 'C01338',
     (SELECT COUNT(IDLAN)
      FROM FLAN
      WHERE DATALAN.DATAEMISSAO = FLAN.DATAEMISSAO
           AND CODCFO = 'C01354') 'C01354'
FROM FLAN DATALAN
WHERE DATALAN.CODCFO IN('C00001',
                        'C00305',
                        'C00306',
                        'C00307',
                        'C00308',
                        'C00311',
                        'C00318',
                        'C00436',
                        'C00455',
                        'C00511',
                        'C00521',
                        'C01323',
                        'C01338',
                        'C01354')
GROUP BY CODCFO,
         DATAEMISSAO
ORDER BY CODCFO



Card
labelRelatório

Após a criação da consulta SQL, criamos um novo relatório, adicionamos a consulta SQL criada como fonte de dados e adicionamos a banda Detalhe os campos que desejamos visualizar.

Image Added


Neste exemplo também utilizaremos um único gráfico que exibirá todas as informações provenientes da banda Detalhe1. Para isso deve-se adicionar um rodapé de detalhe a banda que contém os dados. Clique com o botão direito do mouse sobre a banda detalhe a qual os dados foram associados, selecione a opção “Inserir Seção”, “Rodapé do Detalhe”.

Image Added


Arraste para esta banda um componente do tipo gráfico. Aba “Caixa de Ferramentas”, “Controles Avançados”, “Gráfico”.

Após arrastar o componente para o rodapé do detalhe será aberto o wizard de configuração do gráfico. Selecionamos o tipo “Linhas”.

Gráfico
Card
labelGráfico

Adicionamos uma série para cada uma das colunas de dados retornadas na nossa consulta SQL.

No Binding das Séries, para todos os itens o argumento será “DateTime” e o campo DATAEMISSAO será associado ao mesmo, para cada uma das séries criadas associamos uma coluna em seu valor que é do tipo Numérico.

Image Added


Após a configuração da série e dos dados, o gráfico gerado do rodapé do relatório foi o seguinte:

Image Added

Card
label



A Maneira mais fácil de explicar este procecedimento é montando um gráfico:

1. Primeiramente crie um relatório com as tabelas Funcionário e Histórico de Salário.
2. Na banda Detalhe1, insira os campos chapa e nome do funcionário.
3. Insira uma banda como sub-relatório e selecione "Histórico de Salários".




4. Insira no detalhe2, os campos "Data da Mudança" e "Valor Atual do Salário" da tabela de Histórico de
Salários.


5. Insira um Rodapé do Detalhe2, nele vamos inserir nosso componente de Gráfico.




6. Após inserir o gráfico, acesse suas propriedades.

7. Clique em "Iniciar Wizard".




O gráfico já vem como duas séries como padrão. No exemplo a seguir vamos usar somente uma série.

Portanto vamos apagar a "Série2". Para isso devemos acessar "Séries" no lado esquerdo da tela.

• Clique sobre a "Série2" e remova.

• Segundo passo é configurar a nossa série.


• Ao lado direito do Wizard na pasta "Opções de Series" Em tipo de escala vamos selecionar DateTime:





• Agora selecione Dados ao lado esquerdo do wizard.

• Na pasta "Binding de Séries", em propriedades do Argumento selecione: 




Nota:


Atente-se para buscar o campo "Data de Mudança" da tabela de Histórico de Salários disposta na raiz, pois a mesma também é apresentada dentro da tabela de Funcionários quando a expandimos clicando em [+].



8. Na opção EIXOS Clique na aba "Formato" e insira o formato MM/yyyy para que no eixo X seja mostrado apenas o mês e ano do aumento salarial.






9. Agora para melhor visualização volte as opções da barra esquerda e selecione "Tipo de Gráfico"


10. Selecione o tipo de gráfico de Linhas




11. Finalize o formatador de Gráfico e gere o relatório.


12. Visualização do Relatório pronto.






Informações
titlePara maiores informações:


COMUNIDADE  @FRAMEWORK


Canais de Atendimento:

Chamado: Através do Portal Totvs www.suporte.totvs.com.br

Telefônico: 4003-0015 Escolhendo as opções 2 – (Software), 2 – (Suporte Técnico), 3 – (RM), 9 – (Demais Áreas), 4 – (BI) e 3 –  (Gerador de Relatórios e Planilha);



SELECT SEC.CODIGO,  (SELECT COUNT(CHAPA)   FROM PFUNC   WHERE CODSITUACAO = 'A'     AND CODSECAO = SEC.CODIGO) 'FUNCIONARIOS ATIVOS',  (SELECT COUNT(NRODEPEND)   FROM PFDEPEND   JOIN PFUNC ON (PFDEPEND.CHAPA = PFUNC.CHAPA                  AND PFUNC.CODSITUACAO = 'A')   WHERE PFUNC.CODSECAO = SEC.CODIGO) 'DEPENDENTES ATIVOS',  (SELECT COUNT(CHAPA)   FROM PFUNC   WHERE CODSITUACAO <> 'A'     AND CODSECAO = SEC.CODIGO) 'FUNCIONARIOS NÃO ATIVOS',  (SELECT COUNT(NRODEPEND)   FROM PFDEPEND   JOIN PFUNC ON (PFDEPEND.CHAPA = PFUNC.CHAPA                  AND PFUNC.CODSITUACAO <> 'A')   WHERE PFUNC.CODSECAO = SEC.CODIGO) 'DEPENDENTES NÃO ATIVOS'FROM PSECAO SECWHERE SEC.CODIGO IN ('01.02',                     '01.03',                     '03.01',                     '01.14',                     '01.10',                     '02.02',                     '01.01',                     '01.04',                     '01.08',                     '01.09')

Informações
iconfalse
Informações
iconfalse

Produto: Framework

Informações
iconfalse

Versão: 11.XX

Informações
iconfalse

Processo: Criação de gráficos no Reports 

Informações
iconfalse
Informações
iconfalse

Status: Em alteração

Informações
iconfalse

Data:  

Informações
iconfalse

Autores:

Erlon Cesar Lima De Freitas

Flavio Henrique Pereira Campelo

Gustavo Naves De Castro

Philippe Fernandes Lima Gonçalves

SARAH ROLAND CAMPOS LISBOA

Wesley Avelino De Carvalho