Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde
Estou desenvolvendo uma aplicação num cliente onde compreenderá todas as análises do Orçamento hoje realizadas via excel pelo QlikView. Porém estou na 5ª aba, uma das mais complexas, onde tenho 3 containers, cada um com aprox 15 relatórios dinámicos, com fórmulas parecidas com essa:
(SUM({<ATIVO_SN={"S"}, PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"14"},CUSTO_C={"7253","7351","7352","7353","7354","7355","7803","7806","7813","7814","7806"}, CONTA_C={"*"}-{"3416"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"86"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7401","7402","7403","7404","7405","7803","7806","7813","7814"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"24"},CUSTO_C={"7406","7803","7806","7813","7814"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"50"},CUSTO_C={"7401","7402","7403","7404","7405","7406","7407","7408","7409","7410","7411","7412","7803","7806","7813","7814"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"91"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"72"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"73"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"12"},CUSTO_C={"7451","7803","7806","7813","7814"},CONTA_C={"*"}-{"3421"}>}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"69"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"84"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"85"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"}, CONTA_C={"3421"}>} VL_GASTOS_ORC))
/
(before(SUM({<ATIVO_SN={"S"}, PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"14"},CUSTO_C={"7253","7351","7352","7353","7354","7355","7803","7806","7813","7814","7806"}, CONTA_C={"*"}-{"3416"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"86"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7401","7402","7403","7404","7405","7803","7806","7813","7814"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"24"},CUSTO_C={"7406","7803","7806","7813","7814"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"50"},CUSTO_C={"7401","7402","7403","7404","7405","7406","7407","7408","7409","7410","7411","7412","7803","7806","7813","7814"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"91"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"13"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"72"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"73"},CUSTO_C={"7305"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"12"},CUSTO_C={"7451","7803","7806","7813","7814"},CONTA_C={"*"}-{"3421"}>}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"69"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"84"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"},PACOTE_C={"1","2","3","4","5","6","7","8","9","10","11"},UNIDADE_C={"85"},CUSTO_C={"7251","7252","7254"} >}VL_GASTOS_ORC)
+SUM({<ATIVO_SN={"S"}, CONTA_C={"3421"}>} VL_GASTOS_ORC)))-1
Essa é apenas uma de aprox 4 cada relatório.
Quando salvo o qvw, ela não abre mais essa aba, fica pensando ...
Alguem pode dar uma sugestão de como melhorar a performance? Crio variáveis para todas as expressões??
Fazer tudo na parte do Script. Evitar usar formulas muito complexas em expressões, que nem no seu caso. Eu estudaria essas condições e aplicaria tudo na parte do Script, assim na hora de aplicar as expressões não prejudicaria a performance do relatório
Concordo com o Leonardo.
Estou desenvolvendo a DRE por loja na empresa onde trabalho e uma das formas para contabilizar todas as contas foi passar todo o cálculo par o script de carga.
No meu caso criei tabelas agrupadas até o nível desejado e as expressões de cálculos utilizei na maioria das vezes o Sum(If()). Assim pude realizar os cálculos no script seguindo as regras que utilizaria no objeto com os Set Analysis.
Tente desta forma
Um abraço!
Bom dia e obrigado pelo retorno. Pode me passar algum exemplo de como aplicar essas condições no script?
Nunca fiz isso .
Eu estava declarando todas as minhas formulas como variáveis no script,
SET R#Orçado_Geral=SUM({<MARCA_C={"*"}>}VL_RECEITAS_ORC);
segue abaixo um exemplo mais básico, se puder, retornem com um exemplo utilizando ele.
SUM({<UNIDADE_C={"*"}-{"18","40","11","60","61","27","74","75"},ATIVO_SN={"S"}>}VL_GASTOS_ORC)
Abraço
Um exemplo:
Sum(If(UNIDADE <> Match(UNIDADE,'18','40','11','60','61','27','74','75'),
If(ATIVO_SN = 'S',
VL_GASTOS_ORC
)
)
Abraço!
Apenas incluir a expressão utilizando o IF no script? como faço para carregar este calculo no relatório depois?
Me desculpem a ignorância, é que estou desenvolvendo a pouco tempo..
Nomeia a expressão com o alias (as) e depois no objeto faça apenas um simples Sum().
Exemplo: Para o grupo de unidade ('18','40','11','60','61','27','74','75') eu posso nomear no script de carga como [Unidade 1].
Depois no objeto é só incluir um Sum([Unidade 1]).
Dessa forma??
Exatamente.
Mas não se esqueça de que deverás fazer um group by em sua tabela. Deste modo, inclua em seu agrupamento apenas os campos que serão utilizados.
Nunca utilizei GROUP BY..