Поделиться через


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

Применимо к: Приложениям Canvas Потокам рабочего стола Dataverse Столбцам формул Приложениям на основе моделей Power Pages Power Platform CLI

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

Обзор

Blank является заполнителем для «нет значения» или «неизвестное значение». Например, свойство Выбрано элемента управления поле со списком является пустым , если пользователь не сделал выбор. Многие источники данных могут хранить и возвращать значения NULL, которые в Power Apps рассматриваются как пустые.

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

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

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

Заметка

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

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

Применимо к: Приложениям Canvas Приложениям на основе моделей Dataverse Столбцам формул

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

IsBlank

Применимо к: Приложениям Canvas Приложениям, управляемым моделями

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

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

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

Coalesce

Применимо к: Приложениям Canvas Приложениям, управляемым моделями

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

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

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

IsEmpty

Применимо к: Приложениям Canvas Приложениям, управляемым моделями

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

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

Синтаксис

Пустой()

Объединить( Значение1 [, Значение2, ... ] )

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

IsBlank( Значение )

  • Значение – Обязательно. Значение для проверки на пустое значение или пустую строку.

IsEmpty( Таблица )

  • Таблица - Обязательно. Таблица для проверки записей.

Примеры

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

Заметка

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

  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

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

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 значение (всегда пустое). истинный
IsBlank( "" ) Строка, которая не содержит символов. истинный
IsBlank( "Привет" ) Строка, содержащая один или несколько символов. ЛОЖЬ
IsBlank( AnyCollection ) Так как коллекция существует, она не считается пустой, даже если не содержит ни одной записи. Чтобы проверить наличие пустой коллекции, используйте функцию IsEmpty. ЛОЖЬ
IsBlank( Mid( "Привет", 17, 2 ) ) Начальный символ для функции Mid выходит за пределы строки. Результатом является пустая строка. истинный
IsBlank( Если( ложь, ложь ) ) Функция If без ElseResult. Так как условие всегда имеет значение false, эта If всегда возвращает пустое значение. истинный

IsEmpty

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

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

    Собрать( Мороженое, { Вкус: "Клубника", Количество: 300 }, { Вкус: "Шоколад", Количество: 100 } )

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

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

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

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

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

    Прозрачный (мороженое)

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

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

    Коллекция с

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

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

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