4D v15 R2

Choose

  •  
 
4D v15 R2
Choose

Choose 


 

Choose ( Kriterium ; Wert {; Wert2 ; ... ; WertN} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
Kriterium  Boolean, Ganzzahl in Zu testender Wert
Wert  Ausdruck in Mögliche Werte
Funktionsergebnis  Ausdruck in Wert des Kriteriums

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