4D v16.3

Choose

Página Inicial

 
4D v16.3
Choose

Choose 


 

Choose ( criterio ; valor {; valor2 ; ... ; valorN} ) -> Resultado 
Parâmetro Tipo   Descrição
criterio  Booleano, Inteiro in Valor a testar
valor  Expression in Valores possíveis
Resultado  Expression in Valor do critério

O comando Choose retorna um dos valores passados nos parâmetros valor1, valor2, etc. em função do valor do parâmetro criterio.


Pode passar um parâmetro criterio de tipo booleano ou numérico:

  • Se criterio for um booleano, Choose retorna valor1 se o booleano é igual a True e valor2 se o booleano é igual a False. Neste caso, o comando espera exatamente três parâmetros: criterio, valor1 e valor2.
  • Se criterio for um inteiro, Choose retorna o valor cuja posição corresponde a criterio. Atenção, a numeração dos valores começa em 0 (a posição de valor1 é 0). Neste caso, o comando espera ao menos dois parâmetros: criterio e valor1.


O comando aceita todo os tipos de dados para o/os parâmetro(s) valor, exceto imagens, ponteiros, BLOBS e arrays. Entretanto, deve ter certeza de que todos os valores passados sejam do mesmo tipo, 4D não realizará nenhuma verificação neste ponto.

Se nenhum valor corresponde ao critério, Choose retorna um valor “nulo” relativo ao tipo do parâmetro valor (por exemplo, 0 para o tipo numérico, “” para o tipo string, etc.).

Este comando permite gerar código conciso que substitui os testes de tipo “Case of” que ocupam várias linhas (ver exemplo 2). Também é muito útil nos lugares onde podem ser executadas fórmulas: editor de pesquisas, aplicar uma fórmula, editor de relatórios rápidos, coluna calculada de listbox, etc.

Este é um exemplo do uso típico deste comando com um critério de tipo booleano:

 vTitulo:=Choose([Pessoa]Masculino;"Sr";"Sra")

Este código é estritamente equivalente a:

 If([Pessoa]Masculino)
    vTitulo:="Sr"
 Else
    vTitulo:="Sra"
 End if

Este é um exemplo do uso típico deste comando com um critério de tipo numérico:

 vEstado:=Choose([Pessoa]Estado;"Solteiro";"Casado";'"Viúvo";"Separado")

Este código é estritamente equivalente a:

 Case of
    :([Pessoa]Estado=0)
       vEstado:="Solteiro"
    :([Pessoa]Estado=1)
       vEstado:="Casado"
    :([Pessoa]Estado=2)
       vEstado:="Viúvo"
    :([Pessoa]Estado=3)
       vEstado:="Separado"
 End case

 
PROPRIEDADES 

Produto: 4D
Tema: Ferramentas
Número 955

This command can be run in preemptive processes

 
HISTÓRIA 

Criado por: 4D v11 SQL

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)