Разберете променливите в приложенията на платното
Ако сте използвали друг инструмент за програмиране, като Visual Basic JavaScript, може да се запитате: Къде са променливите? Power Apps е малко по-различно и изисква различен подход. Вместо да посягате към променлива, когато създавате приложение за платно, запитайте се: Какво бих направил в Excel?
В други инструменти може да сте изрично извършили изчисление и да запазите резултата в променлива. Въпреки това, Power Apps и Excel автоматично преизчисляват формулите, тъй като входните данни се променят, така че обикновено няма нужда да създавате и актуализирате променливи. Като използвате този подход, когато е възможно, можете по-лесно да създадете, разберете и поддържате приложението си.
В някои случаи ще трябва да използвате променливи in Power Apps, което разширява модела на Excel чрез добавяне на формули за поведение. Тези формули се изпълняват, когато например потребител избере бутон. В рамките на формула на поведение често е полезно да зададете променлива, която да се използва в други формули.
Като цяло избягвайте използването на променливи. Но понякога само променлива може да даде възможност на опита, който искате. Променливите се създават неявно и се въвеждат, когато се появяват във функции, които задават техните стойности.
Преведете Excel в Power Apps
Excel
Нека да прегледаме как работи Excel. Клетката може да съдържа стойност, като число или низ, или формула, която се основава на стойностите на други клетки. След като потребителят въведе различна стойност в клетка, Excel автоматично преизчислява всички формули, които зависят от новата стойност. Не е необходимо да правите програмиране, за да активирате това поведение.
В следващия пример, клетка A3 е зададена във формулата А1 + А2. Ако A1 или A2 се промени, A3 автоматично преизчислява, за да отрази промяната. Това поведение не изисква кодиране извън самата формула.
Excel няма променливи. Стойността на клетка, която съдържа формула, се променя въз основа на нейния вход, но няма начин да запомните резултата от формула и да я съхранявате в клетка или на друго място. Ако промените стойността на клетката, цялата електронна таблица може да се промени и всички изчислени по-рано стойности се губят. Потребител на Excel може да копира и залепва клетки, но това е под ръчния контрол на потребителя и не е възможно с формули.
Power Apps
Приложения, които създавате в Power Apps се държат много подобно на Excel. Вместо да актуализирате клетки, можете да добавяте контроли, където искате на екрана, и да ги назовавате за използване във формули.
Например можете да възпроизведете поведението на Excel в приложение, като добавите контрола Label , наречена Label1, и две контроли за въвеждане на текст, наречени TextInput1 и TextInput2. Ако след това зададете свойството Text на Label1 на TextInput1 + TextInput2, то винаги автоматично ще показва сумата от числата, които са в TextInput1 и TextInput2 .
Забележете, че е избрана контролата Label1 , която показва формулата Текст в лентата за формули в горната част на екрана. Тук намираме формулата TextInput1 + TextInput2. Тази формула създава зависимост между тези контроли, точно както се създават зависимости между клетките в работна книга на Excel. Нека променим стойността на TextInput1:
Формулата за Label1 автоматично се преизчислява, показвайки новата стойност.
В Power Apps можете да използвате формули, за да определите не само основната стойност на контрола, но и свойствата като форматиране. В следващия пример формула за свойството Цвят на етикета автоматично ще покаже отрицателни стойности в червено. Функцията If трябва да изглежда позната от Excel:
If( Value(Label1.Text) < 0, Red, Black )
Можете да използвате формули за голямо разнообразие от сценарии:
- Чрез използване на GPS устройството ви, контрола на картата може да показва текущото ви местоположение с използвана формула Location.Latitude и Location.Longitude. Докато се движите, картата автоматично ще проследи вашето местоположение.
- Други потребители могат да актуализират източници на данни. Например, други от вашия екип могат да актуализират елементи в списък. Когато опресните източник на данни, всички зависими формули се преизчисляват автоматично, за да отразяват актуализираните данни. Продължавайки примера, можете да зададете свойството Елементи на галерия на формулата Filter( SharePointList ), която автоматично ще покаже новофилтрирания набор от записи.
Ползи
Използването на формули за изграждане на приложения има много предимства:
- Ако познавате Excel, познавате Power Apps. Моделът и езикът на формулите са същите.
- Ако сте използвали други инструменти за програмиране, помислете колко код ще е необходим за изпълнение на тези примери. Във Visual Basic ще трябва да напишете манипулатор на събитието за събитието за промяна на всяко управление за въвеждане на текст. Кодът за извършване на изчислението във всеки от тях е излишен и може да излезе от синхронизиране или ще трябва да напишете обща подпрограма. Във Power Apps постигнахте всичко това с една, едноредова формула.
- За да разберете откъде идва текстът на Label1, знаете точно къде да търсите: формулата в свойството Text . Няма друг начин да повлияе на текста на тази контрола. В традиционния инструмент за програмиране всеки обработващ събитие или подпрограма може да промени стойността на етикета от всяка точка на програмата. Това може да затрудни проследяването кога и къде е променена променлива.
- Ако потребителят промени контрола на плъзгача и след това промени мнението си, той може да промени плъзгача обратно към първоначалната му стойност. И сякаш нищо никога не се е променило: приложението показва същите контролни стойности като преди. Няма последствия за експериментиране и питане "какво да стане", точно както няма такива в Excel.
Като цяло, ако можете да постигнете ефект, като използвате формула, ще бъдете по-добре. Пуснете двигателя на формулата Power Apps работи за вас.
Знайте кога да използвате променливи
Нека променим нашата проста добавка, за да действа като старомодна машина за добавяне, с обща работа. Ако изберете бутона Добавяне, ще добавите число към текущата сума. Ако изберете бутона Изчистване, ще нулирате изпълняващата се сума до нула.
Показване | Описание |
---|---|
![]() |
Когато стартира приложението, текущата сума е 0. Червената точка представлява пръста на потребителя в полето за въвеждане на текст, където потребителят въвежда 77. |
![]() |
Потребителят избира бутона Добави. |
![]() |
77 се добавя към изпълняващата се обща сума. Потребителят отново избира бутона Добави. |
![]() |
77 отново се добавя към текущата сума, което води до 154. Потребителят избира бутона Изчистване. |
![]() |
Изпълняващата се обща сума се нулира до 0. |
Нашата машина за добавяне използва нещо, което не съществува в Excel: бутон. В това приложение не можете да използвате само формули за изчисляване на текущата сума, тъй като стойността му зависи от поредица от действия, които потребителят предприема. Вместо това общата ни работа трябва да бъде записана и актуализирана ръчно. Повечето програмни инструменти съхраняват тази информация в променлива.
Понякога ще се нуждаете от променлива, за да може приложението ви да се държи така, както искате. Но подходът идва с предупреждения:
- Трябва ръчно да актуализирате текущата сума. Автоматичното преизчисляване няма да го направи вместо вас.
- Текущата сума вече не може да бъде изчислена въз основа на стойностите на други контроли. Зависи от това колко пъти потребителят е избрал бутона Добави и каква стойност беше в контрола за въвеждане на текст всеки път. Потребителят въведе ли 77 и избра ли двукратно Добави или посочи 24 и 130 за всяко от допълненията? Не можете да определите разликата, след като общият брой е достигнал 154.
- Промените в общата сума могат да идват от различни пътища. В този пример и двата бутона Добави и Изчистване могат да актуализират общата сума. Ако приложението не се държи така, както очаквате, кой бутон причинява проблема?
Използвайте глобална променлива
За да създадем нашата машина за добавяне, се нуждаем от променлива, която да държи текущата сума. Най-простите променливи за работа Power Apps са глобалните променливи.
Как работят глобалните променливи:
- Можете да зададете стойността на глобалната променлива с функцията Set . Set( MyVar, 1 ) задава глобалната променлива MyVar на стойност 1 .
- Използвате глобалната променлива, като сравните името, използвано с функцията Задаване. В такъв случай, MyVar ще върне 1.
- Глобалните променливи могат да съдържат всякакви стойности, включително низове, числа, записи и таблици.
Нека да възстановим нашата машина за добавяне с помощта на глобална променлива:
Добавете контрола за въвеждане на текст с име TextInput1 и два бутона с име Button1 и Button2.
Задайте свойството Text на Button1 на "Add" и задайте свойството Text на Button2 на "Clear".
За да актуализирате текущата сума всеки път, когато потребител избере бутона Добавяне , задайте свойството му OnSelect на следната формула:
Set( RunningTotal, RunningTotal + TextInput1 )
Самото съществуване на тази формула установява RunningTotal като глобална променлива, която притежава число заради + оператора. Можете да се позовавате на RunningTotal навсякъде в приложението. Всеки път, когато потребителят отвори това приложение, RunningTotal има начална стойност празно.
Първият път, когато потребителят избере бутона Добавяне и Задаване се изпълнява, RunningTotal е зададен на стойността RunningTotal + TextInput1 .
За да зададете текущата обща сума на 0 , когато потребителят избере бутона Изчисти , задайте свойството му OnSelect на тази формула:
Set( RunningTotal, 0 )
Добавете контрола Етикет и задайте нейното свойство Текст на RunningTotal.
Тази формула автоматично ще бъде преизчислена и ще покаже на потребителя стойността на RunningTotal, тъй като тя се променя въз основа на бутоните, които потребителят избира.
Визуализирайте приложението и имаме нашата машина за добавяне, както е описано по-горе. Въведете число в текстовото поле и натиснете бутона Добави няколко пъти. Когато сте готови, върнете се към създаването на опит с помощта на клавиша Esc.
За да покажете стойността на глобалната променлива, изберете Променливи в менюто за създаване на приложение.
За да покажете всички места, където променливата е дефинирана и използвана, изберете я под Глобални променливи.
Типове променливи
Power Apps има три типа променливи:
Тип променливи | Scope | Описание | Функции, които установяват |
---|---|---|---|
Глобални променливи | App | Най-лесно за използване. Съдържа число, текстов низ, булев, запис, таблица и т.н., които могат да бъдат посочени от всяко място в приложението. | Множество |
Контекстуални променливи | Екран | Чудесно за предаване на стойности на екран, подобно на параметри на процедура на други езици. Може да се направи препратка само от един екран. |
АктуализиранеКонтекст Навигация |
Колекции | App | Съдържа таблица, която може да се посочи от всяко място в приложението. Позволява да се променя съдържанието на таблицата, а не да се задава като цяло. Може да се запише на локалното устройство за по-късна употреба. |
Събирам ClearCollect |
Създаване и премахване на променливи
Всички променливи се създават неявно, когато се появят във функция Задаване, UpdateContext, Навигация, Събиране или ClearCollect. За да декларирате променлива и нейния тип, трябва да я включите само в някоя от тези функции навсякъде в приложението си. Нито една от тези функции не създава променливи; те само запълват променливи със стойности. Никога не декларирате променливи изрично, както бихте могли да използвате в друг инструмент за програмиране, а цялото въвеждане е имплицитно от използване.
Например, може да имате управление с бутони с OnSelect формула равна на Set( X, 1 ). Тази формула установява х като променлива с вид число. Можете да използвате х във формули като число и тази променлива има стойност от празно, след като отворите приложението, но преди да изберете бутона. Когато изберете бутона, вие давате на х стойността 1.
Ако сте добавили друг бутон и сте задали свойството OnSelect на Set( X, "Hello" ), ще възникне грешка, тъй като типът (текстов низ) не съвпада с типа предишен Задаване (число). Всички неявни дефиниции на променливата трябва да бъдат съгласувани по тип. Отново всичко това се случи, защото споменахте х във формули, а не защото някоя от тези формули действително беше пусната.
Премахвате променлива, като премахвате всички функции Задаване, UpdateContext, Навигация, Събиране или ClearCollect, които имплицитно установяват променливата. Без тези функции променливата не съществува. Трябва също да премахнете всички препратки към променливата, защото те ще доведат до грешка.
Променлив живот и начална стойност
Всички променливи се съхраняват в паметта, докато приложението работи. След като приложението се затвори, стойностите, които държат променливите, се губят.
Можете да съхранявате съдържанието на променлива в източник на данни, като използвате функции Корекция или Събиране. Можете също да съхранявате стойности в колекции на локалното устройство с помощта на функцията SaveData .
Когато потребителят отвори приложението, всички променливи имат начална стойност празно.
Четене на променливи
Използвате името на променливата, за да прочетете нейната стойност. Например, можете да определите променлива с тази формула:
Set( Radius, 12 )
Тогава можете просто да използвате радиус навсякъде, където можете да използвате номер, и той ще бъде заменен с 12:
Pi() * Power( Radius, 2 )
Ако дадете контекстна променлива със същото име като глобална променлива или колекция, контекстната променлива има предимство. Въпреки това, все още можете да препратите към глобалната променлива или колекция, ако използвате оператора за пояснение[@Radius].
Използване на променлива на контекст
Нека да разгледаме как ще бъде създадена нашата машина за добавяне, използвайки контекстна променлива вместо глобална променлива.
Как работят контекстовите променливи:
- Вие неявно установявате и задавате контекстни променливи с помощта на функцията UpdateContext или Navigate . Когато приложението се стартира, първоначалната стойност на всички контекстуални променливи е празно.
- Актуализирате контекстните променливи със записи. В други инструменти за програмиране обикновено използвате "=" за възлагане, както в "x = 1". За променливи на контекста използвайте { x: 1 } вместо това. Когато използвате контекстна променлива, използвайте името й директно без синтаксиса на записа.
- Можете също да зададете контекстна променлива, когато използвате функцията за навигация , за да покажете екран. Ако мислите за екран като за някаква процедура или подпрограма, този подход наподобява преминаването на параметри в други инструменти за програмиране.
- С изключение на Navigate, контекстните променливи са ограничени до контекста на един екран, откъдето получават името си. Не можете да ги използвате или зададете извън този контекст.
- Контекстните променливи могат да съдържат всякакви стойности, включително низове, числа, записи и таблици.
Нека да възстановим нашата машина за добавяне с помощта на контекстуална променлива:
Добавете контрола за въвеждане на текст с име TextInput1 и два бутона с име Button1 и Button2.
Задайте свойството Text на Button1 на "Add" и задайте свойството Text на Button2 на "Clear".
За да актуализирате текущата сума всеки път, когато потребител избере бутона Добавяне , задайте свойството му OnSelect на следната формула:
UpdateContext( { RunningTotal: RunningTotal + TextInput1 } )
Самото съществуване на тази формула установява RunningTotal като контекстуална променлива, която притежава число заради + оператора. Можете да се позовавате на RunningTotal навсякъде в този екран. Всеки път, когато потребителят отвори това приложение, RunningTotal има начална стойност празно.
Първият път, когато потребителят избере бутона Добавяне и UpdateContext се изпълнява, RunningTotal е зададен на стойността RunningTotal + TextInput1.
За да зададете текущата обща сума на 0 , когато потребителят избере бутона Изчисти , задайте свойството му OnSelect на тази формула:
UpdateContext( { RunTotal: 0 } )
Отново UpdateContext се използва с формулата UpdateContext( { RunningTotal: 0 } ).
Добавете контрола Етикет и задайте нейното свойство Текст на RunningTotal.
Тази формула автоматично ще бъде преизчислена и ще покаже на потребителя стойността на RunningTotal, тъй като тя се променя въз основа на бутоните, които потребителят избира.
Визуализирайте приложението и имаме нашата машина за добавяне, както е описано по-горе. Въведете число в текстовото поле и натиснете бутона Добави няколко пъти. Когато сте готови, върнете се към създаването на опит с помощта на клавиша Esc.
Можете да зададете стойността на контекстна променлива, докато навигирате до екран. Това е полезно за преминаване на "контекст" или "параметри" от един екран на друг. За да демонстрирате тази техника, поставете екран, поставете бутон и задайте него OnSelect свойството на тази формула:
Навигация ( Екран 1, няма, { Работеща Общо: -1000 } )
Задръжте клавиша Alt, докато изберете този бутон, за да се покаже Screen1 и да зададете променливата на контекста RunningTotal на -1000.
За да покажете стойността на контекстната променлива, направете едно от следните неща:
Ако използвате версията за визуализация Power Apps Studio, изберете Променливи в менюто за създаване на приложения.
Ако използвате класическата версия, Power Apps Studio изберете менюто Файл и след това изберете Променливи в левия прозорец.
За да покажете къде е дефинирана и използвана контекстната променлива, изберете я под Контекстни променливи.
Използване на колекция
И накрая, нека да разгледаме създаването на нашата машина за добавяне с колекция. Тъй като колекция съдържа таблица, която е лесна за модифициране, ние ще направим тази машина за добавяне да запази "хартиена лента" на всяка стойност, тъй като те са въведени.
Как работят колекциите:
- Създавайте и задавайте колекции с помощта на функцията ClearCollect . Вместо това можете да използвате функцията Collect , но тя ефективно ще изисква друга променлива, вместо да замени старата.
- Колекцията е вид източник на данни и, следователно, таблица. За да получите достъп до една стойност в колекция, използвайте функцията First ... и извлечете едно поле от получения запис. Ако сте използвали една стойност с ClearCollect, това ще бъде полето Стойност , както в този пример:
First(VariableName). Стойност
Нека пресъздадем нашата машина за добавяне с помощта на колекция:
Добавете контрола за въвеждане на текст с име TextInput1 и два бутона с имена Button1 и Button2.
Задайте свойството Text на Button1 на "Add" и задайте свойството Text на Button2 на "Clear".
За да актуализирате текущата сума всеки път, когато потребител избере бутона Добавяне , задайте свойството му OnSelect на следната формула:
Collect( PaperTape, TextInput1.Text )
Самото съществуване на тази формула установява PaperTape като колекция, която съдържа таблица с една колона от текстови низове. Можете да се позовавате на PaperTape навсякъде в това приложение. Всеки път, когато потребителят отвори това приложение, PaperTape е празна таблица.
Когато тази формула работи, тя добавя новата стойност в края на колекцията. Тъй като добавяме една единствена стойност, Събиране автоматично го поставя в таблица с една колона и името на колоната е стойност, които ще използвате по-късно.
За да изчистите хартиената лента, когато потребителят избере бутона Изчисти , задайте свойството му OnSelect на следната формула:
Прозрачен (хартиена лента)
За да покажете текущата сума, добавете етикет и задайте свойството му Текст на тази формула:
Сума (хартиена лента, стойност)
За да стартирате машината за добавяне, натиснете F5, за да отворите Преглед, въведете числа в контрола за въвеждане на текст и изберете бутони.
За да се върнете към работното пространство по подразбиране, натиснете клавиша Esc.
За да покажете хартиената лента, вмъкнете контрола на таблица с данни и задайте нейното свойство Елементи на следната формула:
Хартиена лента
В десния прозорец изберете Редактиране на полета и след това изберете Добавяне на поле, изберете колоната Стойност и след това изберете Добавяне, за да се покаже.
За да видите стойностите във вашата колекция, направете едно от следните неща:
Ако използвате версията за визуализация Power Apps Studio, изберете Променливи в менюто за създаване на приложения и след това изберете Колекции.
Ако използвате класическата версия, Power Apps Studio изберете Колекции в менюто Файл .
За да съхранявате и изтегляте колекцията си, добавете две допълнителни бутони за управление и задайте техните свойство Текст към Зареждане и Записване. Задайте свойството OnSelect на бутона Зареждане на тази формула:
Прозрачен ( хартиена лента ); LoadData( PaperTape, "StoredPaperTape", вярно)
Първо трябва да изчистите колекцията, защото LoadData ще добави запаметените стойности в края на колекцията.
Задайте свойството OnSelect на бутона Записване на тази формула:
SaveData( PaperTape, "StoredPaperTape" )
Прегледайте отново, като натиснете клавиша F5, въведете числа в контрола за въвеждане на текст и изберете бутони. Изберете бутона Записване. Затворете и презаредете приложението и изберете бутона Зареждане за презареждане на вашата колекция.
Бележка
Функциите SaveData и LoadData работят в Power Apps мобилно устройство, но не Power Apps Studio и в уеб плейъра за. Power Apps