Funções Blank, Coalesce, IsBlank e IsEmpty

Aplica-se a: Aplicações de tela Fluxos de ambiente de trabalho Colunas de fórmula do Dataverse Aplicações condicionadas por modelo Power Platform CLI

Testa se um valor está em branco ou uma tabela não contém registos e oferece uma forma de criar valores blank.

Descrição Geral

Em branco é um marcador de posição para "sem valor" ou "valor desconhecido". Por exemplo, a propriedade Selected de um controlo Combo box está em branco se o utilizador não tiver efetuado uma seleção. Muitas origens de dados podem armazenar e devolver valores NULOS, que são representados no Power Apps como blank.

Qualquer propriedade ou valor calculado no Power Apps pode ser blank. Por exemplo, um valor Booleano normalmente tem um dos dois valores: true ou false. Mas além destes dois, também pode estar blank para indicar que o estado não é conhecido. Isto é semelhante ao Microsoft Excel, em que uma célula da folha de cálculo começa em branco sem conteúdos, mas pode englobar os valores TRUE ou FALSE (entre outros). Em qualquer altura, os conteúdos da célula podem ser novamente limpos, devolvendo-o para um estado blank.

Cadeia vazia refere-se a uma cadeia que não contém carateres. A função Len devolve zero para este tipo de cadeia de caracteres, que pode ser escrita numa fórmula como duas aspas duplas com nada entre "". Alguns controlos e origens de dados utilizam uma cadeia vazia para indicar uma condição "sem valor". Para simplificar a criação de aplicações, as funções IsBlank e Coalesce testam para valores blank ou cadeias vazias.

No contexto da função IsEmpty, empty é específico de tabelas que não contêm quaisquer registos. A estrutura da tabela pode estar intacta, completa com nomes de coluna, mas não existem dados na tabela. Uma tabela pode começar vazia, aceitar registos e deixar de estar vazia e, em seguida, remover os registos e voltar a estar vazia.

Nota

Estamos num período de transição. Até agora, blank também foi utilizado para reportar erros, o que impossibilita a distinção um "sem valor" válido de um erro. Por este motivo, neste momento, armazenar valores blank é suportado apenas para coleções locais. Pode armazenar valores em branco noutras origens de dados se ativar a funcionalidade experimental Gestão de erros ao nível da fórmula em Definições>Funcionalidades futuras>Experimental. Estamos a trabalhar ativamente para concluir esta funcionalidade e concluir a separação adequada dos valores blank a partir de erros.

Em branco

Aplica-se a: Aplicações de tela Aplicações condicionadas por modelo colunas de fórmulas do Dataverse

A função Blank devolve um valor blank. Utilize esta opção para armazenar um valor NULO numa origem de dados que suporta estes valores, removendo efetivamente qualquer valor do campo.

IsBlank

Aplica-se a: Aplicações de tela Aplicações condicionadas por modelo

A função IsBlank testa um valor blank ou uma cadeia vazia. O teste inclui cadeias vazias para facilitar a criação de aplicações, uma vez que algumas origens de dados e controlos utilizam uma cadeia vazia quando não está presente qualquer valor. Para testar especificamente a utilização de um valor blank, utilize if( Value = Blank(), ... em vez de IsBlank. A função IsBlank considera as tabelas vazias como não sendo em branco e a função IsEmpty deve ser utilizada para testar uma tabela.

Ao ativar gestão de erro para apps existentes, considere substituir IsBlank por IsBlankOrError para preservar o comportamento da app existente. Antes da adição do tratamento de erros, foi utilizado um valor em branco para representar valores nulos das bases de dados e valores de erro. O manuseamento de erros separa estas duas interpretações de branco que podem alterar o comportamento das aplicações existentes que continuam a utilizar IsBlank.

O valor devolvido para IsBlank é um booleano verdadeiro ou falso.

Coalesce

Aplica-se a: Aplicações de tela Aplicações condicionadas por modelo

A função Coalesce avalia os argumentos por ordem e devolve o primeiro valor que não esteja blank ou uma cadeia vazia. Utilize esta função para substituir um valor em blank ou uma cadeia vazia por um valor diferente, mas deixar os valores de cadeia de caracteres não blank inalterados. Se todos os argumentos forem cadeias embranco ou vazias, então a função volta a ficar em branco, tornando Coalesce uma boa forma de converter cadeias vazias em valores em branco.

Coalesce( value1, value2 ) é o equivalente mais conciso de If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) e não exige que value1 e value2 sejam avaliados duas vezes. A função If devolve blank se não existir nenhuma fórmula "else" como neste caso.

Todos os argumentos do Coalesce têm de ser do mesmo tipo; por exemplo, não pode misturar números com cadeias de texto. O valor de retorno de Unir é deste tipo comum.

IsEmpty

Aplica-se a: Aplicações de tela Aplicações condicionadas por modelo

A função IsEmpty testa se uma tabela contém algum registo. É equivalente a utilizar a função CountRows e a verificação de zero. Pode verificar a existência de erros de origem de dados ao combinar IsEmpty com a função Errors.

O valor devolvido para IsEmpty é um Booleano verdadeiro ou falso.

Sintaxe

Blank()

Coalesce( Value1 [, Value2, ... ] )

  • Value(s) – obrigatório. Valores a testar. Cada valor é avaliado por ordem até ser encontrado um valor que não seja blank e não uma cadeia vazia. Os valores após este ponto não são avaliados.

IsBlank( Value )

  • Value – Obrigatório. Valor a testar para um valor blank ou cadeia vazia.

IsEmpty( Table )

  • Table – Obrigatório. Tabela para testar os registos.

Exemplos

Em branco

Nota

Neste momento, o exemplo seguinte só funciona para coleções locais. Pode armazenar valores em branco noutras origens de dados se ativar a funcionalidade experimental Gestão de erros ao nível da fórmula em Definições>Funcionalidades futuras>Experimental. Estamos a trabalhar ativamente para concluir esta funcionalidade e concluir a separação dos valores blank a partir de erros.

  1. Crie uma aplicação a partir do zero e adicione um controlo Button.

  2. Defina a propriedade OnSelect do botão como esta fórmula:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. Pré-visualize a sua aplicação, clique ou toque no botão que adicionou e, em seguida, feche a Pré-visualização.

  4. No menu Ficheiro, clique ou toque em Coleções.

    A coleção Cities é apresentada, mostrando um registo com "Seattle" e "Rainy":

    Coleção a mostrar Seattle com meteorologia Rainy.

  5. Clique ou toque na seta para baixo para regressar à área de trabalho predefinida.

  6. Adicione um controlo Label e defina a respetiva propriedade Text para esta fórmula:

    IsBlank( First( Cities ).Weather )
    

    A etiqueta mostra false porque o campo Weather contém um valor ("Rainy").

  7. Adicione um segundo botão e defina a respetiva propriedade OnSelect para esta fórmula:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. Pré-visualize a sua aplicação, clique ou toque no botão que adicionou e, em seguida, feche a Pré-visualização.

    O campo Weather do primeiro registo em Cities é substituído por blank, removendo o "Rainy" anterior.

    Coleção a mostrar Seattle com um campo Weather em branco.

    A etiqueta mostra true porque o campo Weather já não contém um valor.

Coalesce

Fórmula Descrição Resultado
Coalesce( Blank(), 1 ) Testa o valor devolvido da função Blank, que devolve sempre um valor blank. Uma vez que o primeiro argumento está blank, a avaliação continua com o argumento seguinte até encontrar um valor não blank ou uma cadeia não vazia. 1
Coalesce( "", "2" ) Testa o primeiro argumento que é uma cadeia vazia. Uma vez que o primeiro argumento é uma cadeia vazia, a avaliação continua com o argumento seguinte até encontrar um valor não blank ou uma cadeia não vazia. 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Coalesce começa no início da lista de argumentos e avalia cada argumento à vez até encontrar um valor não blank e uma cadeia não vazia. Neste caso, os primeiros quatro argumentos devolvem blank ou uma cadeia vazia, pelo que a avaliação continua para o quinto argumento. O quinto argumento é uma cadeia não blank e não vazia para a avaliação parar aqui. É devolvido o valor do quinto argumento e o sexto argumento não é avaliado. 3
Coalesce( "" ) Testa o primeiro argumento que é uma cadeia vazia. Uma vez que o primeiro argumento é uma cadeia vazia e não existem mais argumentos, a função retorna blank. em branco

IsBlank

  1. Crie uma aplicação a partir do zero, adicione um controlo de entrada de texto e dê-lhe o nome FirstName.

  2. Adicione uma etiqueta e defina a propriedade Text para esta fórmula:

    If( IsBlank( FirstName.Text ), "First Name is a required field." )
    

    Por predefinição, a propriedade Text de um controlo de entrada de texto está definida como "Text input". Porque a propriedade contém um valor, não está em branco e a etiqueta não apresenta qualquer mensagem.

  3. Remova todos os carateres do controlo da entrada de texto, incluindo quaisquer espaços.

    Uma vez que a propriedade Text já não contém quaisquer carateres, é uma cadeia vazia e IsBlank( FirstName.Text ) será true. É apresentada a mensagem de campo obrigatório.

Para obter informações sobre como realizar a validação com outras ferramentas, veja a função Validate e trabalhar com origens de dados.

Outros exemplos:

Fórmula Descrição Resultado
IsBlank( Blank() ) Testa o valor devolvido da função Blank, que devolve sempre um valor blank. true
IsBlank( "" ) Uma cadeia que não contém carateres. true
IsBlank( "Hello" ) Uma cadeia que contém um ou mais carateres. false
IsBlank( AnyCollection ) Uma vez que a coleção existe, não está em branco, mesmo que não tenha quaisquer registos. Para verificar a existência de uma coleção vazia, utilize IsEmpty em vez disso. false
IsBlank( Mid( "Hello", 17, 2 ) ) O caráter de partida para Mid ultrapassa o fim da cadeia. O resultado é uma cadeia vazia. true
IsBlank( If( false, false ) ) Uma função If sem ElseResult. Uma vez que a condição é sempre false, este If devolve sempre blank. true

IsEmpty

  1. Crie uma aplicação a partir do zero e adicione um controlo Button.

  2. Defina a propriedade OnSelect do botão como esta fórmula:

    Collect( Gelado, { Sabor: "Morango", Quantidade: 300 }, { Sabor: "Chocolate", Quantidade: 100 } )

  3. Pré-visualize a sua aplicação, clique ou toque no botão que adicionou e, em seguida, feche a Pré-visualização.

    Uma coleção designada IceCream é criada e contém estes dados:

    Uma tabela com sabores de Morango e Chocolate com quantidade 300 e 100.

    Esta coleção tem dois registos e não está vazia. IsEmpty( IceCream ) returns false, and CountRows( IceCream ) returns 2.

  4. Adicione um segundo botão e defina a respetiva propriedade OnSelect para esta fórmula:

    Clear( IceCream )

  5. Pré-visualize a sua aplicação, clique ou toque no segundo botão e, em seguida, feche a Pré-visualização.

    A coleção está agora vazia:

    Uma coleção com Sabor e Quantidade como coleção vazia.

    A função Clear remove todos os registos de uma coleção, o que resulta numa recolha vazia. IsEmpty( IceCream ) devolve true e CountRows( IceCream ) devolve 0.

Também pode utilizar IsEmpty para testar se uma tabela calculada estiver vazia, como é mostrado nestes exemplos:

Fórmula Descrição Resultado
IsEmpty( [ 1, 2, 3 ] ) A tabela de coluna única contém três registos e, por conseguinte, não está vazia. false
IsEmpty( [ ] ) A tabela de coluna única não contém registos e, por conseguinte, está vazia. verdadeiro
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) A tabela de coluna única não contém valores maiores que 5. O resultado do filtro não contém quaisquer registos e está vazio. true