Упражнение: Измерение в MR и фильтрация в Power Apps
В этом уроке вы будете использовать некоторые ключевые функциональные компоненты Power Apps. Это включает меру в способах МРТ и фильтрации. Пользователи могут измерять расстояние, площадь и объем в реальном мире с помощью компонента Measure в MR Power Apps.
Пространственная фильтрация с использованием меры в МР
Функция мер в MR используется для пространственной фильтрации продуктов, которые можно легко поместить в реальный мир в соответствии с измерениями, полученными через сеанс измерения. Для фильтрации используются некоторые основные формулы.
Перейдите на домашнюю страницу . На вкладке Вставка разверните раскрывающийся список смешанной реальности и выберите меру в MR.
Расположите кнопку 'Measure in MR', как показано на рисунке, затем настройте следующие свойства:
- Text: фильтр по измерениям
- единиц измерения: сантиметры
- тип измерения: Freeform
На домашней странице добавьте коллекцию, выбрав коллекцию>вертикальную. Измените имя коллекции на Measure_gallery.
Поместите вертикальную галерею чуть ниже кнопки "Фильтр по измерениям". Настройте свойство макета, выбрав заголовок, подзаголовок и текст.
Настройте свойство Items элемента Measure_gallery, добавив следующую строку:
MeasureInMR1.Measurements
Удалите разделитель и NextArrow. Разместите заголовок, подзаголовоки текст на равном расстоянии друг от друга, как показано на изображении.
Настройте свойство Text трех меток следующим образом:
Давайте добавим значок для повторного проведения измерений, чтобы пользователи могли их повторить, если они не довольны. На вкладке Вставка разверните раскрывающийся список значков и щелкните значок перезагрузки.
Поместите значок, как показано на изображении, и настройте свойство OnSelect следующим образом:
UpdateContext({galleryvisible:false});
Совет
Вы можете настроить шрифт, размер шрифта и стиль шрифта в соответствии с дизайном приложения. Однако для лучшего взаимодействия с пользователем сохраняйте согласованный шрифт во всем приложении.
После полной настройки компонента measure in MR мы перейдем к пространственной фильтрации. Здесь мы пространственно отфильтруем продукты на основе ширины, глубиныи значений высоты, полученных в сеансе Measure в сеансе MR.
Перейдите на страницу Продукты, а затем настройте свойство Items для Gallery_products следующим образом:
If( ID = 1 And Measure_gallery.Selected.Height = 0, (Filter('Easy Sales',(ProductCategory = "Sofa") And ((Depth < Measure_gallery.Selected.BoundingDepth And Width < Measure_gallery.Selected.BoundingWidth) Or (Depth < Measure_gallery.Selected.BoundingWidth And Width < Measure_gallery.Selected.BoundingDepth)))), ID = 1 And Measure_gallery.Selected.Height > 0, (Filter('Easy Sales',(ProductCategory = "Sofa") And ((Depth < Measure_gallery.Selected.BoundingDepth And Width < Measure_gallery.Selected.BoundingWidth And Height <= Measure_gallery.Selected.Height) Or (Depth < Measure_gallery.Selected.BoundingWidth And Width < Measure_gallery.Selected.BoundingDepth And Height <= Measure_gallery.Selected.Height)))), ID = 1, Filter('Easy Sales',ProductCategory = "Sofa"), ID = 2, Filter('Easy Sales',ProductCategory = "Chair"), ID = 2 And Measure_gallery.Selected.Height = 0, (Filter('Easy Sales',(ProductCategory = "Chair") And ((Depth < Measure_gallery.Selected.BoundingDepth And Width < Measure_gallery.Selected.BoundingWidth) Or (Depth < Measure_gallery.Selected.BoundingWidth And Width < Measure_gallery.Selected.BoundingDepth)))), ID = 2 And Measure_gallery.Selected.Height > 0, (Filter('Easy Sales',(ProductCategory = "Chair") And ((Depth < Measure_gallery.Selected.BoundingDepth And Width < Measure_gallery.Selected.BoundingWidth And Height <= Measure_gallery.Selected.Height) Or (Depth < Measure_gallery.Selected.BoundingWidth And Width < Measure_gallery.Selected.BoundingDepth And Height <= Measure_gallery.Selected.Height)))), ID = 3, Filter('Easy Sales',ProductCategory = "Table"), ID = 3 And Measure_gallery.Selected.Height = 0, (Filter('Easy Sales',(ProductCategory = "Table") And ((Depth < Measure_gallery.Selected.BoundingDepth And Width < Measure_gallery.Selected.BoundingWidth) Or (Depth < Measure_gallery.Selected.BoundingWidth And Width < Measure_gallery.Selected.BoundingDepth)))), ID = 3 And Measure_gallery.Selected.Height > 0, (Filter('Easy Sales',(ProductCategory = "Table") And ((Depth < Measure_gallery.Selected.BoundingDepth And Width < Measure_gallery.Selected.BoundingWidth And Height <= Measure_gallery.Selected.Height) Or (Depth < Measure_gallery.Selected.BoundingWidth And Width < Measure_gallery.Selected.BoundingDepth And Height <= Measure_gallery.Selected.Height)))) )
Важный
Укажите соответствующие имена для списка SharePoint и Галереи , чтобы избежать ошибок в будущем. Сохраняйте имена компонентов в формулах, чтобы избежать путаницы.
Заметка
Пространственная фильтрация не используется для раздела ковров, так как добавлена другая характеристика, специфическая для продукта. Область, измеряемая по в сеансе MR, будет использоваться для оценки стоимости выбранного ковра.
Совет
Часто сохраняйте приложение, выбрав вкладку "Файл" в верхней части и выбрав параметр "Сохранить". Если появится запрос, выберите параметр "Облако", а затем выберите "Сохранить".
Вычисление цены на основе области
Перейдите на страницу Carpet_details, затем добавьте метку , а потом переименуйте её в Area_carpets.
Добавьте еще одну пустую метку рядом с меткой Area_carpets, а затем настройте свойство Text этой пустой метки следующим образом, чтобы отобразить вычисляемую область:
Measure_gallery.Selected.Area&"cm²"
Настройте метку рядом с меткой Price следующим образом, чтобы отобразить вычисляемую цену:
"$"&Measure_gallery.Selected.Area * content_carpets.'Price/cm2'
После реализации описанных выше шагов приложение будет пространственно отфильтровывать продукты и вычислять точную цену ковров на основе реальных измерений.