Упражнение: Измерение в MR и фильтрация в Power Apps

Завершено

В этом уроке вы будете использовать некоторые ключевые функциональные компоненты Power Apps. Это включает меру в способах МРТ и фильтрации. Пользователи могут измерять расстояние, площадь и объем в реальном мире с помощью компонента Measure в MR Power Apps.

Пространственная фильтрация с использованием меры в МР

Функция мер в MR используется для пространственной фильтрации продуктов, которые можно легко поместить в реальный мир в соответствии с измерениями, полученными через сеанс измерения. Для фильтрации используются некоторые основные формулы.

  1. Перейдите на домашнюю страницу . На вкладке Вставка разверните раскрывающийся список смешанной реальности и выберите меру в MR.

    Снимок экрана, чтобы добавить измерение в MR

  2. Расположите кнопку 'Measure in MR', как показано на рисунке, затем настройте следующие свойства:

    • Text: фильтр по измерениям
    • единиц измерения: сантиметры
    • тип измерения: Freeform

    Скриншот для настройки свойств Measure в MR

  3. На домашней странице добавьте коллекцию, выбрав коллекцию>вертикальную. Измените имя коллекции на Measure_gallery.

    снимок экрана, чтобы добавить галерею.

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

    снимок экрана для настройки макета

  5. Настройте свойство Items элемента Measure_gallery, добавив следующую строку:

    MeasureInMR1.Measurements
    

    снимок экрана источника данных галереи.

  6. Удалите разделитель и NextArrow. Разместите заголовок, подзаголовоки текст на равном расстоянии друг от друга, как показано на изображении.

    снимок экрана с равномерным размещением.

  7. Настройте свойство Text трех меток следующим образом:

    • Заголовок:

      "Unit: "&ThisItem.Unit
      

      снимок экрана: текст заголовка

    • Подзаголовок:

      "Area: "&ThisItem.Area&"cm²"
      

      снимок экрана с текстом субтитров.

    • тело:

      "Height: "&ThisItem.Height&"cm"
      

      снимок экрана текста.

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

    снимок экрана: добавление значка перезагрузки.

  9. Поместите значок, как показано на изображении, и настройте свойство OnSelect следующим образом:

    UpdateContext({galleryvisible:false});
    

    снимок экрана: настройка onSelect для значка перезагрузки.

    Совет

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

  10. После полной настройки компонента 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))))
    )
    

    снимок экрана настройки элементов в Sofas.

    Важный

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

    Заметка

    Пространственная фильтрация не используется для раздела ковров, так как добавлена другая характеристика, специфическая для продукта. Область, измеряемая по в сеансе MR, будет использоваться для оценки стоимости выбранного ковра.

    Совет

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

Вычисление цены на основе области

  1. Перейдите на страницу Carpet_details, затем добавьте метку , а потом переименуйте её в Area_carpets.

    снимок экрана добавления метки области

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

    Measure_gallery.Selected.Area&"cm²"
    

    снимок экрана вычисления области.

  3. Настройте метку рядом с меткой Price следующим образом, чтобы отобразить вычисляемую цену:

    "$"&Measure_gallery.Selected.Area * content_carpets.'Price/cm2'
    

    снимок экрана вычисления цены.

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

Анимация демонстрации приложения после реализации меры в г-н и пространственной фильтрации.