Світлофори або відображення іконок у View

Доволі часто, нам би хотілось відобразити поруч з даними на View (далі- Подання), якийсь графічний елемент – наприклад іконку. Це дуже зручно для відображення наприклад, статусів запису або їх приіоритету: Низький, Середній, Високий тощо.

Інколи, нам просто хочеться зробити так, щоб наше Подання не виглядало нудно, так би мовити – привнести, хоч якість кольори.
Для прикладу візьмемо сьогодні середовище в PowerApps, в якому вже розгорнутий Project Accelerator (завантажити рішення можна за посиланням https://github.com/OfficeDev/Project-Accelerator).

Подання Запитів Проекту зі стовпцем Пріоритет

Зараз на цьому поданні ми бачимо стовпець “Пріоритет“, наша мета в цій статті – зробити світлофор або додати іконки, які б показувались в залежності від статусу.

Перший крок, який нам необхідно зробити, це власне знайти іконки, бажано в форматі svg. Я рекомендую додати в Вибрані сайт https://www.svgrepo.com/, шукаємо потрібну нам іконку, написавши в пошуку наприклад “Red circle“.

Завантажуємо майбутні іконки

Переходимо за адресою make.powerapps.com, я попередньо створив Рішення (Solution), всередині свого рішення чи в рішенні за замовчанням, створюємо веб-ресурс та додаємо попередньо завантажені іконки.

Створюємо веб-ресурс із попередньо завантаженою іконкою

Додали 3 іконки з відповідними кольорами.

Всі іконки додані

Тепер ми можемо відобразити їх після публікації (памʼятаємо, що тільки команда публікації – робить наші зміни доступними).

Не забуваємо натискати кнопку Publish

Далі, нам треба створити такий же елемент – веб ресурс, єдине, що його тип має бути JScript, зручніше це робити з класичного інтерфейсу.

Переходимо в класичний інтерфейс

Створюємо новий веб-ресурс, заповнюємо всі поля та тиснемо Text Editor

Створення нового веб-ресурсу з типом JScript


В редакторі вставляємо, шматочок коду, в якому вам потрібно буде замінити значення на власні, такі як:
Function= назва функції, яку ми будемо викликати у Поданні.
coldata1= назва вашого списку (Choice), з якого будуть братися значення
case= значення у списку (цифрові наприклад 493 680 001).
imgName1= назва вашого веб-ресурсу з відповідною іконкою.

Отримуємо значення з Списку “Пріоритет” – нас цікавлять цифрові значення (Value)
function PRView(rowData1, userLCID1) {
    
    var str1 = JSON.parse(rowData1);
    var coldata1 = str1.proj_priority_Value;
    var imgName1 = "";
    var tooltip1 = "";

    switch (coldata1) {
        case 189330001: 
            imgName1 = "leo_red_icon";
            tooltip1 = "High";
            break;
        case 189330002:
            imgName1 = "leo_yellow_icon";
            tooltip1 = "Moderate";
            break;
        case 189330003:
            imgName1 = "leo_green_icon";
            tooltip1 = "Low";
            break;
    }
    var resultarray1 = [imgName1, tooltip1];
    return resultarray1;
}

ВАЖЛИВО:   var coldata1 = str1.proj_priority_Value;
Після назви вашого Списку вкажіть _Value.
Вставляємо наш код в Text Editor

Зберігаємо наш новий веб-ресурс та публікуємо зміни.
Наступний крок – нам необхідно, застосувати функцію, яку ми вказали в коді, в моєму випадку, це PRView у відповідному Поданні таблиці Project Request.

Оскільки я працюю в рішенні, яке я спеціально створив – то, мені необхідно додати вже існуючу таблицю і її Подання в своє рішення.

Додаємо в класичному інтерфейсі (Add Existing), таблицю та відповідне Подання
Обираємо тільки Подання, яке нас цікавить

Відкриваємо в тому ж класичному інтерфейсі, Подання в моєму випадку Active Project Request. В класичному інтерфейсі, час відповіді, часто буває довгим – тому, періодично ви зможете ходити і робити собі каву ☕️ 🤦🏻‍♂️.

Після відкриття Подання – натискаємо 2 рази на потрібному нам стовпчику або виділяємо його та натискаємо “Change Properties”.
За допомогою пошуку в полі Web resource знаходимо по назві, створений нами веб-ресурс із шматочком коду, в поле Function Name вписуємо імʼя нашої функції.

Посилаємось на веб-ресурс та відповідну функцію

При збереженні, дуже часто буває повідомлення про помилку, я його ігнорую. Хто з вас розбирався, чому вона виникає – напишіть в коментарях.

Публікуємо зміни та оновлюємо сторінку з відповідним Поданням.

Вітаю нас – все вийшло, 🚦 працює!

Як бачимо все працює

P.S. У Microsoft є стаття, по точно такій же темі)
https://docs.microsoft.com/en-us/power-apps/maker/data-platform/display-custom-icons-instead

Leave a comment