Функции Blank, Coalesce, IsBlank и IsEmpty

Применимо к: приложениям на основе холста классическим потокам столбцам формул Dataverse приложениям на основе модели интерфейсу командной строки Power Platform

Эти функции позволяют проверить, является ли значение пустым и отсутствуют ли в таблицезаписи, а также позволяют создавать пустые значения.

Обзор

Пусто — это заполнитель, который применяется, если значение отсутствует или неизвестно. Например, в элементе управления Combo box свойство Selectedпусто, если пользователь не сделал выбор. Многие источники данных могут хранить и возвращать значения NULL, которые в Power Apps рассматриваются как пустые.

Любое свойство или вычисленное значение в Power Apps может быть пустым. Например, логическое значение обычно принимает одно из двух значений: true или false. Но в дополнение к этим двум, оно также может быть пустым, указывая на то, что состояние неизвестно. Это аналогично Microsoft Excel, где в начале работы ячейки листа пустые без содержимого, но помимо других могут также содержать значения ИСТИНА или ЛОЖЬ. Содержимое ячейки в любое время может быть снова удалено, после чего она снова станет пустой.

Пустая строка ссылается на строку, которая не содержит символов. Функция Len возвращает ноль для такой строки, и ее можно записать в формулах в виде двух двойных кавычек, между которыми ничего нет: "". Некоторые элементы управления и источники данных используют пустую строку для обозначения условия "нет значения". Чтобы упростить создание приложения, функции IsBlank и Coalesce проверяют как на пустые значения, так и на пустые строки.

В контексте функции IsEmpty значение пусто специфично для таблиц, которые не содержат записей. Структура таблицы может быть неповрежденной, таблица может содержать имена столбцов, но при этом не содержать каких-либо данных. Таблица может быть изначально пустой, перестать быть пустой по мере заполнения данными, а затем снова стать пустой, после того как данные будут удалены.

Заметка

Мы находимся в переходном периоде. До настоящего времени пустое значение также использовалось для сообщения об ошибках, что делает невозможным отличить допустимое состояние "нет значения" от ошибки. Поэтому в настоящее время пустые значения можно хранить только в локальных коллекциях. Вы можете хранить пустые значения в других источниках данных, если вы включите экспериментальную функцию Управление ошибками на уровне формул в Настройки>Предстоящие функции>Экспериментальные. Мы активно работаем над тем, чтобы завершить эту функцию и завершить надлежащее разделение пустых значений от ошибок.

Чистого листа

Применимо к: приложениям на основе холста приложениям на основе модели столбцам формулы Dataverse

Функция Blank возвращает пустое значение. Используйте эту функцию, чтобы сохранить значение NULL в источнике данных, который поддерживает эти значения, и удалить все значения из этого поля.

IsBlank

Применимо к: приложениям на основе холста приложениям на основе модели

Функция IsBlank проверяет на пустое значение или пустую строку. Тест включает пустые строки, чтобы упростить создание приложения, поскольку некоторые источники данных и элементы управления используют пустую строку, когда значение отсутствует. Чтобы проверить специально на пустое значение, используйте if( Value = Blank(), ... вместо IsBlank. Функция IsBlank рассматривает пустые таблицы как непустые, а для проверки таблицы следует использовать функцию IsEmpty.

При включении обработки ошибок для существующих приложений подумайте о замене функции IsBlank функцией IsBlankOrError, чтобы сохранить существующее поведение приложения. До добавления обработки ошибок использовалось пустое значение для представления как значений NULL из баз данных, так и значений ошибок. Обработка ошибок разделяет эти две интерпретации значения пусто, что может изменить поведение существующих приложений, которые продолжают использовать IsBlank.

Возвращаемое значение функции IsBlank является логическим true или false.

Coalesce

Применимо к: приложениям на основе холста приложениям на основе модели

Функция Coalesce поочередно оценивает аргументы и возвращает первое значение, не являющееся пустым или пустой строкой. Используйте эту функцию, чтобы заменить пустое значение или пустую строку с другим значением, но оставить непустые значения и непустые строковые значения без изменений. Если все аргументы пустые или пустые строки, то функция возвращается пусто, что делает Coalesce хорошим способом конвертировать пустые строки в пустые значения.

Coalesce( value1, value2 ) является более кратким эквивалентом If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) и не требует, чтобы value1 и value2 оценивались дважды. Функция If возвращает пустое значение, если нет формулы "else", как здесь.

Все аргументы для Coalesce должны относиться к одному типу. Например, нельзя комбинировать числа с текстовыми строками. Значение, возвращаемое из Coalesce имеет этот общий тип.

IsEmpty

Применимо к: приложениям на основе холста приложениям на основе модели

Функция IsEmpty проверяет, содержит ли таблица какие-либо записи. Это аналогично использованию функции CountRows и проверке на наличие нулевых значений. Чтобы проверить на наличие ошибок источника данных, можно использовать функцию IsEmpty вместе с функцией Errors.

Возвращаемое значение функции IsEmpty является логическим true или false.

Синтаксис

Blank()

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

  • Значения Value — обязательные аргументы. Проверяемые значения. Каждое значение оценивается по порядку, пока не будет найдено непустое значение или непустая строка. Значения после этой точки не оцениваются.

IsBlank( Value )

  • Value — обязательный аргумент. Значение для проверки на пустое значение или пустую строку.

IsEmpty( Table )

  • таблица — обязательный аргумент. Таблица для проверки записей.

Примеры

Чистого листа

Заметка

Сейчас следующий пример работает только для локальных коллекций. Вы можете хранить пустые значения в других источниках данных, если вы включите экспериментальную функцию Управление ошибками на уровне формул в Настройки>Предстоящие функции>Экспериментальные. Мы активно работаем над тем, чтобы завершить эту функцию и завершить разделение пустых значений от ошибок.

  1. Создайте приложение с нуля и добавьте элемент управления Button.

  2. Задайте для свойства кнопки OnSelect эту формулу:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. Просмотрите приложение, нажмите добавленную кнопку, а затем закройте режим предварительного просмотра.

  4. В меню Файл щелкните или коснитесь Коллекции.

    После этого отобразится коллекция Cities с одной записью со значениями Seattle (Сиэтл) и Rainy (Дождливо):

    Коллекция с записью Seattle и Rainy.

  5. Нажмите кнопку со стрелкой "Назад", чтобы вернуться в рабочую область по умолчанию.

  6. Добавьте элемент управления Label и задайте в качестве значения свойства Text следующую формулу:

    IsBlank( First( Cities ).Weather )
    

    Метка отображает значение false, так как поле Weather содержит значение (Rainy).

  7. Добавьте вторую кнопку и задайте в качестве значения свойства OnSelect следующую формулу:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. Просмотрите приложение, нажмите добавленную кнопку, а затем закройте режим предварительного просмотра.

    Из поля Weather первой записи в коллекции Cities удалили Rainy, в результате чего оно стало пустым.

    Коллекция с записью Seattle и пустым полем Weather.

    Метка отображает значение true, так как в поле Weather отсутствует значение.

Coalesce

Формула Описание Результат
Coalesce( Blank(), 1 ) Проверяет возвращаемое функцией Blank значение (всегда пустое). Так как первый аргумент является пустым, оценка продолжается для следующего аргумента, пока не будет найдено значение, не являющееся пустым или пустой строкой. 1
Coalesce( "", "2" ) Проверяет первый аргумент, который является пустой строкой. Так как первый аргумент является пустой строкой, оценка продолжается для следующего аргумента, пока не будет найдено значение, не являющееся пустым или пустой строкой. 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Функция Coalesce запускается с начала списка аргументов и поочередно оценивает каждый аргумент, пока не будет найдено значение, не являющееся пустым или пустой строкой. В этом случае все первые четыре аргумента возвращают пустое значение или пустую строку, поэтому оценка продолжается до пятого аргумента. Пятый аргумент не является пустым значением или пустой строкой, поэтому оценка здесь останавливается. Возвращается значение пятого аргумента, а шестой аргумент не оценивается. 3
Coalesce( "" ) Проверяет первый аргумент, который является пустой строкой. Поскольку первый аргумент является пустой строкой, а аргументов больше нет, функция возвращает пустое значение. пусто

IsBlank

  1. Создайте приложение с нуля, добавьте элемент управления Text input и назовите его FirstName.

  2. Добавьте метку и установите в ее свойстве Text формулу:

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

    По умолчанию свойство Text элемента управления Text input имеет значение Ввод текста. Так как свойство содержит значение, оно не пустое и метка не отображает никакие сообщения.

  3. Удалите все символы из элемента управления Text input, в том числе пробелы.

    Так как свойство Text больше не содержит символы, оно является пустой строкой, и выражение IsBlank( FirstName.Text ) будет иметь значение true. Отобразится сообщение "Обязательное поле".

Сведения о выполнении проверки с помощью других средств см. в статьях о функции Validate и о работе с источниками данных.

Другие примеры:

Формула Описание Результат
IsBlank( Blank() ) Проверяет возвращаемое функцией Blank значение (всегда пустое). true
IsBlank( "" ) Строка, которая не содержит символов. true
IsBlank( "Hello" ) Строка, содержащая один или несколько символов. false
IsBlank( AnyCollection ) Так как коллекция существует, она не считается пустой, даже если не содержит ни одной записи. Чтобы проверить наличие пустой коллекции, используйте функцию IsEmpty. false
IsBlank( Mid( "Hello", 17, 2 ) ) Начальный символ для функции Mid выходит за пределы строки. Результатом является пустая строка. true
IsBlank( If( false, false ) ) Функция If без ElseResult. Так как условие всегда имеет значение false, эта If всегда возвращает пустое значение. true

IsEmpty

  1. Создайте приложение с нуля и добавьте элемент управления Button.

  2. Задайте для свойства кнопки OnSelect эту формулу:

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

  3. Просмотрите приложение, нажмите добавленную кнопку, а затем закройте режим предварительного просмотра.

    Создается коллекция с именем IceCream, в которой содержатся такие данные:

    Таблица со вкусом клубники и шоколада в количестве 300 и 100 штук.

    Эта коллекция имеет две записи и не является пустой. IsEmpty (IceCream) возвращает значение false, а CountRows (IceCream) возвращает 2.

  4. Добавьте вторую кнопку и задайте в качестве значения свойства OnSelect следующую формулу:

    Clear( IceCream )

  5. Просмотрите приложение, нажмите вторую кнопку, а затем закройте режим предварительного просмотра.

    Теперь коллекция пуста:

    Коллекция с

    Функция Clear удаляет все записи из коллекции, в результате чего коллекция становится пустой. IsEmpty (IceCream) возвращает значение true, а CountRows (IceCream) возвращает 0.

Функцию IsEmpty можно также использовать, чтобы проверить, является ли вычисляемая таблица пустой, как показано в примерах ниже.

Формула Описание Результат
IsEmpty( [ 1, 2, 3 ] ) Таблица с одним столбцом содержит три записи, а значит, не является пустой. false
IsEmpty( [ ] ) Таблица с одним столбцом не содержит записей, а значит, является пустой. true
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) Таблица с одним столбцом не содержит значений, превышающих 5. В результате фильтр не обнаруживает подходящие записи и остается пустым. true