Делите путем


Објашњење променљивих у апликацијама са подлогом

Ако сте користили другу алатку за програмирање, као што је Visual Basic или JavaScript, можда ћете питати: Где су променљиве? Power Apps је мало другачији и захтева другачији приступ. Уместо да посегнете за променљивом приликом прављења апликације са подлогом, запитајте се: Шта бих радио у програму Excel?

У другим алаткама можда сте изричито извршили израчунавање и сачували резултат у променљиву. Међутим, Power Apps и Excel аутоматски израчунавају формуле како се улазни подаци мењају, тако да обично не морате да креирате и ажурирате променљиве. Ако примените овај приступ кад год је то могуће, можете лакше да креирате, разумете и одржавате своју апликацију.

У неким случајевима, мораћете да користите променљиве у Power Apps, који проширује модел програма Excel тако што додаје формуле понашања. Овре формуле се покрећу када, на пример, корисник изабере дугме. У формулама понашања, често је корисно поставити променљиву која ће се користити у другим формулама.

Генерално избегавајте коришћење променљивих. Али понекад само променљива може омогућити искуство које желите. Променљиве се имплицитно креирају и уносе када се појаве у функцијама које постављају њихове вредности.

Превод програма Excel у Power Apps

Excel

Погледајмо како функционише Excel. Ћелија може да садржи вредност, као што је број или низ, или формула која се заснива на вредностима других ћелија. Након што корисник унесе другу вредност у ћелију, Excel аутоматски прерачунава све формуле које зависе од нове вредности. Не морате радити било какво програмирање да бисте омогућили ово понашање.

У следећем примеру ћелија A3 је постављена на формулу A1+A2. Ако се A1 или A2 промени, A3 аутоматски прерачунава да би се одразиле промене. Ово понашање не захтева никакво кодирање изван саме формуле.

Анимација поновног израчунавања збира два броја у програму Excel.

Excel нема променљиве. Вредност ћелије која садржи формулу мења се на основу њеног уноса, али нема начина да се сетите резултата формуле и да је сместите у ћелију или било где другде. Ако промените вредност ћелије, може се променити целокупна табела и све претходно израчунате вредности се губе. Корисник програма Excel може да копира и налепи ћелије, али то је под ручном контролом корисника и није могуће помоћу формула.

Power Apps

Апликације које креирате у Power Apps понашају се врло слично програму Excel. Уместо да ажурирате ћелије, можете да додајете контроле где год желите на екрану и да их именујете за употребу у формулама.

На пример, можете да копирате Excel понашање у апликацији додавањем контроле Ознака под називом Ознака 1, и две контроле Унос текста под називом Унос текста 1 и Унос текста 2. Ако тада поставите својство Текст контроле Ознака 1 на Унос текста 1 + Унос текста 2, аутоматски ће се увек приказивати збир свих бројева у ознаци Унос текста 1 и Унос текста 2.

Израчунавање збира два броја у Power Apps.

Имајте у виду да је изабрана контрола Ознака 1 и да приказује своју формулу Текст у траци са формулама на врху екрана. Овде налазимо формулу Унос текста 1 + Унос текста 2. Ова формула ствара зависност између ових контрола, баш као што се стварају зависности између ћелија у Excel радној свесци. Променимо вредност Унос текста 1:

Анимација израчунавања збира два броја у Power Apps.

Формула за Ознака 1 се аутоматски прерачунава, показујући нову вредност.

У Power Apps, можете користити формуле да одредите не само примарну вредност контроле већ и својства као што је форматирање. У следећем примеру формула за својство ознаке Боја аутоматски приказује негативне вредности црвеном бојом. Функција Ако би требало да вам изгледа познато из програма Excel:

If( Value(Label1.Text) < 0, Red, Black )

Анимација условног форматирања.

Можете користити формуле за најразличитије сценарије:

  • Коришћењем GPS положаја уређаја, контрола мапе може да прикаже вашу тренутну локацију са формулом која користи Location.Latitude и Location.Longitude. Док се крећете, мапа аутоматски прати вашу локацију.
  • Други корисници могу да се ажурирају извори података. На пример, остали чланови тима могу да ажурирају ставке у листи. Када освежите извор података, све зависне формуле се аутоматски прерачунавају како би одражавале ажуриране податке. Настављајући овај пример, можете да подесите својство галерије Ставке на формулу Филтер (SharePointList), која ће аутоматски приказати нови Филтерирани скуп записа.

Предности

Коришћење формула за израду апликација има бројне предности:

  • Ако познајете Excel, онда знате Power Apps. Модел и језик формуле су исти.
  • Ако сте користили друге алатке за програмирање, размислите о томе колико ће кода бити потребно за постизање ових примера. У програму Visual Basic, треба да напишете руковалац догађајем за догађај промене на свакој контроли уноса текста. Кôд за обављање прорачуна у сваком од њих је сувишан и може да изађе из синхронизације или ћете морати да напишете заједничку помоћну рутину. У Power Apps, све сте то постигли једном формулом у једном реду.
  • Да бисте разумели одакле долази текст за Ознака 1, знате тачно где да погледате: формула у својству Текст. Не постоји други начин да се утиче на текст ове контроле. У традиционалном програму за програмирање, сваки руковалац догађајем или помоћном рутином може променити вредност ознаке, са било ког места у програму. Ово може отежати проналажење времена и места где је промењена променљива.
  • Ако корисник промени контролу клизача, а затим се предомисли, клизач може да врати на оригиналну вредност. И као да се ништа никада није променило: апликација показује исте контролне вредности као и раније. Не постоје последице експериментисања и постављања питања „шта ако“, мада их у програму Excel нема.

Уопштено, ако можете постићи ефекат користећи формулу, биће вам боље. Пустите да формула у Power Apps ради за вас.

Треба да знате када се користе променљиве

Променимо наш једноставни додавач који делује као старомодна машина за додавање, са текућим укупним износом. Ако изаберете дугме Додај, додаћете број текућем укупном износу. Ако изаберете дугме Обриши, ресетоваћете текућем укупни износ на нулу.

Приказ Опис
Апликација са контролом уноса текста, ознаком и два дугмета. Када се апликација покрене, текући укупни износ је 0.

Црвена тачка представља прст корисника у пољу за унос текста, где корисник уноси 77.
Контрола уноса текста садржи 77 и притиска се дугме Додај. Корисник бира дугме Додај.
Укупан збир је 77, а њему се додаје још 77. Текућем укупном износу се додаје 77.

Корисник поново бира дугме Додај.
Укупни износ је 154 пре брисања. Поново се текућем укупном износу додаје 77, што даје резултат 154.

Корисник бира дугме Обриши.
Укупан износ је обрисан. Текући укупан износ је ресетован на 0.

Наша машина за додавање користи нешто што не постоји у програму Excel: дугме. У овој апликацији не можете користити само формуле за израчунавање укупног износа јер његова вредност зависи од низа радњи које корисник предузме. Уместо тога, наш укупан износ се мора бележити и ажурирати ручно. Већина алатки за програмитање складишти ове информације у променљивим.

Понекад ће вам бити потребна променљива да би се ваша апликација понашала онако како желите. Али приступ долази са упозорењима:

  • Морате ручно ажурирати текући укупан износ. Аутоматско прерачунавање то неће учинити за вас.
  • Текући укупан износ више не може да се израчуна на основу вредности других контрола. То зависи од тога колико је пута корисник изабрао дугме Додај и која вредност је била у контроли уноса текста сваки пут. Да ли је корисник унео 77 и изабрао Додај два пута или је одредио 24 и 130 за свако додавање? Не можете да утврдите разлику након што је укупан износ достигао 154.
  • Промене у укупном износу могу доћи са различитих путања. У овом примеру оба дугмета, Додај и Обриши, могу да ажурирају укупан износ. Ако се апликација не понаша онако како очекујете, који тастер узрокује проблем?

Коришћење глобалне променљиве

Да бисмо креирали нашу машину за додавање, потребна нам је променљива која ће држати текући укупан износ. Најједноставније променљиве са којима се може радити у Power Apps су глобалне променљиве.

Како функционишу глобалне променљиве:

  • Вредност глобалне променљиве постављате помоћу функције Подеси. Set( MyVar, 1 ) поставља глобалну променљиву MyVar на вредност 1.
  • Користите глобалну променљиву референцирањем назива који се користи са функцијом Подеси. У овом случају, MyVar враћа 1.
  • Глобалне променљиве могу да садрже било коју вредност, укључујући ниске, бројеве, записе и табеле.

Хајде да обновимо нашу машину за додавање користећи глобалну променљиву:

  1. Додајте контролу уноса текста под називом Унос текста 1 и два дугмета под називом Дугме1 и Дугме2.

  2. Подесите својство Текст за Дугме1 на Додај и поставите својство Текст за Дугме2 на „Обриши“.

  3. Да бисте ажурирали текући укупан износ кад год корисник изабере дугме Додај, подесите његово својство OnSelect према овој формули:

    Set( RunningTotal, RunningTotal + TextInput1 )

    Само постојање ове формуле утврђује Текући укупан износ као глобалну променљиву која има број због + оператера. Можете да референцирате Текући укупан износ било где у апликацији. Кад год корисник отвори ову апликацију, Текући укупан износ има почетну вредност празно.

    Први пут када корисник изабере дугме Додај и покрене се Подеси, Текући укупан износ се поставља на вредност Текући укупан износ + Унос текста 1.

    Својство OnSelect дугмета „Додај“ се поставља на функцију Set.

  4. Да бисте подесили текући укупан износ на 0 кад год корисник изабере дугме Обриши, подесите његово својство OnSelect према овој формули:

    Set( RunningTotal, 0 )

    Својство OnSelect дугмета „Обриши“ се поставља на функцију Set.

  5. Додајте контролу Ознака и подесите њено својство Текст на Текући укупан износ:

    Ова формула ће се аутоматски прерачунати и кориснику показати вредност Текући укупан износ како се буде мењала на основу тастера које корисник изабере.

    Својство Text за ознаку се поставља на назив променљиве.

  6. Прегледајте апликацију а наша машина за додавање је спремна као што је горе описано. Унесите број у оквир за текст и притисните дугме Додај неколико пута. Када будете спремни, вратите се на искуство стварања аутора помоћу тастера Esc.

    Контрола за унос текста садржи вредност, а ознака садржи растући збир.

  7. Да бисте прикажели вредност глобалне променљиве, урадите нешто од следећег:

    • Ако користите верзију прегледа, у менију Power Apps Studio за креирање апликације изаберите · ставку "Променљиве".

      Мени "Променљиве и колекције".

    • Ако користите класичну верзију, изаберите Power Apps Studio мени "Датотека ", а затим у левом окну изаберите ставку "Променљиве".

  8. Да бисте прикажели сва места на којима је променљива дефинисана и коришћена, изаберите је у оквиру Глобалне променљиве.

    Листа места где се користи променљива.

Типови променљивих

Power Apps има три врсте променљивих:

Тип променљивих Scope Опис Функције које успостављају
Глобалне променљиве Апликација Најједноставније за употребу. Садржи број, текстуалну ниску, Булов запис, запис, табелу итд. на које може да се упућује са било ког места у апликацији. Подешавање
Променљиве контекста Екран Изврсно за преношење вредности на екран, слично параметрима у процедури на другим језицима. Може се референцирати само са једног екрана. UpdateContext
Навигација
Колекције Апликација Садржи табелу на коју се може референцирати било где у апликацији. Омогућава измену садржаја табеле, а не постављање у целини. Може се сачувати на локалном уређају за каснију употребу. Collect
ClearCollect

Креирање и уклањање променљивих

Све променљиве се креирају имплицитно када се појаве у функцији Постави, Ажурирај контекст, Иди до, Прикупи или Обриши прикупљено. Да бисте прогласили променљиву и њен тип, треба само да је укључите у било коју од ових функција било где у вашој апликацији. Ниједна од ових функција не креира променљиве; само попуњавају променљиве са вредностима. Никада не декларишете променљиве изричито као што бисте могли у другом алату за програмирање, а свако куцање је имплицитно од употребе.

На пример, можда имате контролу дугмета са формулом OnSelect једнако је Set( X, 1 ). Ова формула успоставља X као променљиву са типом броја. Можете користити X у формулама као број, а та променљива има вредност празно након што отворите апликацију, али пре него што одаберете дугме. Када изаберете дугме, дајете X вредност 1.

Ако сте додали још једно дугме и подесили његово својство OnSelect на Set( X, "Hello" ), дошло би до грешке јер тип (текстуална ниска) не одговара типу у претходној функцији Постави (број). Све имплицитне дефиниције променљиве морају се слагати по типу. Дакле, се све ово догодило јер сте поменули X у формулама, а не зато што се било која од тих формула заправо изводила.

Уклоните променљиву тако што ћете уклонити све функције Постави, Ажурирај контекст, Иди до, Прикупи или Обриши прикупљено које имплицитно успостављају променљиву. Без ових функција, променљива не постоји. Морате уклонити и све референце на променљиву јер ће оне проузроковати грешку.

Век трајања и почетна вредност променљиве

Све променљиве се чувају у меморији док апликација ради. Након што се апликација затвори, вредности задржаних променљивих се губе.

Садржај променљиве можете да сместите у извор података користећи функције Закрпа или Прикупи. Такође можете да сачувате вредности у колекцијама на локалном уређају користећи функцију Сачувај податке.

Када корисник отвори апликацију, све променљиве имају почетну вредност празно.

Читање променљивих

Назив променљиве можете да користите за читање њене вредности. На пример, можете дефинисати променљиву овом формулом:

Set( Radius, 12 )

Тада једноставно можете да користите Радијус било где да можете да користите број, и он ће бити замењен са 12:

Pi() * Power( Radius, 2 )

Ако дате променљивој контекста исти назив као глобалној променљивој или колекцији, променљива контекста има предност. Међутим, и даље можете да референцисете глобалну променљиву или колекцију ако користите оператор за деамбигацију [ @Radius].

Коришћење променљиве контекста

Погледајмо како би била креирана наша машина за додавање помоћу променљиве контекста уместо глобалне променљиве.

Како функционишу променљиве контекста:

  • Имплицитно успоставите и поставите променљиве контекста користећи функцију Ажурирај контекст или Иди до. Када се апликација покрене, почетна вредност свих променљивих контекста је празно.
  • Ажурирајте променљиве контекста са записима. У осталим алаткама за програмирање обично користите „=“ за доделу, као у „x = 1“. За променљиве контекста користите { x: 1 } уместо тога. Када користите променљиву контекста, користите њено име директно без синтаксе записа.
  • Такође можете поставити променљиву контекста када користите функцију Иди до за приказивање екрана. Ако на екран мислите као на неку врсту поступка или помоћне рутине, овај приступ подсећа на параметре који се преносе у друге алате за програмирање.
  • Осим екрана Иди до, променљиве контекста су ограничене на контекст једног екрана, по коме су и добиле име. Не можете их користити или постављати изван овог контекста.
  • Променљиве контекста могу да садрже било коју вредност, укључујући ниске, бројеве, записе и табеле.

Хајде да обновимо нашу машину за додавање користећи променљиву контекста:

  1. Додајте контролу уноса текста под називом Унос текста 1 и два дугмета под називом Дугме1 и Дугме2.

  2. Подесите својство Текст за Дугме1 на Додај и поставите својство Текст за Дугме2 на „Обриши“.

  3. Да бисте ажурирали текући укупан износ кад год корисник изабере дугме Додај, подесите његово својство OnSelect према овој формули:

    UpdateContext( { RunningTotal: RunningTotal + TextInput1 } )

    Само постојање ове формуле утврђује Текући укупан износ као променљиву контекста која има број због + оператера. Можете да референцирате Текући укупан износ било где на овом екрану. Кад год корисник отвори ову апликацију, Текући укупан износ има почетну вредност празно.

    Први пут када корисник изабере дугме Додај и покрене се Ажурирање контекста, Текући укупан износ се поставља на вредност Текући укупан износ + Унос текста 1.

    Својство OnSelect дугмета Додај са методом updatecontext.

  4. Да бисте подесили текући укупан износ на 0 кад год корисник изабере дугме Обриши, подесите његово својство OnSelect према овој формули:

    UpdateContext( { RunningTotal: 0 } )

    Дакле, Ажурирање контекста се користи са формулом UpdateContext( { RunningTotal: 0 } ).

    Својство OnSelect дугмета Обриши са методом updatecontext.

  5. Додајте контролу Ознака и подесите њено својство Текст на Текући укупан износ:

    Ова формула ће се аутоматски прерачунати и кориснику показати вредност Текући укупан износ како се буде мењала на основу тастера које корисник изабере.

    Својство Text ознаке.

  6. Прегледајте апликацију а наша машина за додавање је спремна као што је горе описано. Унесите број у оквир за текст и притисните дугме Додај неколико пута. Када будете спремни, вратите се на искуство стварања аутора помоћу тастера Esc.

    Контрола за унос текста приказује вредност, а ознака приказује растући збир.

  7. Током навигације до екрана можете поставити вредност променљиве контекста. Ово је корисно за преношење „контекста“ или „параметара“ са једног екрана на други. Да бисте демонстрирали ову технику, уметните екран, уметните дугме и подесите својство OnSelect према овој формули:

    Navigate( Screen1, None, { RunningTotal: -1000 } )

    Својство OnSelect дугмета.

    Држите притиснут тастер Alt док бирате ово дугме да бисте приказали Screen1 и подесили променљиву контекста RunningTotal на -1000.

    Screen1 је отворен.

  8. Да бисте прикажели вредност контекстуалне променљиве, урадите нешто од следећег:

    • Ако користите верзију прегледа, у Power Apps Studio менију за креирање апликације изаберите · ставку "Променљиве".

    • Ако користите класичну верзију, изаберите мени Power Apps Studio "Датотека", а затим у левом окну · изаберите ставку "Променљиве".

  9. Да бисте показали где је променљива контекста дефинисана и коришћена, изаберите је у оквиру Контекстуалних променљивих.

Коришћење колекције

На крају погледајмо креирање наше машине за додавање са колекцијом. Будући да колекција садржи табелу коју је лако изменити, направићемо да ова машина за додавање задржи „папирну траку“ сваке вредности онако како су унете.

Како раде колекције:

  • Креирајте и поставите колекције користећи функцију ClearCollect. Уместо ње можете користити функцију Collect, али ће ефективно бити потребна још једна променљива уместо да се замени стара.
  • Збирка је врста извора података и самим тим је табела. Да бисте приступили јединственој вредности у колекцији, користите функцију Први и издвојте једно поље из резултирајућег записа. Ако сте користили једну вредност са ClearCollect, ово ће бити поље Вредност, као у овом примеру:
    First( VariableName ).Value

Обновимо нашу машину за додавање користећи колекцију:

  1. Додајте контролу Унос текста под називом TextInput1, и два дугмета под називом Button1 и Button2.

  2. Подесите својство Текст за Дугме1 на Додај и поставите својство Текст за Дугме2 на „Обриши“.

  3. Да бисте ажурирали текући укупан износ кад год корисник изабере дугме Додај, подесите његово својство OnSelect према овој формули:

    Collect( PaperTape, TextInput1.Text )

    Само постојање ове формуле одређује PaperTape као збирку која садржи табелу текстуалних ниски са једном колоном. Можете да референцирате PaperTape било где у апликацији. Кад год корисник отвори ову апликацију, PaperTape је празна табела.

    Када се ова формула покрене, додаје нову вредност на крај колекције. Зато што додајемо јединствену вредност, Прикупљање је аутоматски поставља у табелу са једном колоном, а назив колоне је Вредност, и користићете га касније.

    Својство OnSelect дугмета Додај са методом collect.

  4. Да бисте обрисали папирну траку када корисник изабере дугме Обриши, подесите његово својство OnSelect према овој формули:

    Clear( PaperTape )

    Својство OnSelect дугмета Обриши са методом clear.

  5. Да бисте приказали текући укупан износ, додајте ознаку и подесите својство Текст према овој формули:

    Sum( PaperTape, Value )

    Својство текста ознаке.

  6. Да бисте покренули машину за додавање, притисните F5 да бисте отворили Преглед, унесите бројеве у контролу уноса текста и изаберите дугмад.

    Контрола за унос текста приказује вредност, а ознака приказује растући збир.

  7. Да бисте се вратили на подразумевани радни простор, притисните тастер Esc.

  8. Да бисте приказали папирну траку, уметните контролу Табела података и подесите њено својство Ставке према овој формули:

    PaperTape

    У десном окну изаберите Уреди поља, а затим изаберите Додај поље, изаберите колону Вредност, а затим Додај да бисте је приказали.

    Табела података која приказује вредности додате у колекцију.

  9. Да бисте видели вредности у колекцији, урадите нешто од следећег:

    • Ако користите верзију прегледа, у менију Power Apps Studio за креирање апликације изаберите ставку "Променљиве ", а затим изаберите ставку " Колекције".

    • Ако користите класичну верзију, у менију Power Apps Studio"Датотека" изаберите ставку " Колекције ".

  10. Да бисте сачували и преузели своју колекцију, додајте две додатне контроле дугмади и подесите њихова својства Текст на Учитај и Сачувај. Подесите својство OnSelect дугмета Учитај према овој формули:

    Clear( PaperTape ); LoadData( PaperTape, "StoredPaperTape", true )

    Прво морате да обришете колекцију зато што ће LoadData додати сачуване вредности на крај колекције.

    Својство OnSelect дугмета Учитај.

  11. Подесите својство OnSelect дугмета Сачувај према овој формули:

    SaveData( PaperTape, "StoredPaperTape" )

    Својство OnSelect* дугмета Сачувај.

  12. Поново прегледајте притиском на тастер F5, унесите бројеве у контролу уноса текста и изаберите дугмад. Изаберите дугме Сачувај. Затворите и поново учитајте апликацију и изаберите дугме Учитај за поновно учитавање колекције.

Напомена

Функције SaveData и LoadData функције раде у апликацију Power Apps Mobile, али не у програму Power Apps Studio или веб-плејеру за Power Apps.

Напомена

Можете ли нам рећи о својим жељеним поставкама језика у документацији? Испуните кратку анкету. (имајте на уму да је ова анкета на енглеском језику)

Анкета ће трајати око седам минута. Не прикупљају се лични подаци (изјава о приватности).