Функции Blank, Coalesce, IsBlank и IsEmpty в Power Apps

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

Обзор

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

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

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

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

Примечание

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

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

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

IsBlank

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

При включении обработки ошибок для существующих приложений подумайте о замене функции 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 )

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

Примеры

Blank

Примечание

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

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

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

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

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

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

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

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

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

    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. Добавьте метку и установите в ее свойстве Текст формулу:

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

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

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

    Так как свойство Текст больше не содержит символы, оно является пустой строкой, и выражение 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