+2 votos
100 visitas
Olá,

Necessito fazer uma operação matemática em campos a serem exibidos em uma visão, utilizei o seguinte trecho de codigo para tal implmentado da userinterdace da classe:

     [ViewLoaded]
        public void ViewLoaded()
        { ....
        }

[ViewLoaded(EntityViewName = "FN_MOVIMENTACOES.ZOOMDEPARCELAS.GRID")]
public void ViewLoadedPaginaGeral()
{
   this.Desconto +=  (this.Abatimento.HasValue ? this.Abatimento.Value : 0);
}

Realizei essa implementação e nao surtiu efeito, minha dúvida posso fazer esse tipo de operação na userinterface? se sim o que pode estar errado ou aonde seria a melhor estratégia de implmentação para esse caso, pois terei que fazer mais operações e e para outros campos.

Obrigado
por (11 pontos) | 100 visitas

1 Resposta

0 votos
Pode fazer este tipo de operação no userinterface sim !

Tem bons exemplos na entidade da ATItem.userinterface, seguem abaixo algumas dicas:

a) Separar a lógica de preenchimento do campo num método para que possa ser acionado em todos os pontos necessários

b) O exemplo que foi citado tem apenas um campo (Abatimento) que afeta o valor de outro campo (Desconto), então este método citado acima precisa ser chamado no changed do campo Abatimento, não pode ser chamado no Loaded. Muitas vezes o valor do campo é afetado por vários outros campos, então precisa chamar o método em todos os changes. E tem ainda outros casos onde um campo afeta o valor de vários campos, então no changed dele vai chamar vários métodos... enfim, todos estes exemplos podem ser encontrados na ATItem.userinterface.

c) Outra dica de ouro é usar bastantes caches nos códigos de presentation, como este, pois a performance é crucial nestes pontos, na ATItem também tem exemplos de usos de caches.
por (569 pontos)

Perguntas relacionadas

+2 votos
1 resposta
0 votos
1 resposta
Melhores Aug 2025
    200 pontos
    Melhores 2025 Jul 28 - Aug 03
    1. Larson

      156 Pontos

    2. danilo.pereira

      96 Pontos

    3. danilo.pereira

      96 Pontos

    4. danilo.pereira

      96 Pontos

    5. luciano.fronza

      61 Pontos

    6. luciano.fronza

      61 Pontos

    7. luciano.fronza

      61 Pontos

    8. diuari.molinari

      52 Pontos

    9. diuari.molinari

      51 Pontos

    10. diuari.molinari

      51 Pontos

    517 perguntas
    566 respostas
    389 comentários
    704 usuários