A Análise de tipo Ranking permite mostrar determinados valores ordenados por importância, bem como agrupar a informação de modo a dar uma melhor visualização da performance de cada grupo. Permite ainda agrupar os resultados em termos de TOP ou em análise ABC. Informação
Contrariamente às análises de tipo Normal, que permitem total liberdade de configuração através de expressões SQL ou em VB.NET, as análises de tipo Ranking irão basear-se nos valores introduzidos em determinados campos da configuração, para construir internamente a instrução SQL que será usada na execução da análise.
Para o auxiliar na construção de análises deste tipo, este tópico é constituído por passos numerados que seguem uma sequência lógica de construção da análise. No entanto, o nº de passos a efetuar pode variar em função das características que pretenda na construção da análise, pelo que poderão existir alguns passos que não serão necessários efetuar (por serem opcionais), podendo prosseguir para outros posteriores.
Para configurar uma Análise de tipo Anual deve dirigir-se ao ( Menu > Definições > Reporting > Configuração de Análises) e efetuar os seguintes passos:
1. Clique em Introduza configuração de análise e comece por preencher uma Descrição da análise (título).
2. Associe ou crie um Grupo para a análise. O grupo selecionado representa o separador onde vai ficar disponibilizada a análise.
3. No campo Tipo de análise selecione a opção Ranking
Informação
O campo Interna quando ativo significa que se trata de uma análise que vem fornecida de base pela PHC, não podendo ser alterada ou apagada. No entanto, pode ser duplicada para que possa aproveitar as configurações da mesma e aplicá-las numa nova análise.
O campo Inativa quando ativo determina que a análise não será visível na lista de análises globais contidas no menu "Análises e Listagens" ou nas análises ligadas a ecrãs.
O campo Mostra esta análise no menu quando ativo determina que a análise estará acessível diretamente no nó de Análises e Listagens do menu de opções da aplicação. Este campo só permite edição em configurações de análises globais.
DADOS GERAIS
O tabulador de Dados gerais é composto por vários separadores, os quais iremos detalhar individualmente.
Para obter mais informações sobre os campos de um separador, carregue em Mostrar/Ocultar referente ao separador específico (ou em alternativa, pode carregar em Abrir todos).
4. Preencha uma
Descrição completa para a análise. Por exemplo, pode preencher um resumo sucinto do que é possível de extrair na análise e dar informação adicional sobre a análise. Na prática, esta descrição virá refletida quando executar a análise e passar com o cursor do rato sobre o icone
localizado à direita do nome da análise.
Informação
O campo Número é apenas de consulta e identifica o número interno da análise. As análises internas (construídas pela PHC) apresentam uma numeração simples, com início no n.º 1. As análises construídas por parceiros PHC GO apresentam uma numeração um pouco diferente, para sua distinção: têm como prefixo o número interno da instalação de kitparceiro seguido de numeração sequencial, começando no n.º 1. Por exemplo XXXX1 (onde "XXXX" é o n.º interno da instalação de kitparceiro).
5. Caso pretenda que a análise esteja agregada a qualquer registo contido num ecrã (por exemplo: Clientes), deve ativar o campo
É uma análise de registo e mais à direita selecionar o
Ecrã respetivo (a análise ficará disponível ao consultar um registo no ecrã que indicou, dentro do tabulador de "Análises").
Se o campo
É uma análises de registo estiver desmarcado, a análise uma vez finalizada na sua configuração será considerada uma
análise global e ficará localizada no
Menu >
Análises e Listagens onde se exibem as análises deste tipo.
6. Se tencionar que a análise esteja disponível a partir de um ecrã específico, deverá ativar o campo
É uma análise de ecrã e indicar no campo
Ecrã onde a mesma será disponibilizada. Optando por esta configuração, a análise ficará disponível no ecrã que indicou, dentro do tabulador de "Análises e Listagens").
Nota
Não é permitida a análise estar configurada para ser de registo e de ecrã em simultâneo.
7. Preencha o
Plano Mínimo que irá disponibilizar a análise. Ao preencher um determinado plano na análise está a definir que ela estará disponível apenas a partir desse plano e em planos superiores.
8. Pode alterar o
tamanho da fonte para impressão em PDF (o valor mínimo admitido para o campo é 6).
Esta seção do ecrã deve ser
usada exclusivamente em situações que pretenda que a análise peça ao utilizador dados iniciais para
filtrar a saída de dados antes de ser executada. Se não for esse o caso, prossiga a configuração da análise na seção
Ranking.
9. Para incluir dados iniciais clique no botão
Adicione variáveis e configure tantos dados iniciais consoante as suas necessidades. A grelha é composta pelos seguintes campos (colunas):
Número: Trata-se do nº interno atribuído ao dado inicial e que representa a ordem pela qual vem exibido ao aceder à análise.
O valor deste campo é incrementado automaticamente em uma unidade com base no valor do último registo de dado inicial criado na grelha, muito embora, possa posteriormente alterar a ordem dos dados iniciais conforme pretenda.
Nome: Campo para preencher o nome que terá o dado inicial.
Tipo: Campo para determinar o tipo de dado inicial.
Tem disponível para seleção um dos seguintes tipos: Caracter, Mês, Numérico, Lógico, Data, Ano e Tabela.
Opções: Se tipo "Tabela": lista de opções, separada por vírgulas. Se tipo "Ano": ano inicial com 4 dígitos: Este campo pode albergar dados de diversas formas, em função do tipo de dado selecionado no campo anterior.Dicas
a) Para dados de tipo
Tabela pode preencher neste campo entre outras coisas:
» Um dado inicial que permita selecionar um item a partir de uma lista de itens fixos (separados por vírgula). Por exemplo, um campo dropdown para selecionar o estado para visualizar encomendas:
Todas,Abertas,Fechadas» Um dado inicial que permita selecionar um item a partir de uma lista que pode variar em função de uma query SQL (implica ativar a coluna
Lista é uma query)
Exemplo 1 - query que retorna o nome de cada um dos clientes presentes na tabela de Clientes (CL) sendo que o 1º item representa "Todos os Clientes"
select uval from (select 'Todos os Clientes' as uval from cl (nolock)
union select distinct nome as uval from cl (nolock)) a
ORDER BY CASE uval WHEN 'Todos os Clientes' THEN 1 ELSE 2 END, uval
Exemplo 2 - query que retorna o nome das séries de documentos de faturação (tabela TD), que sejam do tipo ´FT´, ´FR´, ´FS´ ou ´NC´, e que o 1º item representa "Todos os Tipos de Documentos"
select uval from (select 'Todos os Tipos de Documentos' as uval from td (nolock) union
select distinct nmdoc as uval from td (nolock) where
td.tiposaft='FT' or
td.tiposaft='NC' or
td.tiposaft='FR' or
td.tiposaft='FS') a
ORDER BY CASE uval WHEN 'Todos os Tipos de Documentos' THEN 1 ELSE 2 END, uval
b) Para dados de tipo
Ano poderá criar um dado de 4 dígitos que servirá de base para o cálculo da análise. Exemplo: 2021
c) Para dados de tipo
Mês poderá criar um dado que sirva para o cálculo da análise. Exemplo: 12.
Lista é uma query: A lista deve ser uma expressão de SQL que retorna uma lista com um campo designado por "uval" (ver exemplos anteriores).
Obrigatório: Indica que este dado inicial é de preenchimento obrigatório.
Nº de carateres: Número máximo de carateres que este dado inicial pode receber. Se deixar o campo a zero não terá limite de nº de caracteres. O preenchimento desta coluna da grelha apenas se aplica a dados iniciais do tipo numérico e caracter.
Decimais: Número de decimais caso o campo seja "numérico".
v.d texto: Valor por defeito para este dado inicial caso seja do tipo "caracter".
v.d. número: Valor por defeito para este dado inicial caso seja do tipo "numérico".
v.d. lógico: Valor por defeito para este dado inicial caso seja do tipo "lógico".
v.d. data: Valor por defeito para este dado inicial caso seja do tipo "data". Neste caso, este campo representa o nº de dias de diferença para a data atual. Por exemplo, -365 neste campo, colocará no dado inicial a data de há 365 dias atrás.
Rejeita cache: Caso ative este campo, o valor preenchido pelo utilizador da análise para a variável do dado inicial não será guardada na base de dados com o último valor introduzido (ou seja, sempre que a análise for inicializada, o valor da variável de dado inicial será automaticamente preenchido pela aplicação, tendo por base o valor preenchido nos campos v.d. texto, v.d. número, v.d. lógico ou v.d. data (conforme o tipo de dado definido, se texto, numérico, lógico, data,..).tips_and_updatesDicas
Por exemplo, para os campos de tipo
Ano, a framework vai olhar primeiramente se guarda cache
(rejeita cache desativado) e em caso afirmativo recorre ao último valor guardado em tabela.
Caso não guarde cache
(rejeita cache ativado), então a framework irá olhar para o valor definido no campo
v.d.data, e caso não esteja preenchido, olha para o valor do campo
v.d.texto. Se os campos anteriores não contemplarem qualquer valor, então o campo virá vazio de conteúdo.
Exemplos:
(I) se rejeita a cache e tem vd.data = -2 <-- toma sempre como base o ano corrente (ex: 2023) e diminui 2 anos
Então, na prática o campo "Ano" = 2021
----------------------------------------------------------
(II) se rejeita a cache e tem vd.data = vazio e v.d.texto= 2017
Então, na prática o campo "Ano" = 2017
----------------------------------------------------------
(III) se rejeita a cache e tem vd.data = vazio e v.d.texto= vazio
Então, na prática o campo "Ano" = vazio
----------------------------------------------------------
(IV) se rejeita a cache e tem vd.data = 2
Então, na prática o campo "Ano" = vazio (porque estamos no ano corrente + 2 anos) seria um ano superior ao ano corrente, logo nesses casos o valor vem vazio.
Premissa: Os dados iniciais de tipo Ano só suportam anos até ao ano corrente.
Tooltip: Informação a explicar o âmbito do dado inicial.
10. O campo
Texto para o botão de execução é aplicável para o caso de querer personalizar o nome do botão de execução da análise, com o nome que pretender. Também pode criar a respetiva tooltip, para isso, preencha o campo
Texto para a tooltip do botão de execução com a descrição para o botão.
11. Se ativar o campo
Pede sempre dados iniciais antes de executar determina que a análise ao ser acedida não será executada automaticamente pela aplicação. Assim, quando aceder à análise pela segunda vez, a execução não irá ser realizada automaticamente com os filtros, que foram colocados da primeira vez que se correu a análise.
12. Na seção
Ranking deve definir a forma como a análise será construída, sendo que, a configuração deste tipo de análises implica necessariamente ter por base uma
tabela, como por exemplo as linhas de Documentos de Faturação
(fi) ou de outra tabela proveniente de add-on.
Admitindo que se pretende extrair uma listagem dos rankings de vendas de artigos por ano, tendo por base todos os documentos de faturação emitidos entre datas selecionadas, então no campo
Tabela deve ser preenchido com o nome interno da tabela das linhas dos documentos que contém as referências dos artigos movimentados, no caso seria
fi.
13. No campo
Ano é necessário indicar em que campo da tabela se vai buscar o ano dos documentos para a análise, por exemplo:
ft.ftano14. Caso pretenda que através da análise seja possível navegar para um ecrã da aplicação, deve ativar o campo
Permite navegar para um ecrã e no campo ao lado
Nome da tabela a ligar selecionar na lista a entidade para o qual a análise irá navegar. Exemplo: o ecrã de
Artigos e Serviços.
Caso a navegação pretendida seja para um ecrã de utilizador (criado via add-on) deverá preencher o campo
Nome da tabela de utilizador a ligar com o que aparece na rota url a seguir a
custom/.
As análises que estejam configuradas para navegar para um ecrã exibem o símbolo
(localizado logo após a última coluna da análise).
15. Se pretender que a partir de um registo da análise se possa navegar para uma análise complementar, deve indicar no campo
Análise secundária o número interno dessa análise. Esta deve ser do tipo Normal. Pode ser usada na sua expressão o valor do #STAMP2# que contém o STAMP do registo selecionado ou o campo #COL# que indica o valor da coluna que o utilizador clicou.
Quando há uma ligação a um ecrã ou análise secundária é necessário definir o
Campo para stamp que identifique cada linha da análise para possibilitar a navegação para um ecrã ou para uma Análise Secundária. Exemplo:
ststamp.
Informação
De forma a seguir as boas práticas, a configuração de análises secundárias devem ficar marcadas como inativas, de forma a não virem exibidas na lista de análises, uma vez que a sua execução está sempre dependente da execução da análise principal.
16. No
Campo de Descrição é onde se define a expressão que retorna o valor para a coluna da descrição do documento.
Exemplo:
cc.cmdesc + ´ ´ + CONVERT(char(10), cc.nrdoc)) 17. Preencha o campo
Título da descrição com a respetiva designação que irá constar no título da coluna da descrição do documento.
Exemplo:
Artigo 18. Defina o
Campo de valor positivo Exemplo:
case when fi.iva<>0 and fi.ivaincl=1 then (fi.etiliquido/((fi.iva/100)+1) )else fi.etiliquido end19. Preencha o campo
Título do valor positivo com a respetiva designação que irá constar no título da coluna que exibe os valores do documento.
Exemplo:
Vendas 20. Caso tenha essa necessidade de incluir mais campos à análise, pode em
Campos adicionais determinar os campos a incluir no
SELECT à tabela, identificar os respetivos
Tipos de campos (Exemplo:
d;c) e definir os
Títulos dos campos (todos eles separados por "
;").
21. No campo
Filtro pode definir condições sobre os dados que pretende que a análise retorne, para além daqueles que possa vir a definir no separador dos Dados Iniciais. Os filtros devem ser escritos com a sintaxe em SQL e serão utilizados na construção da clásula WHERE na query SQL (neste campo poderá recorrer ao auxílio do
intelisense na construção da expressão).
Exemplo:
(td.tiposaft=´FT´ or td.tiposaft=´FS´ or td.tiposaft=´FR´ or td.tiposaft=´NC´) and ft.anulada=´0´ and ft.fno>0 22. Para o preenchimento do campo
Filtro feito anteriormente no ponto
23, poderá usar campos de tabelas relacionadas com a tabela definida no ponto
12. Desta forma, será necessário indicar as
Tabelas Relacionadas que farão conexão com essa tabela, bem como os campos de ligação, para que seja feito
INNER JOIN com as mesmas.
Tem a possibilidade de relacionar até 3 tabelas, sendo que por cada tabela relacionada devem ser configurados os seguintes campos:
- O nome interno da tabela através do campo Tabela Relacionada 1
Exemplo: ft
- Os campos de ligação Origem 1 e Destino 1.
Exemplo: Origem 1: ft.ftstamp e Destino 1: fi.ftstamp
- O nome interno da tabela através do campo Tabela Relacionada 2
Exemplo: st
- Os campos de ligação Origem 1 e Destino 1.
Exemplo: Origem 1: st.ref e Destino 1: fi.ref
- O nome interno da tabela através do campo Tabela Relacionada 3
Exemplo: td
- Os campos de ligação Origem 1 e Destino 1.
Exemplo: Origem 1: td.ndoc e Destino 1: ft.ndoc
23. Para os campos
Top de análise 1, 2 e 3 defina o nº de registos que serão contemplados e pertencentes ao top 1, 2 e 3 respetivamente.
24. Para os campos
Top de análise A e B defina o nº de registos que serão contemplados e pertencentes na análise ABC.
25. O campo
Analisa o período anterior se ativado, determina que se vai comparar os dados e posição de cada registo com os valores de um período anterior. Deve criar na seção dos
Dados Iniciais dados de tipo data a solicitar ao utilizador as datas de início do período anterior e início e fim do período de análise.
26. No campo
Dado inicial com início de período anterior defina o nº do dado inicial que irá ler a data de início do período anterior. O nº de dado inicial deve ser do tipo "Data". Se deixar este campo vazio, a aplicação assumirá a data corrente de há 2 anos.
27. No campo
Dado inicial com início de período em análise defina o nº do dado inicial que irá recolher a data de início do período em análise. O nº de dado inicial deve ser do tipo "Data". Se deixar este campo vazio, a aplicação assumirá a data corrente de há 1 ano.
28. No campo
Dado inicial com fim de período anterior defina o nº do dado inicial que irá ler a data de fim do período anterior. O nº de dado inicial deve ser do tipo "Data". Se deixar este campo vazio, a aplicação assumirá a data corrente de há 1 ano ou a data de início do período em análise, se esta estiver preenchida.
29. No campo
Dado inicial com fim de período em análise defina o nº do dado inicial que irá recolher a data de fim do período em análise. O nº de dado inicial deve ser do tipo "Data". Se deixar este campo vazio, a aplicação assumirá a data corrente.
30. Esta seção permite configurar e incluir na análise um
snaphot, isto é, um valor calculado sob a forma de um indicador.
É um snapshot: Ative este campo caso pretenda incluir na análise um snapshot.
É um snapshot exclusivo de registo: Ative este campo caso pretenda que o snapshot apenas seja executado (visível) no contexto da consulta de um registo sobre o ecrã para o qual está configurado (definido mais acima na seção
Detalhes no campo
Ecrã).
É apenas um snapshot e não contém análise: Se ativo irá determinar que esta configuração apenas irá contemplar um snapshot e não irá contém qualquer análise.
Mostra snapshot e seu gráfico no ecrã de análise total: Ativando este campo será exibido o snapshot e o eventual gráfico ligado a este no ecrã das Análises Globais (
Menu > Análises e Listagens > Análises e Listagens) .
Tipo de snapshot: Este campo permite definir se pretende construir apenas um snapshot e nesse caso deverá selecionar o item
Normal. Caso pretenda construir um
2º snapshot que retorne outros valores deverá optar pelo item
2 valores independentes.
sticky_note_2Nota
No campo Tipo de snapshot se optar pelo item 2 valores independentes passam a ser exibidos no ecrã diversos campos para poder configurar o 2º snapshot, designadamente: Tooltip 2, Tipo de dados 2, Unidade 2, Número de casas decimais 2, É um programa VB.NET 2 e Expressão SQL do snapshot 2. O âmbito de cada um destes campos é idêntico ao explicado abaixo para os campos homólogos de configuração do 1º snapshot.
Título do snapshot: Defina um título resumo que identifique o snapshot (este título é aplicável tanto para o 1º snapshot, como para o 2º snapshot que possa vir a configurar).
Tooltip: Preencha um texto que detalhe claramente o que é obtido no snapshot e o que é tido em conta nos cálculos do mesmo.
Tipo de dados: Selecione na lista o tipo de dados que será retornado pelo snapshot. Tem disponíveis um dos seguintes tipos:
Texto,
Inteiro,
Decimal,
Moeda base,
Data e
Percentagem.
Unidade: À direita do valor retornado pelo snapshot, pode incluir um texto (unidade) a que se refere esse valor.
Número de casas decimais: Para este campo defina o número de casas decimais que serão refletidas no valor obtido no snaphot.
É um programa VB.NET: Este campo uma vez selecionado permite que a expressão do snapshot se traduza num programa em VB.NET.
Expressão SQL do snapshot: Neste campo permite escrever a expressão do snapshot, podendo tirar partido do
intelisense para o auxiliar na construção dessa mesma expressão. Por exemplo, se pretender saber qual o número de encomendas de clientes introduzidas ao dia corrente, poderia utilizar a seguinte expressão:
select count(*) from bo (nolock)
where bo.dataobra = cast(getdate() as date) and bo.ndos=1
Em função do tipo de dado retornado pelo Snapshot, pode
estabelecer limites para o valor obtido e
associar-lhe uma determinada cor.
Limite vermelho: o resultado que o snapshot retornar irá apresentar uma cor vermelha, caso seja "0" e até ao valor preenchido neste campo.
Limite amarelo: o resultado que o snapshot retornar irá apresentar uma cor amarela, caso seja superior ao valor indicado no limite vermelho e até ao valor preenchido neste campo.
Limite verde: o resultado que o snapshot retornar irá apresentar uma cor verde, caso seja superior ao valor indicado no limite amarelo e até ao valor preenchido neste campo.
Caso pretenda que os valores dos snapshots não tenham cor, basta deixar os 3 campos anteriores com valor zero.
Tem gráfico: Caso pretenda associar ao snapshot um gráfico deve ativar este campo.
Tipo de gráfico: Selecione na lista o tipo de gráfico a associar ao snapshot.
Tem disponíveis os seguintes tipos:
Linhas,
Barras,
Tarte,
Área,
Tree map,
Cartões e
Tabela.
Expressão do gráfico: Área reservada para construir a expressão associada ao gráfico do snapshot. Poderá tirar partido do
intelisense para o auxiliar na construção dessa mesma expressão.
É um programa: Se a expressão feita no campo anterior constituir num código em VB.NET deverá atiivar esta opção. Caso contrário, a expressão assumirá que se trata de uma instrução em Transact-SQL.
Colunas: Neste campo deve indicar o nome das colunas que a expressão SQL do Snapshot retorna, separados por ponto e vírgula. É sensível a Maiúsculas e minúsculas.
Exemplo:
no;nome;esaldo.
Tipos para as colunas: Em função das colunas indicadas anteriormente, deve indicar aqui o tipo das colunas que a expressão SQL retorna, isto é:
n para valores numéricos,
qtt para quantidades,
pct para percentagens,
c para carateres,
l para lógicos,
d para datas,
mb para moeda base,
me para moeda estrangeira,
Os diversos tipos que indicar neste campo, devem vir separador por ponto e vírgula. Exemplo: n;c;mb
Para o tipo
qtt a aplicação irá ter em consideração as casas decimais nas quantidades estabelecidas no ecrã de
Parâmetros.
Para os tipos
n,
mb,
me e
pct pode configurar o nº de casas decimais devendo para tal à frente de cada tipo indicar o nº de casas decimais pretendido (
Exemplo:
n1,
mb2,
me2,
pct1). Caso não especifique o nº de casas decimais, a aplicação irá ter em consideração as casas decimais estabelecidas no ecrã de
Parâmetros.
Ainda para os tipos
n,
mb,
me e
pct pode-se optar pela exibição do valor zero quando o mesmo retorna 0, devendo para isso colocar à frente de cada tipo o símbolo
# (
Exemplo:
n1#,
mb2#,
pct2#).
Títulos para as colunas: Este campo destina-se ao preenchimento dos títulos das colunas que a expressão de SQL do gráfico do snapshot retorna, separados por ponto e vírgula.
Exemplo:
Nº Cliente;Nome;Saldo em Aberto. Tratam-se dos títulos que virão exibidos nas colunas da análise quando esta for executada na prática.
Coluna para série 1: Neste campo é necessário colocar o nº da coluna da qual pretende obter os dados para o resultado do gráfico para um barra.
Coluna para série 2: Neste campo é necessário colocar o nº da coluna da qual pretende obter os dados para o resultado do gráfico de uma segunda barra. Caso este campo seja deixado a zero ("0"), só irá aparecer a progressão da linha colocada no campo "Coluna para série 1".
Coluna para dados: Indique neste campo o número da coluna do resultado que tem os dados para o gráfico.
Coluna para legenda: Neste campo é necessário colocar o nº da coluna da análise da qual se pretende obter os dados para a legenda do gráfico.
31. Por último, há que estabelecer os
acessos que a análise terá, podendo ser disponibilizada em função de um
acesso por perfil ou
acesso por área. Os acessos estão diretamente relacionadas com os
Perfis associados aos
Utilizadores da aplicação.
Nota
Se não for definido um acesso por perfil ou se não for indicada uma área de acesso, presume-se que todos os utilizadores podem consultar a análise. Ao definir um dos acessos, determina-se que apenas os utilizadores com acesso a essa área ou a esse perfil poderão consultá-la.
32. Ao gravar a Análise, esta estará acessível ao consultar um registo no ecrã ligado à análise, dentro do tabulador
Análises (caso se trate de uma análise ligada a um ecrã) ou na opção de
Análises e Listagens no menu
Análises e Listagens (caso se trate de uma análise global). A análise também pode ser incluída num ecrã ligado a um Add-on, caso associe a mesma ao Add-on que estiver a desenvolver.
Dicas
Para as Análises Globais poderá pré-visualizar as mesmas, bastando consultar o registo da análise pretendida e através do botão de Ações (localizado na parte lateral esquerda do ecrã), aceder à opção Preveja análise. As Análises de Registo não permitem pré-visualização a partir do ecrã de configuração de análises, uma vez que que a sua execução estará sempre dependente da consulta de um registo a partir de um ecrã.
Para mais informações sobre os nomes das tabelas e respetivos campos da aplicação, sugerimos a consulta do Dicionário de Dados disponível no Menu > Definições > Gestão de Dados).