Funcións Blank, Coalesce, IsBlank e IsEmpty en Power Apps

Comproba se un valor está baleiro ou unha táboa non contén rexistros e fornece unha forma de crear valores en branco.

Visión xeral

En branco é un marcador de posición de "ningún valor" ou "valor descoñecido". Por exemplo, a propiedade Seleccionado dun control de Caixa de combinación está en branco se o usuario non fixo unha selección. Moitas fontes de datos poden almacenar e devolver valores NULOS, representados en Power Apps como en branco.

Calquera propiedade ou valor calculado en Power Apps pode estar en branco. Por exemplo, un valor booleano normalmente ten un dos dous valores: verdadeiro ou falso. Pero ademais destes dous, tamén pode estar en branco, indicando que o estado non é coñecido. Isto é semellante a Microsoft Excel, onde unha cela dunha folla de traballo comeza en branco sen contidos pero pode manter os valores VERDADEIRO ou FALSO (entre outros). En calquera momento, pódese eliminar o contido da cela e devolvela ao estado en branco.

Cadea baleira refírese a unha cadea que non contén caracteres. A función Len devolve cero para tal cadea e pódese escribir en fórmulas como dúas comiñas dobres sen nada polo medio "". Algúns controis e fontes de datos usan unha cadea baleira para indicar unha condición "sen valor". Para simplificar a creación de aplicacións, as funcións IsBlank e Coalesce comproban se hai valores en branco ou cadeas baleiras.

No contexto da función IsEmpty, baleiro é específico para táboas que non conteñen rexistros. A estrutura da táboa pode estar intacta e completa con nomes de columna, pero non hai datos na táboa. Unha táboa pode comezar como baleira, asumir rexistros e deixar de estar baleira e, a continuación, que os rexistros sexan eliminados e de novo estar baleira.

Nota

Estamos nun período de transición. Ata agora, en branco tamén se empregou para informar de erros, imposibilitando diferenciar entre un "sen valor" válido e un erro. Por este motivo, neste momento, almacenar valores en branco só é compatible con coleccións locais. Pode almacenar valores en branco noutras fontes de datos se activa a función experimental "Xestión de erros a nivel de fórmula" no menú Ficheiro, Configuración da aplicación, Configuración avanzada, Funcións experimentais. Estamos a traballar activamente para rematar esta característica e completar a separación adecuada entre valores en branco e erros.

Descripción

A función Blank devolve un valor en branco. Use isto para almacenar un valor NULO nunha orixe de datos que admita estes valores, eliminando de xeito efectivo calquera valor do campo.

A función IsBlank comproba se hai un valor en branco ou unha cadea baleira. A proba inclúe cadeas baleiras para facilitar a creación de aplicacións xa que algunhas fontes de datos e controis usan unha cadea baleira cando non hai ningún valor presente. Para comprobar específicamente se hai un valor en branco, use if( Value = Blank(), ... en vez de IsBlank.

A función Coalesce avalía os seus argumentos en orde e devolve o primeiro valor que non é un valor en branco ou unha cadea baleira. Use esta función para substituír un valor en branco ou unha cadea baleira cun valor diferente, pero deixe os valores non en branco e as cadeas non baleiras sen modificar. Se todos os argumentos son valores en branco ou cadeas baleiras, entón a función devolve en branco, polo que Coalesce é un bo xeito de converter cadeas baleiras en valores en branco. Todos os argumentos de Coalesce deben ser do mesmo tipo; por exemplo, non pode mesturar números con cadeas de texto.

Coalesce( value1, value2 ) é o equivalente máis conciso de If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) e non precisa que valor1 e valor2 se avalíen dúas veces. A función If devolve en branco se non hai unha fórmula "outro", como é o caso de aquí.

A función IsEmpty comproba se unha táboa contén algún rexistro. É equivalente a usar a función CountRows e comprobar se hai cero. Pode buscar erros de orixes de datos combinando IsEmpty coa función Errors.

O valor de retorno para ambos IsBlank e IsEmpty é un booleano verdadeiro ou falso.

Sintaxe

Blank()

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

  • Value(s): obrigatorio. Valores que se van comprobar. Cada valor avalíase en orde ata atopar un valor que non sexa en branco nin unha cadea baleira. Non se avalían os valores posteriores a este punto.

IsBlank( Value )

  • Valor: necesario. Valor para comprobar se hai un valor en branco ou cadea baleira.

IsEmpty( Table )

  • Table: Obrigatorio. Táboa para comprobar se hai rexistros.

Exemplos

En branco

Nota

Neste momento, o seguinte exemplo só funciona para coleccións locais. Pode almacenar valores en branco noutras fontes de datos se activa a función experimental "Xestión de erros a nivel de fórmula" no menú Ficheiro, Configuración da aplicación, Configuración avanzada, Funcións experimentais. Estamos a traballar activamente para rematar esta característica e completar a separación entre valores en branco e erros.

  1. Cree unha aplicación desde cero e engada un control Botón.

  2. Axuste a propiedade OnSelect do botón nesta fórmula:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. Obteña a vista previa da súa aplicación, faga clic ou toque o botón que engadiu e logo peche a Vista previa.

  4. No menú Ficheiro, prema ou toque Coleccións.

    A colección Cidades aparece, e mostran un rexistro con "Seattle" e "Chuvioso":

    Colección que mostra Seattle con tempo Chuvioso

  5. Faga clic ou toque a frecha cara atrás para volver ao espazo de traballo predeterminado.

  6. Engada un control Etiqueta e configure a súa propiedade Text nesta fórmula:

    IsBlank( First( Cities ).Weather )
    

    A etiqueta mostra falso porque o campo Tempo contén un valor ("Chuvioso").

  7. Engada un segundo botón e axuste a súa propiedade OnSelect nesta fórmula:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. Obteña a vista previa da súa aplicación, faga clic ou toque o botón que engadiu e logo peche a Vista previa.

    O campo O tempo do primeiro rexistro en Cidades substitúese por en branco, e elimínase o valor "chuvioso" que había alí anteriormente.

    Colección que mostra Seattle cun campo O tempo en branco

    A etiqueta mostra verdadeiro porque o campo Tempo xa non contén un valor.

Coalesce

Fórmula Descripción Resultado
Coalesce( Blank(), 1 ) Comproba o valor devolto da función Blank, que sempre devolve un valor en branco. Dado que o primeiro argumento está en branco, a avaliación continúa co seguinte argumento ata que se topa un valor non en branco e unha cadea non baleira. 1
Coalesce( "", 2 ) Comproba o primeiro argumento, que é unha cadea baleira. Dado que o primeiro argumento é unha cadea baleira, a avaliación continúa co seguinte argumento ata que se topa un valor non en branco e unha cadea non baleira. 2
Coalesce( Blank(), "", Blank(), "", 3, 4 ) Coalesce comeza ao comezo da lista de argumentos e avalía cada argumento á súa vez ata que atopa un valor non en branco e unha cadea non baleira. Neste caso, os catro primeiros argumentos devolven en branco ou unha cadea baleira, polo que a avaliación continúa co quinto argumento. O quinto argumento non está en branco nin é unha cadea baleira, polo que a avaliación detense aquí. Devólvese o valor do quinto argumento e o sexto argumento non se avalía. 3
Coalesce( "" ) Comproba o primeiro argumento, que é unha cadea baleira. Debido a que o primeiro argumento é unha cadea baleira, e non hai máis argumentos, a función devolve en branco. en branco

IsBlank

  1. Cree unha aplicación dende cero, engada un control de entrada de texto e noméeo FirstName.

  2. Engada unha etiqueta e configure a súa propiedade Texto nesta fórmula:

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

    Por defecto, a propiedade Texto dun control de entrada de texto está definida en "Entrada de texto". Debido a que a propiedade contén un valor, non está en branco e na etiqueta non aparece ningunha mensaxe.

  3. Elimine todos os caracteres do control de entrada de texto, incluídos os espazos.

    Dado que a propiedade Texto xa non contén caracteres, é unha cadea baleira e IsBlank( FirstName.Text ) será verdadeiro. Móstrase a mensaxe de campo obrigatorio.

Para obter información sobre como realizar a validación usando outras ferramentas, consulte a función Validate e traballar con fontes de datos.

Outros exemplos:

Fórmula Descripción Resultado
IsBlank( Blank() ) Comproba o valor devolto da función Blank, que sempre devolve un valor en branco. true
IsBlank( "" ) Cadea que non contén caracteres. true
IsBlank( "Hello" ) Cadea que contén un ou varios caracteres. false
IsBlank( AnyCollection ) Como a colección existe, non está en branco, aínda que non conteña rexistros. Para buscar unha colección baleira, use IsEmpty no seu lugar. false
IsBlank( Mid( "Hello", 17, 2 ) ) O carácter inicial de Mid está máis aló do final da cadea. O resultado é unha cadea baleira. true
IsBlank( If( false, false ) ) Unha función If sen ElseResult. Como a condición é sempre false, ista función If sempre volve en branco. true

IsEmpty

  1. Cree unha aplicación desde cero e engada un control Botón.

  2. Axuste a propiedade OnSelect do botón nesta fórmula:

    Collect( IceCream, { Flavor: "Strawberry", Quantity: 300 }, { Flavor: "Chocolate", Quantity: 100 } )

  3. Obteña a vista previa da súa aplicación, faga clic ou toque o botón que engadiu e logo peche a Vista previa.

    Unha colección chamada IceCream creouse e contén estes datos:

    Esta colección ten dous rexistros e non está baleira. IsEmpty ( IceCream ) devolve false e CountRows ( IceCream ) devolve 2.

  4. Engada un segundo botón e axuste a súa propiedade OnSelect nesta fórmula:

    Clear( IceCream )

  5. Obteña a vista previa da súa aplicación, faga clic ou toque o segundo botón e logo peche a Vista previa.

    A colección está agora baleira:

    A función Clear elimina todos os rexistros dunha colección, obtendo unha colección baleira. IsEmpty ( IceCream ) devolve true e CountRows ( IceCream ) devolve 0.

Tamén pode usar IsEmpty para comprobar se unha táboa calculada está baleira, como mostran estes exemplos:

Fórmula Descripción Resultado
IsEmpty( [ 1, 2, 3 ] ) A táboa dunha única columna contén tres rexistros e, polo tanto, non está baleira. false
IsEmpty( [ ] ) A táboa dunha única columna non contén rexistros e está baleira. true
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) A táboa dunha única columna non contén valores superiores a 5. O resultado do filtro non contén rexistros e está baleiro. true