Comparteix a través de


Funcions en blanc, Coalesce, IsBlank i IsEmpty

S'aplica a: Aplicacions del llenç Fluxos d'escriptori Columnes Dataverse de fórmules Aplicacions basades en models Power Pages Power Platform CLI

Prova si un valor és en blanc o si una taula no conté registres i proporciona una manera de crear valors en blanc.

Informació general

Blank és un contenidor per a "cap valor" o "valor desconegut". Per exemple, la propietat Selected del control Combo box és blank si l'usuari no ha fet cap selecció. Moltes fonts de dades poden emmagatzemar i retornar valors NULL, que es representen al Power Apps en blanc.

Qualsevol propietat o valor calculat del Power Apps pot ser en blanc. Per exemple, un valor booleà normalment té un dels dos valors: true o false. Però a més d'aquests dos, també pot ser en blanc per indicar que no se'n coneix l'estat. Això és similar al Microsoft Excel, en què una cel·la de full de càlcul comença en blanc i sense contingut, però pot tenir els valors TRUE o FALSE (entre d'altres). Es pot esborrar el contingut de la cel·la en qualsevol moment i tornar-la a un estat en blanc.

Cadena buida fa referència a una cadena que no conté caràcters. La funció Len torna zero per a aquesta cadena i es pot escriure en fórmules com a dues cometes dobles sense res al mig "". Alguns controls i fonts de dades utilitzen una cadena buida per indicar que es tracta d'una condició "no valor". Per simplificar la creació d'aplicacions, les funcions IsBlank i Coalesce per als valors en blanc o les cadenes buides.

En el context de la funció IsEmpty, buit és específic per a taules que no contenen registres. L'estructura de la taula pot estar intacta, completa amb noms de columna, però sense dades a la taula. Una taula pot començar com a buida, prendre registres i deixar d'estar-ho. Després, se'n poden suprimir els registres i tornar a estar buida.

Nota

Ens trobem en un període de transició. Fins ara, en blanc també s'ha utilitzat per notificar errors, de manera que és impossible diferenciar un "no valor" vàlid d'un error. Per aquesta raó, en aquest moment, l'emmagatzematge de valors en blanc només s'admet en col·leccions locals. Podeu emmagatzemar valor en blanc en altres fonts de dades si activeu la funció experimental Administració d'errors a nivell de fórmula a Configuració>Pròximes característiques>Experimentals. Estem treballant activament per acabar aquesta característica i completar la correcta separació dels valors en blanc dels errors.

En blanc

S'aplica a: Aplicacions del llenç Columnes de fórmules d'aplicacions Dataverse basades en models

La funció Blank torna un valor en blanc. Utilitzeu-la per emmagatzemar un valor NULL en una font de dades que admeti aquests valors, la qual cosa suprimeix eficaçment qualsevol valor del camp.

IsBlank

S'aplica a: Aplicacions del llenç Aplicacions basades en models

La funció IsBlank prova si hi ha un valor en blanc o una cadena buida. La prova inclou cadenes buides per facilitar la creació d'aplicacions, ja que hi ha fonts de dades i controls que utilitzen una cadena buida quan no hi ha cap valor present. Per provar específicament si un valor és en blanc, utilitzeu if( Value = Blank(), ... en comptes d'IsBlank. La funció IsBlank considera que les taules buides no estan en blanc, i IsEmpty s'ha d'utilitzar per provar una taula.

Quan activeu el tractament d'errors per a aplicacions existents, considereu l'opció de substituir IsBlank per IsBlankOrError per conservar el comportament de les aplicacions existents. Abans d'afegir la gestió d'errors, s'utilitzava un valor en blanc per representar valors nuls de bases de dades i valors d'error. La gestió d'errors separa aquestes dues interpretacions de blanc, que podrien canviar el comportament de les aplicacions existents que continuen utilitzant IsBlank.

El valor de retorn per IsBlank és un valor booleà true o false.

Coalesce

S'aplica a: Aplicacions del llenç Aplicacions basades en models

La funció Coalesce avalua els arguments per ordre i torna el primer valor que no està en blanc o no és una cadena buida. Utilitzeu aquesta funció per substituir un valor en blanc o una cadena buida per un valor diferent, però no canvieu els valors que no estiguin en blanc ni les cadenes que no estiguin buides. Si tots els arguments estan en blanc o són cadenes buides, la funció retorna blanc, fent de Coalesce una bona manera de convertir cadenes buides en valors en blanc.

Coalesce( value1, value2 ) és l'equivalent més concís de la fórmula If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) i no requereix avaluar dues vegades value1 i value2. La funció If torna en blanc si no hi ha cap "altra" fórmula, com és el cas aquí.

Tots els arguments de Coalesce han de ser del mateix tipus; per exemple, no podeu barrejar números amb cadenes de text. El valor de retorn de Coalesce és d'aquest tipus comú.

IsEmpty

S'aplica a: Aplicacions del llenç Aplicacions basades en models

La funció IsEmpty prova si una taula conté cap registre. És l'equivalent d'utilitzar la funció CountRows i comprovar si és zero. Per comprovar si hi ha errors de la font de dades, podeu combinar IsEmpty amb la funció Errors.

El valor de retorn per IsEmpty és un valor booleà true o false.

Sintaxi

Blank()

Coalesce(Valor1, [Valor2, ...])

  • Valors: obligatori. Valors que es provaran. Cada valor s'avalua per ordre fins que es troba un valor que no està en blanc i no és cap cadena buida. Els valors següents no s'avaluen.

IsBlank(Valor)

  • Valor: obligatori. Valor que es provarà si és un valor en blanc o una cadena buida.

IsEmpty(Taula)

  • Taula: obligatori. Taula on es provaran els registres.

Exemples

En blanc

Nota

En aquest moment, l'exemple següent només funciona per a les col·leccions locals. Podeu emmagatzemar valor en blanc en altres fonts de dades si activeu la funció experimental Administració d'errors a nivell de fórmula a Configuració>Pròximes característiques>Experimentals. Estem treballant activament per acabar aquesta característica i completar la separació dels valors en blanc dels errors.

  1. Creeu una aplicació des de zero i afegiu un control Botó.

  2. Definiu la propietat OnSelect del botó a aquesta fórmula:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. Feu una visualització prèvia de l'aplicació, feu clic o toqueu el botó que heu afegit i, a continuació, tanqueu la visualització prèvia.

  4. Al menú Fitxer, feu clic o toqueu Col·leccions.

    Apareix la col·lecció Ciutats, que mostra un registre amb "Seattle" i "Plujós":

    Col·lecció que mostra Seattle amb temps Plujós

  5. Feu clic o toqueu la fletxa enrere per tornar a l'àrea de treball per defecte.

  6. Afegiu un control Etiqueta i definiu-ne la propietat Text en aquesta fórmula:

    IsBlank( First( Cities ).Weather )
    

    L'etiqueta mostra false perquè el camp Temps conté un valor ("Plujós").

  7. Afegiu un segon botó i definiu-ne la propietat OnSelect a aquesta fórmula:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. Feu una visualització prèvia de l'aplicació, feu clic o toqueu el botó que heu afegit i, a continuació, tanqueu la visualització prèvia.

    El camp Temps del primer registre Ciutats se substitueix per en blanc, fet que elimina l'element "Plujós" que hi era anteriorment.

    Col·lecció que mostra Seattle amb un camp Temps buit

    L'etiqueta mostra true perquè el camp Temps ja no conté cap valor.

Coalesce

Fórmula Descripció Resultat
Coalesce( Blank(), 1 ) Prova el valor de retorn de la funció Blank, que sempre torna un valor en blanc. Com que el primer argument està en blanc, l' avaluació continua amb l'argument següent fins que es troba un valor que no estigui en blanc i una cadena que no estigui buida. 1
Coalesce( "", "2" ) Prova el primer argument que és una cadena buida. Com que el primer argument és una cadena buida, l' avaluació continua amb l'argument següent fins que es troba un valor que no estigui en blanc i una cadena que no estigui buida. 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Coalesce s'inicia a l'inici de la llista d'arguments i avalua cada argument per torns fins que es trobi un valor que no estigui en blanc i una cadena que no estigui buida. En aquest cas, els primers quatre arguments tots tornen un valor en blanc o una cadena buida, de manera que l'avaluació continua amb el cinquè argument. El cinquè argument és un valor que no està en blanc i una cadena que no està buida; per tant, l'avaluació s'atura aquí. Es torna el valor del cinquè argument i no s'avalua el sisè argument. 3
Coalesce("") Prova el primer argument que és una cadena buida. Com que el primer argument és una cadena buida i no hi ha més arguments, la funció torna en blanc. blank

IsBlank

  1. Creeu una aplicació des de zero, afegiu-hi un control d'entrada de text i anomeneu-lo FirstName.

  2. Afegiu una etiqueta i definiu-ne la propietat Text en aquesta fórmula:

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

    Per defecte, la propietat Text d'un control d'entrada de text està definida com a "Entrada de text". Com que la propietat conté un valor, no està en blanc i l'etiqueta no mostra cap missatge.

  3. Suprimiu tots els caràcters del control d'entrada de text, inclòs qualsevol espai.

    Com que la propietat Text ja no conté cap caràcter, és una cadena buida i IsBlank(FirstName.Text) serà true. Es mostra el missatge de camp obligatori.

Per obtenir informació sobre com dur a terme la validació mitjançant altres eines, vegeu la funció Validate i Treballar amb fonts de dades.

Altres exemples:

Fórmula Descripció Resultat
IsBlank( Blank() ) Prova el valor de retorn de la funció Blank, que sempre torna un valor en blanc. true
IsBlank("") Cadena que no conté caràcters. true
IsBlank("Hola") Cadena que conté un o més caràcters. false
IsBlank(AnyCollection) Com que la col·lecció existeix, no està en blanc, fins i tot si no conté cap registre. Per comprovar si hi ha una col·lecció buida, utilitzeu IsEmpty com a alternativa. false
IsBlank(Mid("Hola", 17, 2)) El caràcter d'inici per a Mid és fora del final de la cadena. El resultat és una cadena buida. true
IsBlank(If(false, false)) Una funció If sense ElseResult. Com que la condició sempre és false, If sempre torna en blanc. true

IsEmpty

  1. Creeu una aplicació des de zero i afegiu un control Botó.

  2. Definiu la propietat OnSelect del botó a aquesta fórmula:

    Collect(Gelat, {Gust: "Maduixa", Quantitat: 300}, {Gust: "Xocolata", Quantitat: 100})

  3. Feu una visualització prèvia de l'aplicació, feu clic o toqueu el botó que heu afegit i, a continuació, tanqueu la visualització prèvia.

    Es crea una col·lecció anomenada Gelat i conté aquestes dades:

    Una taula amb sabors de maduixa i xocolata amb la quantitat 300 i 100

    Aquesta col·lecció té dos registres i no està buida. IsEmpty(Gelat) torna false i CountRows(Gelat) torna 2.

  4. Afegiu un segon botó i definiu-ne la propietat OnSelect a aquesta fórmula:

    Clear(Gelat)

  5. Feu una visualització prèvia de l'aplicació, feu clic o toqueu el segon botó i, a continuació, tanqueu la visualització prèvia.

    La col·lecció ja està buida:

    Una col·lecció amb Sabor i Quantitat com a col·lecció buida

    La funció Clear suprimeix tots els registres d'una col·lecció, cosa que resulta en una col·lecció buida. IsEmpty(Gelat) torna true i CountRows(Gelat) torna 0.

També podeu utilitzar IsEmpty per comprovar si una taula calculada és buida, com mostren aquests exemples:

Fórmula Descripció Resultat
IsEmpty( [ 1, 2, 3 ] ) La taula d'una sola columna conté tres registres i, per tant, no està buida. false
IsEmpty( [ ] ) La taula d'una sola columna no conté cap registre i està buida. true
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) La taula d'una sola columna no conté valors majors que 5. El resultat del filtre no conté cap registre i està buit. true