Об'єкт програми в Power Apps
Застосовується до: програм Canvas Програм
на основі моделі
Містить відомості про поточну активну програми та дозволяє керувати поведінкою програми.
Опис
Як і елемент керування, об'єкт програми надає властивості, які визначають, який екран відображається, просять користувача зберегти зміни, щоб на втратити їх. Кожна програма має об'єкт Програма.
Для деяких властивостей об'єкта програма можна написати формули. У верхній частині області Подання дерева виберіть об'єкт Програма, так само, як і будь-який інший елемент керування або екран. Перегляньте та відредагуйте одну із властивостей об'єкта, вибравши її в розкривному списку ліворуч від рядка формул.
Властивість ActiveScreen
Властивість ActiveScreen визначає, який екран відображається.
Ця властивість повертає об’єкт екрана. Використовуйте його для посилання на властивості поточного показаного екрана, такі як назва з формулою App.ActiveScreen.Name. Ви також можете порівняти цю властивість з іншим об’єктом екрана, наприклад, за допомогою формули порівняння App.ActiveScreen = Screen2 , щоб перевірити, чи є Screen2 поточним відображеним екраном.
Скористайтеся функціями Back або Navigate, щоб змінити, який екран відображається.
Властивість BackEnabled
Властивість BackEnabled змінює реакцію програми на жест «Назад» пристрою (проведіть пальцем або використовуйте апаратну кнопку «Назад» на Android пристроях, проведіть пальцем зліва на iOS пристроях) під час роботи на Power Apps мобільному пристрої. Коли цей параметр увімкнено, жест «Назад» пристрою повертається до екрана, який відображався останнім, що схоже на формулу «Назад ». Якщо вимкнено, жест «Назад» повертає користувача до списку програм.
Властивості ConfirmExit
Ніхто не хоче втрачати незбережені зміни. Скористайтеся властивостями ConfirmExit та ConfirmExitMessage, щоб попередити користувача перед закриттям програми.
Нотатка
- ConfirmExit не працює в програмах, які вбудовані, наприклад, Power BI SharePoint та.
- Тепер ці властивості можуть посилатися на елементи керування лише на першому екрані, якщо ввімкнено функцію попереднього перегляду відкладеного завантаження (яка є за замовчуванням для нових програм). Якщо посилання зроблено, Power Apps Studio не відображає повідомлення про помилку, але отримана опублікована програма не відкриється в Power Apps Mobile або браузері. Ми активно працюємо над тим, щоб зняти це обмеження. Тим часом ви можете вимкнути функцію Відкладене завантаження в розділі Параметри>Заплановані функції (в області Підготовчі).
ConfirmExit
ConfirmExit — це логічна властивість, яка, якщо true, відкриває діалогове вікно підтвердження перед закриттям програми. За замовчуванням ця властивість має значення FALSE, а діалогове вікно не відображається.
У ситуаціях, коли користувач може мати незбережені зміни в програмі, використовуйте цю властивість, щоб відобразити діалогове вікно підтвердження перед виходом із програми. Використайте формулу, яка може перевіряти змінні та властивості елементів керування (наприклад, властивість Незбережено елемента керування Форма редагування).
Діалогове вікно підтвердження відобразиться в будь-якій ситуації, в якій можна втратити дані, наприклад:
- Виконання функції Exit.
- Якщо програма працює у браузері:
- Закриття браузера або вкладки браузера, в якій працює програма.
- Натискання кнопки "назад" браузера.
- Запуск функції Launch з параметром LaunchTarget або Self.
- Якщо додаток працює на мобільному Power Apps пристрої (iOS або Android):
- Проведення пальцем, щоб переключитися на іншу програму у Power Apps Mobile.
- Натискання кнопки "назад" на пристрої Android.
- Запуск функції Launch для запуску іншої компонованої програми.
Точний вигляд діалогового вікна підтвердження може відрізнятися залежно від пристрою і версії Power Apps.
Діалогове вікно підтвердження не відображається у Power Apps Studio.
ConfirmExitMessage
За замовчуванням у діалоговому вікні підтвердження відображається загальне повідомлення мовою користувача, наприклад, «У вас можуть бути незбережені зміни.»
Використайте ConfirmExitMessage для створення настроюваного повідомлення в діалоговому вікні підтвердження. Якщо ця властивість має значення пусто, то використовується значення за замовчуванням. Настроювані повідомлення скорочуються, якщо це необхідно, щоб вписатися в діалогове вікно підтвердження, тож обмежте максимальну довжину повідомлення кількома рядками.
У браузері діалогове вікно підтвердження може відображатися з загальним повідомленням від браузера.
Нотатка
Об’єкт програми має ще дві властивості, OnMessage
і BackEnabled
, які є експериментальними. Зрештою, ці властивості буде видалено з об’єкта програми. Рекомендуємо не використовувати ці властивості у робочому середовищі.
Приклад
Створіть програму, яка містить два елементи керування "Форма": AccountForm та ContactForm.
Встановіть значенням властивості ConfirmExit об'єкта Програма цей вираз:
AccountForm.Unsaved Or ContactForm.Unsaved
Це діалогове вікно відобразиться, якщо користувач змінить дані у будь-якій формі або потім спробує закрити програму, не зберігаючи ці зміни.
Встановіть значенням властивості ConfirmExitMessage об'єкта Програма цю формулу:
If( AccountsForm.Unsaved, "Accounts form has unsaved changes.", "Contacts form has unsaved changes." )
Це діалогове вікно відобразиться, якщо користувач змінить дані у формі "Бізнес-партнер" або потім спробує закрити програму, не зберігаючи ці зміни.
Налаштуйте ключ контрольно-вимірювальних приладів для Application Insights
Щоб експортувати журнали програм, створені системою Application Insights, у вас потрібно налаштувати ключ інструментів для програми canvas.
- Відкрийте програму для редагування Power Apps Studio.
- Виберіть об’єкт «Програма » в режимі дерева навігації ліворуч.
- Введіть ключ інструментарію на панелі властивостей.
Якщо дані не надсилаються в статистику додатків, зверніться до адміністратора Power Platform та перевірте, чи не вимкнено статистику додатків на рівні клієнта.
Властивість «Формули»
Використовуйте іменовані формули у властивості Формули для визначення формули, яку можна буде повторно використовувати у програмі.
У Power Apps формулах визначається значення керуючих властивостей. Наприклад, щоб узгодити колір фону в програмі, можна встановити у значенні властивості Fill («Заливка») кожного екрана поширену формулу:
Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )
Якщо формула використовується у великій кількості місць, змінювати її стає складно, а також при цьому важко уникнути помилок. Натомість можна створити глобальну змінну в OnStart, щоб один раз установити колір, а потім повторно використовувати це значення в програмі:
App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Хоча цей метод є кращим, він також залежить від виконання OnStart перед установкою значення BGColor. BGColor також може бути об’єктом маніпуляцій у якомусь кутку програми, про який виробник не знає, зміна, внесена кимось іншим, і яку може бути важко відстежити.
Альтернативою є іменовані формули. Так само, як ми зазвичай записуємо control-property = expression (властивість елемента керування = вираз), можна замість цього записати name = expression (ім'я = вираз), і далі використовувати name (ім'я) усюди в програмі, щоб замінити expression (вираз). Визначення цих формул виконується у властивості Formulas (Формули).
App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor
Переваги використання іменованих формул зазначено нижче.
- Значення формули завжди доступне. Не існує залежності від моменту часу, жодна подія OnStart не повинна бути виконана перед тим, як задавати значення, і також відсутній проміжок часу, коли значення формули неправильне. Іменовані формули можуть посилатися одна на одну в будь-якому порядку, доки не створюють циклічне посилання. Їх можна розраховувати паралельно.
- Значення формули завжди актуальне. Формула може виконувати обчислення, залежне від властивостей елемента керування або записів бази даних, і при зміненні цих значень автоматично змінюватиметься і значення формули. Це значення не потрібно оновлювати вручну, на відміну від значень змінних. І формули повторно обчислюються лише за необхідності.
- Визначення формули є незмінним. Визначення в Формулах є єдиним джерелом правдивих відомостей, і значення не може змінюватись ніде більше у програмі. У випадку зі змінними можливо, що якийсь код несподівано змінює значення, але ця складна для налагодження ситуація неможлива з іменованими формулами.
- Можна відкласти обчислення формули. Оскільки його значення незмінне, його завжди можна обчислити, коли це необхідно, а це означає, що його не потрібно обчислювати, поки воно не знадобиться. Значення формул, які не використовуються, доки не буде відображено екран screen2 програми, не буде обчислено, доки екран screen2 не стане видимим. Відкладання цієї роботи може прискорити час завантаження програми. Іменовані формули є декларативними та створюють для системи можливості оптимізації щодо того, як і коли вони обчислюватимуться.
- Іменовані формули — це концепція Excel. Power Fx використовує концепції Excel, де це можливо, оскільки Excel добре знає велика кількість людей. Іменовані формули є еквівалентом іменованих клітинок та іменованих формул у програмі Excel, які керуються за допомогою диспетчера імен. Вони переобчислюються автоматично, як це роблять клітинки електронної таблиці та властивості керування.
Іменовані формули визначаються по порядку у властивості Formulas («Формули»), після кожної ставиться крапка з комою. Тип формули визначається на основі типів елементів у формулі та їх спільного використання. Наприклад, наведені нижче іменовані формули витягують корисну інформацію про поточного користувача з Dataverse.
UserEmail = User().Email;
UserInfo = LookUp( Users, 'Primary Email' = User().Email );
UserTitle = UserInfo.Title;
UserPhone = Switch( UserInfo.'Preferred Phone',
'Preferred Phone (Users)'.'Mobile Phone', UserInfo.'Mobile Phone',
UserInfo.'Main Phone' );
Якщо потрібно оновити формулу UserTitle, це можна легко зробити в єдиному місці. Якщо UserPhone у програмі не використовується, ці виклики до таблиці Users (Користувачі) у Dataverse не виконуються. Немає жодних негативних наслідків після включення визначення формули, яке не використовується.
Деякі обмеження іменованих формул згадано нижче.
- Вони не можуть використовувати функції поведінки або спричиняти побічні наслідки в програмі іншим чином.
- Вони не можуть створювати циклічні посилання. Не дозволяється в одній програмі створювати одночасно a = b; і b = a;.
Функції, визначені користувачем
Важливо
- Функції, визначені користувачем, є експериментальними.
- Експериментальні функції не призначені для промислового використання та можуть бути неповними. Ці функції доступні до офіційного релізу, щоб ви могли отримати ранній доступ і залишити відгук. Додаткові відомості: Відомості про експериментальні, підготовчі та виключені функції в компонованих програмах
- Поведінка, описана в цій статті, доступна, лише якщо в розділі "Параметри Експериментальні > функції" ввімкнуто експериментальну функцію "Визначені користувачем > " (за умовчанням її вимкнуто).
- Ваші відгуки важливі для нас. Повідомте нам, що ви думаєте, на форумі Power Apps спільнотиекспериментальних функцій.
Power Fx включає довгий список вбудованих функцій, таких як If, Text і Set. Визначені користувачем функції дозволяють вам записувати власні функції, які приймають параметри та повертають значення, так само, як це роблять вбудовані функції. Ви можете думати про визначені користувачем функції як про розширення іменованих формул, яке додає параметри та підтримує формули поведінки.
Наприклад, можна визначити іменовану формулу, яка повертає художні книги з бібліотеки:
Library = [ { Title: "The Hobbit", Author: "J. R. R. Tolkien", Genre: "Fiction" },
{ Title: "Oxford English Dictionary", Author: "Oxford University", Genre: "Reference" } ];
LibraryFiction = Filter( Library, Genre = "Fiction" );
Без параметрів нам довелося б визначати окремі іменовані формули для кожного жанру. Але замість цього давайте параметризуємо нашу іменовану формулу:
LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );
LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );
Тепер ми можемо викликати LibraryGenre( "Fiction" )
або LibraryGenre( "Reference" )
фільтрувати за іншими жанрами за допомогою єдиної функції, визначеної користувачем.
Синтаксис такий:
FunctionName( [ Ім’яПараметра1: Тип параметра1 [, Ім’яПараметра2: Тип параметра2 ... ] ) : Формула = ReturnType;
- FunctionName – обов’язковий. Ім’я функції, визначеної користувачем.
- ParameterNames– необов’язковий . Ім’я параметра функції.
- ParameterTypes – необов’язковий. Ім’я типу, ім’я вбудованого типу даних, ім’я джерела даних або типу, визначеного функцією Тип .
- ReturnType – обов’язковий. Тип значення, що повертається з функції.
- Формула – Обов’язкова. Формула, яка обчислює значення функції на основі параметрів.
Кожен параметр і вихідні дані з функції визначення користувача повинні бути введені. У цьому прикладі SelectedGenre: Text
визначає перший параметр нашої функції як тип Текст і SelectedGenre
є ім’ям параметра, який використовується в тілі для операції Фільтр. Перегляньте розділ Типи даних для імен підтримуваних типів. Функція Type використовується для створення агрегатного типу для нашої бібліотеки, щоб ми могли повернути таблицю книг з нашої функції.
Ми визначили LibraryType
у вигляді множини тип запису. Якщо ми хочемо передати одну книгу у функцію, ми можемо витягнути тип запису для цієї таблиці за допомогою функції RecordOf:
BookType := Type( RecordOf( LibraryType ) );
IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);
Збіг записів для параметрів функції більш жорсткий, ніж в інших частинах Power Fx. Поля запису мають бути відповідною підмножиною визначення типу та не можуть включати додаткові поля. Наприклад, IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" )
призведе до помилки.
Зауважте, що рекурсія ще не підтримується функціями, визначеними користувачем.
Поведінка функцій, визначених користувачем
Іменовані формули та більшість визначених користувачем функцій не підтримують функції поведінки з побічними ефектами, такі як «Встановити » або «Сповістити». Загалом, краще уникати оновлення стану, якщо це можливо, натомість покладаючись на функціональні шаблони програмування та дозволяючи Power Fx автоматично перераховувати формули за потреби. Але є випадки, коли цього не уникнути. Щоб включити логіку поведінки в визначену користувачем функцію, оберніть тіло фігурними дужками:
Spend( Amount: Number ) : Void = {
If( Amount > Savings,
Error( $"{Amount} is more than available savings" ),
Set( Savings, Savings - Amount );
Set( Spent, Spent + Amount)
);
}
Тепер ми можемо зателефонувати Spend( 12 )
, щоб перевірити, чи є у нас 12 у наших заощадженнях, і якщо так, то списати його на 12 і додати 12 до змінної «Витрачено». Типом повернення цієї функції є Void , оскільки вона не повертає значення.
Синтаксис функції, визначеної користувачем у поведінці:
FunctionName( [ Ім’яПараметра1: Тип параметра1 [, Ім’яПараметра2: Тип параметра2 ... ] ] : ReturnType = { Формула1[ ; Формула2 ... ] };
- FunctionName – обов’язковий. Ім’я функції, визначеної користувачем.
- ParameterNames– необов’язковий . Ім’я параметра функції.
- ParameterTypes – необов’язковий. Ім’я типу, ім’я вбудованого типу даних, ім’я джерела даних або типу, визначеного функцією Тип.
- ReturnType – обов’язковий. Тип значення, що повертається з функції. Використовуйте Void , якщо функція не повертає значення.
- Формули– обов’язкові . Формула, яка обчислює значення функції на основі параметрів.
Як і у випадку з усіма Power Fx формулами, виконання не закінчується при виникненні помилки. Після виклику функції «Помилка» функція «Якщо » запобігає змінам у параметрах «Заощадження » та «Витрачені ». Функція IfError також може використовуватися для запобігання подальшому виконанню після помилки. Незважаючи на те, що формула повертає Void, вона все одно може повернути помилку, якщо виникне проблема.
Користувацькі типи
Важливо
- Користувацькі типи є експериментальною функцією.
- Експериментальні функції не призначені для промислового використання та можуть бути неповними. Ці функції доступні до офіційного релізу, щоб ви могли отримати ранній доступ і залишити відгук. Додаткові відомості: Відомості про експериментальні, підготовчі та виключені функції в компонованих програмах
- Поведінка, описана в цій статті, доступна лише тоді, коли в розділі "Параметри > " "Майбутні функції > " Експериментальний увімкнено (за умовчанням її вимкнуто).
- Ваші відгуки важливі для нас. Повідомте нам, що ви думаєте, на форумі Power Apps спільнотиекспериментальних функцій.
Іменовані формули можна використовувати з функцією Type для створення типів, визначених користувачем. Використовуйте :=
замість =
визначення типу, Book := Type( { Title: Text, Author: Text } )
визначеного користувачем, наприклад. Перегляньте функцію Тип для отримання додаткової інформації та прикладів.
Властивість OnError
Використовуйте OnError , щоб вживати заходів у разі виникнення помилки в будь-якому місці програми. Він надає глобальну можливість перехопити банер з помилкою перед тим, як він буде показаний кінцевому користувачеві. Вона також може використовуватися для журналювання помилок за допомогою функції Trace або записування до бази даних або веб-служби.
У програмах Canvas результат кожного обчислення формули перевіряється на наявність помилки. Якщо виникає помилка, OnError обчислюється за допомогою тих самих змінних області FirstError і AllErrors , які використовувалися б, якби вся формула була обгорнута у функцію IfError.
Якщо значення OnError пусте, відобразиться стандартний банер про помилку із повідомленням помилки FirstError.Message. Визначення формули OnError замінює цю поведінку, тому розробник зможе обробити повідомлення про помилку, як вважає за потрібне. Поведінку за замовчуванням при використанні OnError можна отримати, якщо повторно викинути помилку, скориставшись функцією Error. Використовуйте підхід повторного викидання, якщо деякі помилки потрібно відфільтрувати або обробити по-іншому, тоді як інші потрібно пропустити.
OnError не може замінити помилку в обчисленнях так, як це може зробити IfError . Якщо викликається OnError , це означає, що помилка вже сталася, і вона вже була оброблена за допомогою обчислень формул, таких як IfError; OnError керує лише звітуванням про помилки.
Формули OnError обчислюються одночасно, і їх обчислення може збігатися з обробкою інших помилок. Наприклад, якщо задати глобальну змінну на початку визначення OnError і зчитати її значення пізніше у той самій формулі, значення може змінитися. Використовуйте функцію With для створення іменованого значення, яке буде локальним для формули.
Хоча кожна помилка обробляється окремо в OnError, стандартний банер для кожної помилки окремо може не відображатися. Щоб уникнути одночасного відображення завеликої кількості банерів із помилками, той самий банер із помилками не відображатиметься знову, якщо він був показаний нещодавно.
Приклад
Розглянемо елемент керування Підпис і елемент керування Повзунок, зв'язані між собою наведеною формулою.
Label1.Text = 1/Slider1.Value
Значення за замовчуванням для повзунка — 50. Якщо повзунок перемістити до 0, Label1 не відображатиме жодного значення, і буде показано такий банер помилки:
Розгляньмо докладно, що саме відбувається.
- Користувач перемістив повзунок ліворуч, і властивість Slide1.Value змінилася на 0.
- Текст Label1.Текст було автоматично переоцінено. Виникає ділення на нуль, і створюється помилка.
- У цій формулі немає IfError. Під час обчислення формули повертається помилка ділення на нуль.
- Label1.Text не може нічого показувати для цієї помилки, тому він показує порожній стан.
- Викликається OnError . Оскільки обробник відсутній, відображається стандартний банер про помилку з відомостями про помилку.
За необхідності можна також змінити формулу таким чином: Label1.Text = IfError( 1/Slider1.Value, 0 )
. Використання IfError призведе до відсутності помилки або банера з помилками. Значення помилки не можна змінювати з OnError, оскільки на цей момент помилка вже відбулася, і питання лише в тому, як про неї сповістити.
Якщо ми додамо обробник OnError , це не вплине на крок 5, але може вплинути на те, як повідомляється про помилку:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" )
З цим обробником OnError , з точки зору користувача програми, не буде жодної помилки. Але помилку буде додано до трасування монітора разом із джерелом інформації про помилку від FirstError:
Якщо нам потрібно, окрім трасування, відобразити стандартний банер помилки, ми можемо повторно викинути помилку, скориставшись функцією Error після виклику Trace, точно так само, як ми робили б, якщо б виклику Trace не було, як показано нижче.
Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )
Властивість OnStart
Нотатка
Властивість OnStart може спричинити проблеми з продуктивністю під час завантаження програми. Ми створюємо альтернативи для перших двох причин для використання цієї властивості: кешування даних і встановлення значень глобальних змінних. Ми вже створили альтернативу для визначення першого екрана, який буде відображатися за допомогою Navigate. Залежно від контексту цю властивість за промовчанням можна вимкнути. Якщо вона не відображається та її потрібно використати, перевірте додаткові настройки програми, щоб увімкнути його. Також можна використати властивість OnVisible на екрані. За замовчуванням, коли ввімкнено правило OnStart , яке не блокує , воно дозволяє функції OnStart працювати одночасно з іншими правилами програми. Отже, якщо змінні, на які посилаються в інших правилах програми, ініціалізуються у функції OnStart , вони можуть бути ще не повністю ініціалізовані. Крім того, існує ймовірність того, що екран може відобразитися та стати інтерактивним до того, як функції Screen.OnVisible або App.OnStart завершать виконання, особливо якщо вони займають багато часу.
Властивість OnStart виконується, коли користувач запускає програму. Ця властивість часто використовується для виконання таких завдань:
- Отримання та кешування даних у колекціях за допомогою функції Collect.
- Настроювання глобальних змінних за допомогою функції Set.
Ця формула обчислюється перед відображенням першого екрану. Екран не завантажується, тому не можна настроювати змінні контексту функцією UpdateContext. Проте, можна передати змінні контексту за допомогою функції Navigate.
Після змінення властивості OnStart протестуйте її: наведіть курсор на об'єкт Програма в області подання дерева, вибравши три крапки (...) і натиснувши Запускати OnStart. На відміну від першого завантаження програми, наявні колекції та змінні вже встановлені. Щоб почати з порожніми колекціями, використайте функцію ClearCollect замість функції Collect.
Нотатка
- Використання функції Navigate у властивість OnStart було списано. Наявні програми продовжуватимуть працювати. Протягом обмеженого часу її можна ввімкнути в настройках програми (доступні в розділі Списані). Проте Навігація таким чином може призвести до затримки завантаження програми, оскільки система змушує систему оцінювати OnStart перед відображенням на першому екрані. Використовуйте властивість StartScreen замість обчислення першого екрана.
- Вилучений перемикач буде вимкнено для програм, створених до березня 2021 року, до яких ви додали функцію "Навігація " до OnStart у період з березня 2021 року до теперішнього часу. Під час редагування таких програм у Power Apps Studio може з'явитися повідомлення про помилку. Увімкніть перемикач, що вийшов на пенсію, щоб усунути цю помилку.
Властивість StartScreen
Властивість StartScreen визначає, який екран буде спочатку відображатися. Вона оцінюється після завантаження програми та повертає відображуваний об'єкт на екрані. За замовчуванням ця властивість є порожньою, і першим відображається перший екран у режимі перегляду Studio Tree.
Початковий екран – це властивість потоку даних, яка не може містити функцій поведінки. Доступні всі функції потоку даних, зокрема застосовують такі функції та сигнали, щоб визначити, який екран спочатку відображати
- Функція param для зчитування параметрів, що використовується для запуску програми.
- Функція користувача для зчитування інформації про поточного користувача.
- LookUp, Filter, CountRows, Max та інші функції, які зчитуються з джерела даних.
- Будь-які виклики API через з'єднувач, але будьте обережні, оскільки вона швидко відтворюється.
- Сигнали, як-от ПідключенняКомпас і Програма.
Нотатка
Глобальні змінні та колекції, зокрема змінні, створені в OnStart, недоступні в StartScreen. Іменовані формули доступні й часто є кращою альтернативою для повторного використання формул у програмі.
Якщо екран StartScreen повертає помилку, перший екран подання дерева Studio відображатиметься так, ніби StartScreen не встановлено. Скористайтеся функцією IfError, щоб зафіксувати помилки та переспрямувати на відповідний екран помилки.
Після змінення властивості StartScreen у Studio перевірте її, наведіть курсор на об'єкт Програма в області подання дерева, вибравши три крапки (...) і натиснувши Перейти до StartScreen. Екран зміниться так, ніби програму щойно завантажили.
Приклади
Screen9
Свідчить про те, що Screen9
має відображатися спочатку під час запуску програми.
If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )
Перевіряє, чи «режим адміністрування» Param було встановлено користувачем і використовує це для вирішення, чи потрібно спочатку відображати HomeScreen чи AdminScreen.
If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )
Перевіряє, чи є учасник конференції співробітником і спрямовує їх на відповідний екран під час запуску.
IfError( If( CustomConnector.APICall() = "Forest",
ForestScreen,
OceanScreen
),
ErrorScreen
)
Спрямовує програму на основі виклику API до ForestScreen
або OceanScreen
. Якщо API не вдається з будь-якої причини, використовується ErrorScreen
.
Властивість StudioVersion
Використовуйте властивість StudioVersion , щоб відобразити або записати в журнал версію, яка була використана Power Apps Studio для публікації програми. Це може бути корисним під час налагодження та для забезпечення повторної публікації вашої програми з останньою версією Power Apps Studio.
StudioVersion повертається у вигляді тексту. Формат тексту може змінюватися з плином часу і повинен розглядатися як єдине ціле; Уникайте екстракції окремих порцій.