Общие сведения о карточках данных в Power Apps

Элементы управления Card (Карточка) являются стандартными блоками элементов управления Edit form (Форма редактирования) и Display form (Форма отображения) в приложениях на основе холста. Форма представляет всю запись, а каждая карта представляет одно поле этой записи.

Выбрав элемент управления формы в рабочей области конструирования, вы сможете работать с карточками на панели справа. На этой панели можно выбрать отображаемые поля, способ отображения каждого поля и их порядок. В этом примере показан элемент управления Edit form (Форма редактирования) в приложении, созданном из списка SharePoint с именем Assets.

Первый экран

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

Предопределенные карточки

В Power Apps предусмотрен предопределенный набор карточек для строк, чисел и других типов данных. В области справа можно просмотреть доступные варианты и изменить карточку, используемую для поля.

Выбранная карточка

В этом примере выбрана однострочная текстовая карточка, но текст URL-адреса не вмещается в одной строке. Давайте изменим тип карточки на многострочную текстовую, чтобы предоставить пользователям больше места для редактирования:

Многострочное редактирование

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

Настройка карточки

Карточки содержат другие элементы управления. В элементе управления Edit form (Форма редактирования) пользователь вводит данные в стандартном элементе управления Text input (Ввод текста), который можно добавить на вкладке Вставка.

Давайте рассмотрим пример с изменением вида карточки, используя элементы управления на ней.

  1. Сначала давайте вернемся к недавно вставленной карточке для поля SecurityCode. Щелкните или коснитесь ее один раз, чтобы выбрать:

    Выбор кода безопасности

  2. Выберите элемент управления Text input (Ввод текста) в карточке, коснувшись или щелкнув его.

    Выбор ввода текста

  3. Переместите этот элемент управления в карточке, перетащив рамку выделения, и измените его размер, перетаскивая маркеры, расположенные по краям рамки выделения:

    Настройка ввода текста

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

Разблокировка карточки

Кроме того, что карточки содержат элементы управления, они сами являются элементами управления и подобно другим элементам управления имеют свойства и формулы. Если нужно отобразить поле в форме, область справа автоматически создает карточку и необходимые формулы. Эти формулы отображаются на вкладке Дополнительно в области справа:

Расширенный заблокированный

Одно из самых важных свойств карточки, DataField, отображается сразу. Это свойство указывает отображаемые поля источника данных, которые можно изменить на этой карточке.

На вкладке Дополнительно на баннере в верхней части указано, что свойства этой карточки заблокированы. Значок блокировки также отображается рядом со свойствами DataField, DisplayName и Required. Эти формулы созданы областью справа, а блокировка предотвращает случайное изменение этих свойств.

Значки блокировки

Щелкните или коснитесь баннера в верхней части, чтобы разблокировать карточку и изменить эти свойства.

Разблокированная карточка

Давайте изменим свойство DisplayName, чтобы вставить пробел между Asset и ID. Таким образом мы изменим автоматически созданные значения. В области справа эта карточка имеет другую метку:

Изменение отображаемого имени

Теперь мы можем управлять этой карточкой и изменять ее в соответствии с собственными потребностями. Но мы не можем изменить представление карточки (например, однострочный или многострочный текст), подобно тому, как мы делали раньше. Мы превратили предопределенную карточку в пользовательскую и теперь можем управлять ей.

Важно!

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

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

Добавление звездочки

Теперь эта фигура является частью карточки и будет перенесена вместе с ней, например, при изменении порядка карточек в форме.

Давайте рассмотрим другой пример. Разблокируйте карточку ImageURL и добавьте в нее элемент управления Image (Изображение) на вкладке Вставка.

Добавить изображение

В строке формул задайте для свойства Image этого элемента управления значение TextBox.Text, где TextBox — это имя элемента управления Text input (Ввод текста), содержащего URL-адрес.

Показать рисунок

Теперь изображения отображаются, и мы можем изменить их URL-адреса. Обратите внимание: вы можете использовать Parent.Default как значение свойства Image, но оно не обновится после изменения URL-адреса.

То же можно сделать на втором экране этого приложения, где используется элемент управления Display form (Форма отображения) для отображения сведений о записи. В этом случае можно скрыть метку, задав для свойства Visible элемента управления "Метка" (не для карточки) значение false, так как пользователь не будет изменять URL-адрес на этом экране.

Панель отображения изображения

Взаимодействие с формой

Для разблокированной карточки можно изменить способ взаимодействия с формой, которая ее содержит.

Ниже приведены некоторые рекомендации о взаимодействии элементов управления с карточками и карточек с формой. Это только рекомендации. Как и в случае с любым элементом управления в Power Apps, вы можете создавать формулы, ссылающиеся на любой другой элемент управления в Power Apps. То же касается карточек и элементов управления на них. Приложение можно создать множеством способов. Реализуйте свой творческий потенциал!

Свойство DataField

Самое важное свойство карточки — DataField. Это свойство отвечает за проверку, за обновляемое поле и другие аспекты карточки.

Поступающие сведения

В качестве контейнера форма делает запись ThisItem доступной для всех карточек, содержащихся в ней. Эта запись содержит все поля в текущей записи.

Свойству Default всех карточек нужно присвоить значение ThisItem.FieldName. В некоторых случаях может понадобиться преобразовать это значение при передаче. Например, вам может потребоваться отформатировать строку или преобразовать значение, чтобы использовать его в другом языке.

Каждый элемент управления в карточке должен ссылаться на Parent.Default, чтобы получить значение поля. Эта стратегия обеспечивает определенный уровень инкапсуляции карточки, чтобы свойство карточки Default можно было изменить, не меняя ее внутренние формулы.

По умолчанию свойства DefaultValue и Required можно получить из метаданных источника данных на основе свойства DataField. Вы можете переопределить эти формулы собственной логикой, интегрировав метаданные источника данных, используя функцию DataSourceInfo.

Исходящие данные

После того как пользователь изменит записи с помощью элементов управления в картах, функция SubmitForm сохраняет эти изменения в источнике данных. При выполнении этой функции элемент управления формы считывает значения свойства DataField каждой карточки, чтобы определить поля, которые следует изменить.

Кроме того, элемент управления формы также считывает значение свойства Update каждой карточки. Это значение будет храниться в источнике данных для этого поля. На этом этапе можно применить еще одно преобразование, например обратить преобразование, примененное в формуле карточки Default.

Свойство Valid можно получить из метаданных источника данных на основе свойства DataField. Кроме того, учитывается свойство Required, а также то, содержит ли свойство Update значение. Если свойству Update назначено недопустимое значение, свойство Error отображает понятное сообщение об ошибке.

Если свойство DataField карточки пустое, карточка является всего лишь контейнером элементов управления. При отправке формы свойства Valid и Update не задействованы.

Разбор примера

Давайте рассмотрим элементы управления, входящие в базовую карточку ввода данных. Пространство между элементами управления было увеличено для более четкого отображения каждого из них:

Карточка разбора

На этом рисунке элементы управления в карточке данных были помечены:

Карточки разбора

Эта карта действует за счет четырех элементов управления:

Название Тип Описание:
TextRequiredStar Элемент управления Label (Метка) Отображает звездочку, которая часто используется в формах ввода данных, чтобы указать, что поле является обязательным.
TextFieldDisplayName Элемент управления Label (Метка) Отображает понятное имя этого поля. Это имя может отличаться от имени на схеме источника данных.
InputText Элемент управления Input text (Ввод текста) Отображает начальное значение поля, которое пользователь может изменить.
TextErrorMessage Элемент управления Label (Метка) Отображает понятное сообщение об ошибке для пользователя при возникновении проблемы с проверкой. Кроме того, этот элемент управления гарантирует наличие значения в поле, если это значение является обязательным.

Чтобы заполнить эти элементы управления данными, их свойства можно получить из свойств карточки, применяя следующие основные формулы. Обратите внимание, что формулы относятся к определенному полю. Вместо этого все данные можно получить из карточки.

Свойство элемента управления Формула Описание
TextRequiredStar.Visible Parent.Required Звездочка появляется, только если поле является обязательным. Требуется формула, которую указывает пользователь или которую можно получить из метаданных источника данных.
TextFieldDisplayName.Text Parent.DisplayName Элемент управления "Текстовое поле" отображает понятное имя, которое предоставляет пользователь или метаданные источника данных и которое задается в свойстве карточки DisplayName.
InputText.Default Parent.Default Элемент управления "ввод текста" изначально отображает значение поля из источника данных, указанное в значении карточки по умолчанию.
TextErrorMessage.Text Parent.Error При возникновении проблемы проверки свойство карточки Error выдает соответствующее сообщение об ошибке.

Примечание

Свойство Parent.Error — это свойство только для вывода, которое нельзя установить с помощью формулы. Поэтому это свойство не появится в списке свойств в верхнем левом углу или на вкладках Свойства или Дополнительно возле правого края. Панель формул предлагает это свойство, если вы пишете формулу, которая может ссылаться на это свойство.

Чтобы получить сведения из этих элементов управления и передать их обратно в источник данных, используйте следующие основные формулы:

Имя элемента управления Формула Описание
DataCard.DataField "ApproverEmail" Имя поля, которое пользователь может отобразить и изменить в этой карточке.
DataCard.Update InputText.Text Значение, которое следует проверить и передать обратно в источник данных при выполнении SubmitForm.