У цьому посібнику ми поговоримо про перевірку даних і навіщо вона потрібна в наших програмах.
Ми обговорилиу минулих навчальних посібниках, і дивовижно, як ми можемо дозволити кінцевим користувачам безперешкодно вводити нові дані або змінювати наявну інформацію через нашу програму. Однак трапляються випадки, коли кінцевий користувач може ввести інформацію, яка не відповідає вимогам форми. Ось тут і з’являється перевірка даних.
Зміст
Що таке перевірка даних?
Перевірка даних запобігає надсиланню кінцевими користувачами помилкових даних у ваші форми.
Наприклад, немає сенсу додавати номери до імені.
Деякі також можуть ввести 1 замість I як помилку.
Без перевірки даних натискання кнопки «Надіслати» автоматично оновить серверне джерело даних. Це може спричинити проблеми, якщо знати, що в наданій інформації були помилки. Перевірка даних допомагає уникнути цієї проблеми.
Перевірка даних перевіряє певні правила та параметри, які допомагають визначити, чи можна надсилати дані форми чи ні.
Існують різні способи налаштування перевірки даних у Power Apps. Давайте розглянемо кілька найкращих способів це зробити.
Перевірка даних за допомогою IsMatch
Раніше ми згадували, що перевірка даних виконується за набором правил. У прикладах, які ми показали, основною проблемою було введення чисел у поля, де числа не матимуть сенсу. У таких випадках функція IsMatch може допомогти нам цього уникнути.
Щоб зрозуміти, як працює IsMatch, давайте переглянемо документ Microsoft Power Apps .
IsMatch приймає текст, шаблон і деякі параметри. По суті, це показує, що ця функція оцінює текст на основі шаблону.
Текст охоплює все, що кінцевий користувач вводить у текстове поле. Що стосується шаблону, існує кілька різних попередньо визначених шаблонів, таких як коми, цифри або адреси електронної пошти.
Наприклад, якщо ви виберете шаблон електронної пошти, IsMatch переконається, що введений текст відповідає цьому шаблону. Звідти він повертатиме True або False.
У нашому випадку ми будемо використовувати шаблон для Digit. Це стосується всіх однозначних цифр від 0 до 9.
Після застосування цього шаблону функція IsMatch шукатиме будь-яку цифру в тексті та поверне значення true або false залежно від того, що вона знайде.
Існують також спеціальні параметри, які допомагають зробити нашу формулу більш точною під час використання функції IsMatch. У цьому випадку ми будемо використовувати параметр Contains. Цей параметр перевіряє, чи з’являється шаблон у тексті, але не обов’язково має починатися чи закінчуватися ним.
Давайте повернемося до нашої програми та подивимося, як ми можемо застосувати це до нашої форми.
Ми почнемо з додавання мітки.
Розмістимо його біля кнопки Надіслати.
Ми хочемо, щоб текст на етикетці створювався динамічно. Але зараз давайте зосередимося на використанні поля FirstName, яке є DataCardValue16.
Ми зробимо це твердження IF. Загалом, якщо ця формула повертає true, ми хочемо, щоб мітка відображала «Помилка перевірки даних». Інакше він залишиться порожнім.
Оскільки оператор IF починається з логічного тексту, ми вставимо сюди нашу функцію IsMatch, яка посилається на текст у полі FirstName. Це представлено DataCardValue16.Text.
Ми також розглянемо фактичний шаблон, який ми хочемо шукати в цій логіці. Додамо Match.Digit.
Нарешті, ми хочемо додати кілька варіантів відповідності. Ми насправді не шукаємо тут точний текст. Замість цього ми просто хочемо зіставити будь-яку цифру, яку містить текст. Тому ми додамо наш параметр Contains.
Простіше кажучи, ця формула запитує, чи є якась цифра десь у тексті? Якщо він поверне значення true, на мітці буде написано «Помилка перевірки даних��. Якщо ні, воно залишається порожнім.
Давайте спробуємо це. Отже, якщо ми введемо Lewis у текстовому полі, але використовуємо 1 замість I, мітка покаже помилку перевірки даних.
Зверніть увагу, що нам навіть не довелося вводити всю назву. У той момент, коли ми ввели 1, мітка відразу показала помилку.
Ми можемо налаштувати цю мітку, щоб зробити помилку більш помітною. Окрім збільшення тексту, давайте зробимо його червоним, щоб означати, що є помилка.
Отже, якщо кінцевий користувач бачить цю помилку, це повідомляє йому, що він ввів неправильні дані та повинен це виправити.
Перевірка даних за допомогою змінних
Хоча ми встановили мітку, яка сповіщає кінцевого користувача про помилку в даних, які вони намагаються ввести, ви помітите, що у нас все ще є кнопка «Надіслати», яку вони можуть натиснути, навіть якщо є помилка. Ми хочемо, щоб кнопка не з’являлася, коли виявляється помилка.
Це можна зробити двома способами. Перший — це логічний і простіший шлях, тоді як другий підхід буде складнішим, але також полегшить його, коли ви почнете додавати більше перевірки даних на екрані.
Почнемо з першого підходу.
Спочатку скопіюйте всю формулу, яка використовується на нашій етикетці.
Потім виділіть кнопку, виберіть у розкривному списку властивість видимості та вставте формулу в рядок формул. Це динамічно встановлює видимість кнопки відповідно до цієї логіки.
Отже, якщо текстове поле містить цифру, то кнопку не буде видно.
Давайте перевіримо, чи це спрацює. Якщо я зміню букву O у Coy на нуль, ви побачите, що з’явиться помилка, а кнопка «Надіслати» зникне.
Якщо ми знову змінимо це на O, кнопка повернеться.
Проблема з цим підходом полягає в тому, що ми використовуємо ту саму логіку в двох різних місцях — мітці та кнопці. Це означає, що якщо є щось, що потрібно змінити, вам доведеться робити це також у двох різних місцях. Це може стати втомливим, особливо якщо пізніше ви додасте більше логіки перевірки.
Щоб вирішити цю проблему, ми додамо ще одну кнопку. Давайте розташуємо нову кнопку поруч із кнопкою Надіслати.
Назвемо це кнопкою Перевірити.
Тоді давайте введемо ту саму логіку в цю кнопку.
Ми хочемо, щоб ця кнопка оновлювала для нас змінну, яка оновлює контекст.
Отже, давайте видалимо частину формули, яка запитує логіку відображення помилки перевірки даних, і змінимо її на UpdateContext.
Нам це потрібно для посилання на змінну, тому давайте створимо змінну під назвою Submit . Ми встановимо для цього параметра значення false, якщо помилка перевірки дійсно станеться.
Тоді ми негайно продовжимо це з тим самим форматом, але цього разу ми встановимо для нього значення true, якщо текстове поле не містить цифри.
Ми зробили видимість кнопок залежною від змінної, яку ми створили, а не від логіки. Тому нам також потрібно буде змінити логіку кнопки «Надіслати» та просто зробити її видимість рівною «Надіслати», тобто змінній, про яку ми говоримо.
Тож давайте введемо Coy у текстове поле, а потім натиснемо підтвердити.
Як бачите, після того, як ми це зробимо, з’явиться кнопка «Надіслати».
Тепер давайте змінимо O на нуль і натиснемо перевірку. Цього разу кнопка надсилання зникає.
Тепер, коли ми виправили кнопки, давайте також змінимо логіку в мітці. На даний момент він все ще містить оригінальну логіку за допомогою функції IsMatch.
Оскільки ми зараз базуємо нашу логіку на змінній Submit, ми хочемо поміняти пробіл і помилку. Отже, якщо Submit має значення true, ми хочемо, щоб мітка була порожньою. Але якщо Submit має значення false, ми хочемо, щоб наш текст помилки з’явився.
Щоб полегшити розуміння повідомлення про помилку кінцевим користувачам, змінимо його на «Можлива помилка перевірки даних – натисніть «Перевірити», щоб перевірити».
Щоб перевірити цю нову логіку, яку ми використали, давайте перейдемо до іншого запису для Anitra та клацнемо піктограму «Редагувати».
Як бачите, на цій сторінці ще немає помилок перевірки.
Якщо я зміню Anitra на Anitr0 і натисну «Перевірити», тоді з’явиться повідомлення про помилку.
Забезпечення повного процесу перевірки
Через те, як ми налаштували процес перевірки даних на цьому екрані, є дві можливі проблеми, які можуть призвести до надсилання неправильних даних.
Перша проблема полягає в тому, що можна пропустити натискання кнопки «Перевірити», оскільки кнопка «Надіслати» все ще відображається, якщо в процесі перевірки не станеться помилка. Тож ми можемо просто ввести, наприклад, Alons5, проігнорувати кнопку Перевірити та одразу натиснути кнопку Надіслати.
Друга проблема полягає в тому, що якщо ми перевіримо правильний запис, ми все одно зможемо повернутися до текстового поля та ввести все, що забажаємо. Отже, якщо з’явиться кнопка «Надіслати», будь-хто може легко повернутися до текстового поля, ввести цифру та натиснути кнопку «Надіслати».
Нам потрібно зробити змінну Submit false за замовчуванням. Нам також потрібно переконатися, що щоразу, коли хтось натискає текстове поле, усе повертається до режиму за замовчуванням.
Отже, перейдіть до поля FirstName і виберіть OnSelect у спадному меню властивостей. Потім скористаємося UpdateContext і посилаємося на змінну Submit. Тоді ми встановимо значення false.
Тепер щоразу, коли хтось натискає на текстове поле, користувачеві автоматично пропонується спочатку натиснути Перевірити.
Тож якщо я спробую змінити ім’я на Френк і натисну «Перевірити», це єдиний раз, коли з’явиться кнопка «Надіслати».
Але якщо я повернуся до того самого текстового поля та спробую додати 1 у кінці Frank, він повернеться до стандартного стану, де відображається помилка, а кнопка «Надіслати» зникне.
Висновок
Перевірка даних допомагає захистити наші дані та гарантує, що кінцеві користувачі помилково не надсилатимуть неправильні записи. Те, що ми пройшли в цьому підручнику, насправді є лише частиною основ. Ви можете додати скільки завгодно типів перевірки.
Крім того, ми встановлюємо перевірку даних лише для імені. Ви можете піти далі і зробити те саме для прізвища. Ви навіть можете встановити рівень VIP або номер паспорта, щоб відображалися лише цифри. Все залежить від того, до яких полів ви хочете застосувати різні процеси перевірки.
Все найкраще,
Генрі