Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
junior_ehlke
Creator III
Creator III

Tabela vs Objeto Texto

Bom dia, tenho um projeto de uma DRE onde sua estrutura eu montem em cima de Objetos de texto, ou seja, cada linha, cada campo era um quadradinho com sua formula, aqui mesmo no grupo me indicaram para fazer isto com uma tabela,

tentei estruturar de duas formas, a primeira foi criando as colunas com ValueList e a segunda foi montando o a estrutura no script

Dim:

LOAD

  dual('Receita Líquida com Venda',1) as %Dim AutoGenerate(1);

LOAD

  dual('(+) Margem PDV',2) as %Dim AutoGenerate(1);

porém de nenhuma forma eu consigo fazer com que apareça valores quando eu tenho um SUM(AGGR()) dentro das formulas, ou o valor sai errado ou fica zerado. Alguém sabe o motivo disto?

Estou pensando em voltar para os Objetos de Texto, porém vou perder a facilidade de gerar os relatórios em Excel.

Labels (3)
1 Solution

Accepted Solutions
nicolett_yuri

Estranho Hamilton.

Depois se quiser compartilhar posso dar uma olhada para você.

Na questão de adicionar o %Dim no AGGR, até da para fazer uma outra variável reaproveitar código de uma e excluir o %Dim do AGGR (colocando um replace, por exemplo), mas você vai ter que remover o "=" da formula e precisará criar todas as variáveis em seu script e não diretamente na sessão de variáveis (isso fará o replace funcionar corretamente sem influenciar em sua expressão final)

View solution in original post

18 Replies
nicolett_yuri

Coloque um exemplo de seus dados e a conta que esta tentando fazer.

junior_ehlke
Creator III
Creator III
Author

Vou tentar fazer um exemplo aqui, mas percebi o seguinte,

se eu estou usando o SUM(AGGR((formula),id_tempo)), quando eu utilizo a tabela eu preciso fazer SUM(AGGR((formula),id_tempo, %Dim)). Isso para mim é quase um problema, pois tenho que abrir as fórmulas que estão dentro de variáveis, fica difícil para dar manutenção posteriormente.

nicolett_yuri

É muito melhor passar essas informações para um gráfico de tabela, do que ter que abrir N caixas de texto para dar manutenção, nem vou citar o ganho de performance que seu relatório vai ganhar hehe.

junior_ehlke
Creator III
Creator III
Author

Yuri, mas imagine que todas as minhas formulas estao dentro de variáveis, caso eu tenha que mudar alguma fórmula, todas as caixas de texto que tem essa variável muda altomaticamente, agora ou eu estou fazendo errado, ou no gráfico de tabela eu tenho que abrir as contas que tem o AGGR().

nicolett_yuri

Hamilton, coloque um exemplo dos seus dados que te ajudo na formula.

Clever_Anjos
Employee
Employee

Com uma massa de dados ficaria mais fácil mesmo

junior_ehlke
Creator III
Creator III
Author

Segue anexo para pedir opinião de vocês.

Hoje eu tenho uma DRE que realiza uma série de cálculos, então eu fiz as fórmulas em variáveis. Desta forma, nos campos eu somo $(=variável1 )+ $(=variável2) e assim por diante, quando eu jogo essas variáveis na tabela ela não funciona quando tenho Aggr() na fórmula, ai eu tenho que abrir e fazer sum(aggr(toda a conta enorme1)) + sum(aggr(toda a conta enorme2)) aumentando a margem de erro em alguma alteração.

Acham que tem uma forma mais fácil de resolver isso ou vou ter que abrir toda a conta dentro da tabela mesmo?

nicolett_yuri

Hamilton, adicionei o %Dim em seu AGGR e funcionou. Seu problema é adicionar  %Dim na variável? Você vai utilizar essa variável em outros lugares?

Minha opinião: Sou contra utilizar muitos objetos de texto em uma tabela para forçar um relatório se parecer com qualquer coisa que o usuário deseja, pois:

  1. Perca de performance na aplicação
  2. Difícil manutenção de código (pode não ser para você, mas e se outro analista for dar manutenção no código?)
  3. Difícil manutenção de layout
  4. Se o usuário perguntar porque não pode exportar essa tabela para o excel a sua casa cai rsrs (só macro para te salvar ou montar um report para exportar em pdf).
junior_ehlke
Creator III
Creator III
Author

Boa tarde Yuri, isso mesmo, o meu problema é adicionar o %Dim na variável pois posso utilizar elas em outros gráficos por exemplo, ou fazer algum outro relatório. Fiz um laboratório com duas aplicações, uma delas com os objetos textos para simular uma DRE visualmente agradável e outra delas com o códio dentro da Tabela.

Resultado:

Por incrível que pareça, a cada seleção que eu faço no Projeto com os Objetos textos, eu tenho o resultado esperado entre 3 e 4 segundos, a mesma seleção no projeto com o gráfico de tabela demora entre 16 a 18 segundos e o mais agravante, o processador (Xeon 8 núcleos) trava em 100% até mostrar o resultado, ou seja, servidor travado por 15 segundos a cada seleção.

Neste caso, vou deixar a tabela gráfica minimizada para exportar para o Excel caso o usuário desejar, assim ela não realiza os cálculos.

Talvez alguma coisa eu devo ter feito errado, mas eu comparei os dois projetos e um teve um desempenho melhor que o outro.