Looplex Knowledge Base
IsNotEmpty
O tube isNotEmpty verifica se uma variável ou campo recebeu alguma resposta, seja pelo usuário ou pelo programador.
Formato:
<var>.isNotEmpty() isNotEmpty(<var>)
Parâmetros:
- *var: variável ou campo a ser verificado, de qualquer tipo.
Retorno:**
- O tube dá um retorno verdadeiro (true) caso a variável tenha uma resposta, e falso (false) caso contrário.
- Como o retorno é booleano (true ou false), pode ser utilizado como condição de operadores como if, elseif e printf_tube. Isto significa que verificaremos se a variável ou campo recebeu alguma resposta ou não (apenas para relembrar, como se trata de um desvio condicional, é necessário ter sempre uma condição e consequência a partir do retorno ser verdadeiro ou falso).
Exemplos:
- isNotEmpty com printIf. Um uso comum do tube é para fazer o print de variáveis ou campos facultativos. Considere uma struct de endereço, em que todos os campos são obrigatórios com exceção de
[complemento]
. Nesse caso, usa-se o tube printf_tube para avaliar se[complemento]
foi preenchido pelo usuário, condicionando o print à existência ou não de uma resposta. Nesses casos também é comum que o estado ([uf]
) seja dado por uma lista associativa, utilizando o tube get_by_key_tube para imprimir somente a sigla do estado selecionado.
print <endereco.rua> & ", nº " & <endereco.numero> & printIf(<endereco.complemento>.isNotEmpty(), ", " & <endereco.complemento>) & ", " & <endereco.bairro> & ", " & <endereco.cidade> & " – " & <endereco.uf>.getByKey("Sigla") & ", CEP: " & <endereco.cep> & "."
- isNotEmpty com máscara de data. Outro uso comum do tube é na definição de máscara de data a partir de uma variável ou campo preenchido anteriormente. Considere um processo trabalhista em que se deseja perguntar a data da ocorrência do acidente em local de trabalho(
[dataAcidente]
). A data do acidente é necessariamente anterior à data de ajuizamento da ação ([dataAjuizamento]
). Assim, caso a data de ajuizamento da ação já tenha sido preenchida, ela é utilizada como data máxima da máscara para a data de acidente. Caso ainda não tenha sido preenchida, utiliza-se a data atual como limite (através do tube today_tube).
if (<dadosProcesso.dataAjuizamento>.isNotEmpty()) { <dadosAcidente.dataAcidente>.mask = "[...;" & <dadosProcesso.dataAjuizamento> & "]"}else { <dadosAcidente.dataAcidente>.mask = "[...;" & today() & "]"}
- isNotEmpty com endsWith. É muito comum que se peça para o usuário preencher parágrafos completos com variáveis do tipo Text. Nesses casos, contudo, o usuário pode se esquecer de colocar o ponto final do parágrafo. Assim, combinam-se printf_tube, isNotEmpty e ends_with_tube para avaliar se o parágrafo foi preenchido e se termina com ponto final. Caso termine, nada adicional é impresso. Caso contrário, imprime-se o ponto final.
print <paragAdicional> & printIf(<paragAdicional>.isNotEmpty() AND <paragAdicional>.endsWith("."), "", ".")
Ressalta-se que o sistema não aceita o uso do tube ends_with_tube quando a variável estiver vazia. Por isso, protege-se o seu uso com isNotEmpty, garantido que só será acionado quando houver um texto para ser avaliado.
Edit this page on GitHub