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


Создание сводной формы в приложении на основе холста

Следуйте пошаговым инструкциям, чтобы создать сводную форму в приложении на основе холста для управления вымышленными данными в базе данных Northwind Traders. Эта тема является частью серии, в которой объясняется, как построить бизнес-приложение на реляционных данных в Microsoft Dataverse. Для достижения наилучших результатов изучите эти темы в следующей последовательности:

  1. Создание коллекции заказов.
  2. Создание сводной формы (данная тема).
  3. Создание коллекции сведений.

Определение областей экрана.

Предварительные условия

  1. Установите базу данных и приложения Northwind Traders.
  2. Ознакомьтесь с обзором приложения на основе холста для Northwind Traders.
  3. Создайте коллекцию заказов самостоятельно или откройте приложение Заказы Northwind (холст) - начало части 2, которое уже содержит эту коллекцию.

Добавление строки заголовка

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

  1. На панели Представление дерева выберите Экран1, чтобы случайно не добавить элемент управления в коллекцию заказов:

    Выберите Screen1 на панели представления дерева.

  2. На вкладке Вставить выберите элемент Метка, чтобы добавить элемент управления Подпись:

    Вставьте метку.

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

  3. Переместите и измените размер новой метки, чтобы охватить верхнюю часть экрана:

    Перемещение и изменение размера метки.

  4. Дважды щелкните текст метки, затем введите Заказы Northwind.

    В качестве альтернативы, измените свойство Text в строке формулы для достижения того же результата:

    Изменение текста в строке заголовка.

  5. На вкладке Главная отформатируйте метку:

    • Увеличить размер шрифта до 24 пунктов.
    • Сделайте текст полужирным.
    • Сделайте текст белым.
    • Расположите текст по центру.
    • Добавьте темно-синюю заливку на фон.

    Параметры форматирования на вкладке "Главная".

Добавление элемента управления "Форма редактирования"

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

  1. На вкладке Вставка вставьте элемент управления Форма редактирования:

    Добавление элемента управления "Форма редактирования".

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

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

  2. Переместите и измените размер формы, чтобы она закрывала правый верхний угол экрана под строкой заголовка:

    Перемещение и изменение размера элемента управления формы редактирования.

  3. На панели Свойства выберите раскрывающийся список Источник данных.

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

  4. Выберите источник данных Заказы.

Добавление и размещение полей

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

    Открытие панели полей.

  2. Если панель Поля не пуста, удалите поля, которые уже были вставлены.

    Откройте параметр области полей.

  3. После того, как список полей пуст, выберите Добавить поле, затем установите флажки для полей Клиент и Сотрудник.

    Добавление полей клиента и сотрудника в элемент управления формы редактирования.

  4. Прокрутите вниз, пока не появятся эти поля, затем выберите их флажки:

    • Примечания
    • Дата заказа
    • Номер заказа
    • Статус заказа
    • Дата оплаты

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

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

  5. В нижней части панели Поля выберите Добавить, затем закройте панель Поля.

    Форма показывает семь полей, которые могут быть в другом порядке:

    Элемент управления формы редактирования показывает семь полей.

    Примечание

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

    1. На вкладке Вид выберите Источники данных.
    2. На панели Данные выберите Источники данных.
    3. Рядом с Заказы выберите многоточие (...), выберите Обновить, затем закройте панель Данные.

    Если в поле со списком для имени клиента или сотрудника по-прежнему отображается ошибка, проверьте Основной текст и SearchField каждого поля, выбрав его, а затем открыв панель Данные. Для поля клиента оба поля должны быть установлены в nwind_company. Для поля сотрудника оба поля должны быть установлены в nwind_lastname.

  6. С выбранной формой измените число столбцов в форме с 3 на 12 на вкладке Свойства возле правого края.

    Этот шаг добавляет гибкости при расположении полей:

    Затем измените количество столбцов в элементе управления формы редактирования.

    Дизайн многих пользовательских интерфейсов полагается на макеты из 12 столбцов, поскольку они могут равномерно размещать строки с 1, 2, 3, 4, 6 и 12 элементами управления. В этой тема вы создадите строки, содержащие 1, 2 или 4 элемента управления.

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

    • Первая строка: Номер заказа, Статус заказа, Дата заказа и Дата оплаты
    • Вторая строка: Клиент и Сотрудник
    • Третья строка: Примечания

    Примечание

    Возможно, вам будет легче расширить карточки данных Примечания, Клиент и Сотрудник, прежде чем их организовать.

    Перемещение и изменение размеров полей.

    Подробнее о том, как упорядочить поля в форме: Общие сведения о макете формы данных для приложений на основе холста.

Скрытие элементов управления времени

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

  1. В области Представление в виде дерева выберите карточку данных Дата заказа.

    Карточка может иметь другое имя, но она содержит Дата заказа.

  2. Удерживая нажатой клавишу Shift, выберите элементы управления часами, минутами и разделителем-двоеточием в карточке данных Дата заказа.

    Выберите элементы управления времени в карточке даты заказа.

  3. Задайте для свойства Visible элементов управления значение false.

    Все выбранные элементы управления исчезают из формы:

    Установите для свойства видимости значение «false» для элемента управления.

  4. Измените размер элемента управления Средство выбора даты (Выбор даты), чтобы показать полную дату:

    Измените размер средства выбора даты.

    Далее вы повторите последние несколько шагов для поля Дата оплаты.

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

    Выбор элемент управления даты в карточке даты оплаты.

  6. Задайте для свойства Visible выбранных элементов управления значение false:

    Задайте для свойства Visible значение false.

  7. Измените размер средства выбора даты на карточке Дата оплаты:

    Изменение размера элемента управления выбора даты.

  1. На панели Представление в виде дерева сверните форму, чтобы легче было найти название коллекции заказов, затем при необходимости переименуйте ее в Gallery1.

  2. Задайте для свойства Item формы сводки следующее выражение:

    Gallery1.Selected
    

    Задание свойства Item формы.

    Форма показывает сводку любого заказа, который пользователь выбирает в списке.

    Выбор заказа в списке, чтобы показать его обзор в форме.

Замена карточки данных

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

  1. Выберите форму, выберите Редактировать поля на вкладке Свойства рядом с правым краем, затем выберите поле Номер заказа:

    Выберите поле "Номер заказа".

  2. Откройте список Тип элемента управления:

    Откройте список Тип элемента управления.

  3. Выберите карточку данных Посмотреть текст:

    Выберите карточку данных Посмотреть текст.

  4. Закройте панель Поля.

    Пользователь больше не может менять номер заказа:

    Номер заказа только для чтения.

  5. На вкладке Главная измените размер шрифта номера заказа на 20 пунктов, чтобы поле было легче найти:

    Изменение размера шрифта номера заказа.

Использование отношения "многие к одному"

Таблица Заказы имеет отношение "многие-к-одному" с таблицей Сотрудники: каждый сотрудник может создавать множество заказов, но каждый заказ может быть назначен только одному сотруднику. Когда пользователь выбирает сотрудника в элементе управления Поле со списком (Поле со списком), его свойство Selected предоставляет всю запись этого сотрудника из таблицы Сотрудники. В результате вы можете настроить элемент управления Изображение, чтобы показать изображение любого сотрудника, выбранного пользователем в поле со списком.

  1. Выберите карточку данных Сотрудник:

    Выберите карточку данных "Сотрудник".

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

    Разблокируйте карточку данных "Сотрудник".

  3. В карточке данных уменьшите ширину поля со списком, чтобы освободить место для изображения сотрудника:

    Измените размер поля со списком.

  4. На вкладке Вставка выберите Мультимедиа > Изображение:

    Вставить изображение.

    Изображение появляется на карточке данных, которая расширяется, чтобы вместить его:

    Карточка данных сотрудника с элементом управления "Изображение".

  5. Измените размер изображения и переместите его справа от поля со списком:

    Перемещение и изменение размера элемента управления "изображение".

  6. Установить для свойства Image изображения эту формулу, заменив число в конце DataCardValue, если необходимо:

    DataCardValue7.Selected.Picture
    

    Установите свойство Image изображения.

    Появляется фотография выбранного сотрудника.

  7. Удерживая нажатой клавишу ALT, выберите другого сотрудника в поле со списком, чтобы проверить, что изображение также изменяется.

    Выберите сотрудника, чтобы показать его фотографию.

Добавление значка "Сохранить"

  1. На панели Представление в виде дерева, выберите Screen1, затем выберите Вставить > Значки > Флажок:

    Вставка значка флажка.

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

    Значок в положении по умолчанию.

  2. На вкладке Главная измените свойство Color значка на белый, измените размер значка и переместите его к правому краю строки заголовка:

    Настройте цвет, размер и расположение значка сохранения.

  3. В области Представление в виде дерева убедитесь, что имя формы Form1, затем установите для свойства OnSelect значка следующую формулу:

    SubmitForm( Form1 )
    

    Задание свойства OnSelect значка сохранения.

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

  4. Задайте для свойства DisplayMode значка эту формулу:

    If( Form1.Unsaved, DisplayMode.Edit, DisplayMode.Disabled )
    

    Задание свойства DisplayMode значка.

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

  5. Задайте для свойства DisabledColor значка следующее значение:

    Gray
    

    Задание свойства DisabledColor значка.

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

    сохранение изменений.

Добавление значка отмены

  1. На вкладке Вставка выберите Значки > Отменить:

    Добавление значка отмены.

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

    Значок отмены в положении по умолчанию.

  2. На вкладке Главная измените свойство Color значка на белый, измените размер значка и переместите его слева от значка флажка:

    Измените цвет, размер и расположение значка отмены.

  3. Задайте для свойства OnSelect значка "Отмена" эту формулу:

    ResetForm( Form1 )
    

    Задание свойства OnSelect значка отмены.

    Функция ResetForm отменяет все изменения в форме, возвращая ее в исходное состояние.

  4. Задайте для свойства DisplayMode значка "Отмена" эту формулу:

    If( Form1.Unsaved Or Form1.Mode = FormMode.New, DisplayMode.Edit, DisplayMode.Disabled )
    

    Задание свойства DisplayMode значка отмены.

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

  5. Задайте для свойства DisabledColor значка отмены следующее значение:

    Gray
    

    Задание свойства DisabledColor значка отмены.

    Пользователь может отменить изменения в заказе, а значки флажка и отмены отключены и затемнены, если все изменения были сохранены:

    Сохранение и отмена изменений.

Добавление значка "Добавить"

  1. На вкладке Вставка выберите Значок > Добавить.

    Вставка значка "Добавить".

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

    Расположение по умолчанию значка "Добавить".

  2. На вкладке Главная задайте для свойства Color значка "Добавить" белый цвет", измените размер значка и переместите его слева от значка "Отмена":

    Измените цвет, размер и расположение значка добавления.

  3. Задайте для свойства OnSelect значка "Добавить" эту формулу:

    NewForm( Form1 )
    

    Задание свойства OnSelect значка добавления.

    Функция NewForm показывает пустую запись в форме.

  4. Задайте для свойства DisplayMode значка "Добавить" эту формулу:

    If( Form1.Unsaved Or Form1.Mode = FormMode.New, DisplayMode.Disabled, DisplayMode.Edit )
    

    Задание свойства DisplayMode значка добавления.

    Формула отключает значок "Добавить" при следующих условиях:

    • Пользователь вносит изменения, но не сохраняет и не отменяет их, что противоположно поведению значков "Флажок" и "Отмена".
    • Пользователь выбирает значок "Добавить", но не вносит изменений.
  5. Задайте для свойства DisabledColor значка "Добавить" следующее значение:

    Gray
    

    Задание свойства DisabledColor значка добавления.

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

    Создать заказ.

Примечание

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

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

  1. На вкладке Вставка выберите Значки > Корзина.

    Вставка значка корзины.

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

    Расположение по умолчанию значка корзины.

  2. На вкладке Главная измените свойство Color значка "Корзина" на белый цвет, измените размер значка и переместите его слева от значка "Добавить":

    Измените цвет, размер и расположение значка корзины.

  3. Задайте для свойства OnSelect значка "Корзина" эту формулу:

    Remove( Orders, Gallery1.Selected )
    

    Задание свойства OnSelect значка корзины.

    Функция Remove удаляет запись из источника данных. В этой формуле функция удаляет запись, выбранную в коллекции заказов. Значок "Корзина" появляется рядом со сводной формой (а не коллекцией заказов), поскольку форма отображает более подробную информацию о записи, поэтому пользователь может легче определить запись, которую удалит формула.

  4. Задайте для свойства DisplayMode значка "Корзина" эту формулу:

    If( Form1.Mode = FormMode.New, DisplayMode.Disabled, DisplayMode.Edit )
    

    Задание свойства DisplayMode значка корзины.

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

  5. Задайте для свойства DisabledColor значка "Корзина" следующее значение:

    Gray
    

    Задание свойства DisabledColor значка корзины.

    Пользователь может удалить заказ.

    Удаление заказов.

Cводка

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

  • Форма, которая показывает данные из таблицы Заказы: Form1.DataSource = Orders
  • Соединение между формой и коллекцией заказов: Form1.Item = Gallery1.Selected
  • Альтернативный элемент управления для поля Номер заказа: Посмотреть текст
  • Отношение "многие к одному", чтобы показать фотографию сотрудника в карточке данных Сотрудник: DataCardValue1.Selected.Picture
  • Значок для сохранения изменений в заказе: SubmitForm( Form1 )
  • Значок для отмены изменений в заказе: ResetForm( Form1 )
  • Значок для создания заказа: NewForm( Form1 )
  • Значок для удаления заказа: Remove( Orders, Gallery1.Selected )

Следующий шаг

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

Примечание

Каковы ваши предпочтения в отношении языка документации? Пройдите краткий опрос (обратите внимание, что этот опрос представлен на английском языке).

Опрос займет около семи минут. Личные данные не собираются (заявление о конфиденциальности).