Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Tenho um aplicativo em QVW onde tenho vários indicadores que possuem metricas diferentes de acordo com um filtro selecionado, como são muitos dados a aplicação acaba demorando muito para calcular os valores. Qual a melhor maneira de melhorar a performance da aplicação.
Basicamente estou usando um IF na expressão através do filtro Cod_Companhia
Seguem alguns exemplos das fórmulas de 3 indicadores.
Indicador 1 - INDENIZAÇÕES
=
IF(Cod_Companhia = '1024',
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT92','AT95'},
Dt_Estado_SGF_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
,
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT92','AT95'},
Dt_Actualizacao_Registo_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
))
INDICADOR 2 - VARIAÇÃO DAS PROVISÕES:
=Round(
IF(Cod_Companhia = '1024',
(
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'A'},
Provisao_Valida={'Y'}
>}
Valor_Provisao_Liquido_Cosseguro
)
-
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT90','AT91','AT92','AT95','AT96','AT100'},
Dt_Estado_SGF_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'M'},
Provisao_Valida={'Y'}
>}
Valor_Movimento_Provisoes
)
)
,
(
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'A'},
Provisao_Valida={'Y'}
>}
Valor_Provisao_Liquido_Cosseguro
)
-
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT90','AT91','AT92','AT95','AT96','AT100'},
Dt_Actualizacao_Registo_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'M'},
Provisao_Valida={'Y'}
>}
Valor_Movimento_Provisoes
)
)
),0.01)
INDICADOR 3 - CUSTO DO PERÍODO:
=
IF(Cod_Companhia = '1024',
(
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'A'},
Provisao_Valida={'Y'}
>}
Valor_Provisao_Liquido_Cosseguro
)
-
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AT50','AT51','AT52','AT55','AT56','AT57','AT58','AU50','AU51','AU52','AU55','AU56','AU60','RI', 'RD'},
Cod_Despesa_Pagmto={'*'}-{'AT92','AT95'},
Dt_Estado_SGF_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
Pagamento_Abater_Provisoes={'N'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT90','AT91','AT92','AT95','AT96','AT100'},
Dt_Estado_SGF_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'N'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'AT90','AT91','AT96','AT100'},
Dt_Estado_SGF_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'M'},
Provisao_Valida={'Y'}
>}
Valor_Movimento_Provisoes
)
)
,
(
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'A'},
Provisao_Valida={'Y'}
>}
Valor_Provisao_Liquido_Cosseguro
)
-
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'Y'},
Cod_Tipo_Recibo_Pagmto={'AT50','AT51','AT52','AT55','AT56','AT57','AT58','AU50','AU51','AU52','AU55','AU56','AU60','RI', 'RD'},
Cod_Despesa_Pagmto={'*'}-{'AT92','AT95'},
Dt_Actualizacao_Registo_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
Pagamento_Abater_Provisoes={'N'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'*'}-{'AT90','AT91','AT92','AT95','AT96','AT100'},
Dt_Actualizacao_Registo_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Cod_Estado_Pagmto={'EM', 'ENV', 'EEM', 'P'},
Indicador_Sem_Efeito_Pagmto={'Não'},
//Pagamento_Abater_Provisoes={'N'},
Cod_Tipo_Recibo_Pagmto={'AU20','AU21','AU22','AU26','AU30','AU31','AU32','AU35','AU36','AU70','AT20','AT31','AT32','AT70','IN','DS'},
Cod_Despesa_Pagmto={'AT90','AT91','AT96','AT100'},
Dt_Actualizacao_Registo_Pagmto={$(vPeriodSel)}
>}
Valor_Pagamento_Liquido_Cosseguro
)
+
sum(
{<
Dt_Criacao_Registo_Provisoes={$(vPeriodSel)},
Soft_Deleted_Provisoes={'N'},
Tipo_Reserva_Provisao={'M'},
Provisao_Valida={'Y'}
>}
Valor_Movimento_Provisoes
)
))