Este tópico explica como criar uma fórmula para transformar uma opção textual de um atributo do tipo Lista de Opções em um valor numérico. Por exemplo, no formulário abaixo, a opção selecionada no campo Nível de Satisfação gera um valor correspondente no campo Índice de Aprovação.
No exemplo, o campo Nível de Satisfação é um atributo do tipo Lista de Opções de seleção única, cujas opções são "Baixo", "Médio" e "Alto". Já o campo Índice de Aprovação é um atributo do tipo Fórmula de saída Número cujo valor é calculado baseado na opção selecionada no campo anterior. A fórmula neste atributo segue a estrutura abaixo. Observe que essa estrutura é semelhante à clássica "if-then-else", porém a função "IF" é substituída pelo operador ternário "?".
#resultado = (@nivel_satisfacao=='Baixo' ? 1 :
@nivel_satisfacao=='Médio' ? 2 :
@nivel_satisfacao=='Alto' ? 3 :
-1 );
#resultado
Nota: o operador ternário "?", mesmo quando encadeado com outros, deve sempre começar e terminar com parênteses.
Nesse caso, se for selecionada a opção "Baixo" no campo Nível de Satisfação, a fórmula do campo Índice de Aprovação resultará no valor 1.00. Da mesma forma, a opção "Médio" resultará no valor 2.00 e "Alto" em 3.00.
Cada linha da fórmula só é avaliada se as condições anteriores forem falsas. Se a primeira condição for verdadeira, o primeiro valor é retornado. Caso contrário, o operador ternário seguinte é avaliado e o processo se repete até que algum deles seja verdadeiro ou todas a condições sejam avaliadas. Caso nenhuma condição seja atendida, o último valor restante será utilizado (no exemplo acima, "-1").