Operatori i identifikatori platforme Power Apps

Odnosi se na: Aplikacije od gotovih gradivnih elemenata Aplikacije stvorene prema modelu

Neki od tih operatora ovise o jeziku autora. Dodatne informacije o jezičnoj podršci u aplikacijama od gotovih gradivnih elemenata potražite u odjeljku Globalne aplikacije.

Simbol Tip Primjer Opis
'...' Identifikator 'Naziv računa' Identifikatori koji sadrže posebne znakove, uključujući razmake, nalaze se u jednostrukim navodnicima
"..." Tekstni niz "Hello, World" Tekstni nizovi nalaze se u dvostrukim navodnicima
$"..." Interpolacija niza $"Dear {FirstName}," Formule ugrađene unutar tekstnog niza
. Birač svojstva Slider1.Value
Color.Red
Acceleration.X
Izdvaja svojstvo iz tablice, kontrole, signalaili nabrajanja. Za povratnu kompatibilnost može se koristiti i !.
.
[ovisi o jeziku]
Decimalni znak odjeljivanja 1.23 Znak odjeljivanja između cijelog broja i razlomka. Znak ovisi o jeziku.
( ) Zagrada Filter (T, A < 10)

(1 + 2) * 3
Primjenjuje redoslijed prioriteta i grupira podizraze u veći izraz
+ Aritmetički operatori 1 + 2 Zbrajanje
-   2 - 1 Oduzimanje i predznak
*   2 * 3 Množenje
/   2 / 3 Dijeljenje (pogledajte također funkciju Mod)
^   2 ^ 3 Potenciranje, ekvivalentno funkciji Power
%   20 % Postotak (ekvivalentno "* 1/100")
= Operatori usporedbe Cijena = 100 Jednako
>   Cijena > 100 Veće od
>=   Cijena >= 100 Veće od ili jednako
<   Cijena < 100 Manje od
<=   Cijena <= 100 Manje od ili jednako
<>   Cijena <> 100 Nije jednako
& Operator za povezivanje niza "Hello" & " " &; "Svijet" Čini da se višestruki nizovi prikazuju neprekidno
&&ili I Logički operatori Cijena < : 100 &&; Klizač1.Vrijednost = 20
ili Price < 100 And Slider1.Value = 20
Logička konjunkcija, ekvivalentna vrijednosti funkcije And
|| ili Ili   Price < 100 || Slider1.Value = 20 ili Price < 100 Or Slider1.Value = 20 Logička disjunkcija, ekvivalentna vrijednosti funkciji Or
! ili Ne   !(Price < 100) ili Not (Price < 100) Logička negacija, ekvivalentna vrijednosti funkciji Not
exactin Operatori za članstvo Gallery1.Selected exactin SavedItems Pripadaju zbirci ili tablici
exactin   "Windows" exactin “Za prikaz prozora u operacijskom sustavu Windows...” Testiranje podniza (prepoznaje velika i mala slova)
u   Gallery1.Selected in SavedItems Pripadaju zbirci ili tablici
u   "The" u "The keyboard and the monitor..." Testiranje podniza (ne prepoznaje velika i mala slova)
@ Operator rješavanja nesklada MyTable[@fieldname] Rješavanje nesklada polja
@   [@MyVariable] Globalno rješavanje nesklada
,
[ovisi o jeziku]
Razdjelnik popisa If( X < 10, "Low", "Good" )
{ X: 12, Y: 32 }
[ 1, 2, 3 ]
Razdvaja: Taj znak ovisi o jeziku.
;
[ovisi o jeziku]
Ulančavanje formule Collect(T, A); Navigate(S1, "") Odvojeni pozivi funkcija u svojstvima ponašanja. Operator ulančavanja ovisi o jeziku.
Kao Operator As AllCustomers As Customer Nadjačava funkcije ThisItem i ThisRecord u galerijama i funkcijama djelokruga zapisa. Operater As koristan je za davanje boljeg, specifičnog naziva i posebno je važan u ugniježđenim scenarijima.
Self Operator Self Self.Fill Pristup svojstvima trenutačne kontrole
Parent Nadređeni operator Parent.Fill Pristup svojstvima kontrolnog spremnika
ThisItem Operator ThisItem ThisItem.FirstName Pristup poljima galerije ili kontroli obrasca
ThisRecord ThisRecord operator ThisRecord.FirstName Pristup cjelokupnom zapisu i pojedinačnim poljima zapisa unutar funkcija ForAll, Sum, With i drugih funkcija djelokruga zapisa. Može se nadjačati operatorom As.

Napomena

Operator @ također se može koristiti za provjeru vrste objekta zapisa prema izvoru podataka. Na primjer, Collect(coll,Account@{'Account Number: 1111')

u završnim exactin operatorima

Koristite operatore in i exactin za pronalaženje niza u izvoru podataka, kao što je zbirka ili uvezena tablica. Operator in identificira podudaranja bez obzira na slučaj, a operator exactin identificira podudaranja samo ako su ispisani velikim slovima na isti način. Evo primjera:

  1. Stvarate ili uvozite zbirku po imenu Zaliha i prikažite je u galeriji kao prvi postupak u opisima Prikaži slike i tekst u galeriji.

  2. Postavite svojstvo Items za galeriju na ovu formulu:
    Filter(Inventory, "E" in ProductName)

    Gallery prikazuje sve proizvode osim Callisto jer je naziv tog proizvoda jedini koji ne sadrži slovo koje ste naveli.

  3. Promijenite svojstvo Items za galeriju na ovu formulu:
    Filter(Inventory, "E" exactin ProductName)

    Gallery prikazuje samo Europa jer samo njeno ime sadrži slovo koje ste naveli u slučaju koji ste naveli.

Operatori ThisItem, ThisRecord i As

Nekoliko kontrola i funkcija primjenjuje formule na pojedinačne zapise tablice. Za upućivanje na pojedinačni zapis u formuli koristite jedno od sljedećeg:

Operater Odnosi se na Opis
ThisItem Galerija kontrola
Uređivanje obrasca kontrola
Prikaz obrasca kontrola
Zadani naziv za trenutni zapis u Galeriji ili kontroli obrasca.
ThisRecord ForAll, Filter, With, Sum i druge funkcije djelokruga zapisa Zadani naziv za trenutni zapis u funkciji ForAll i drugim funkcijama djelokruga zapisa.
Kaonaziv Galerija kontrola
ForAll, Filter, With, Sum i druge funkcije djelokruga zapisa
Definira naziv za trenutni zapis zamjenjujući zadanu funkciju ThisItem ili ThisRecord. Koristite operator As da biste pojednostavili formule i riješili nejasnoće pri ugnježđivanju.

Operator ThisItem

Primjerice, u sljedećoj kontroli Galerija, svojstvo Stavke postavljeno je na izvor podataka Zaposlenici (kao što je tablica Zaposlenici uključena u uzorak Northwind TRaders):

Employees

Zaposlenici prikazani u galeriji.

Prva stavka u galeriji je predložak koji se ponavlja za svakog zaposlenika. U predlošku, formula za sliku koristi funkciju ThisItem za upućivanje na trenutnu stavku:

ThisItem.Picture

Formula za sliku zaposlenika.

Isto tako, formula za naziv također koristi ThisItem:

ThisItem.'First Name' & " " & ThisItem.'Last Name'

Formula za prvi i prezime zaposlenika.

Operator ThisRecord

ThisRecord se koristi u funkcijama koje imaju djelokrug zapisa. Na primjer, možemo koristiti funkciju Filter sa svojstvom Items naše galerije za prikaz samo imena koja počinju sa slovom M:

Filter( Employees, StartsWith( ThisRecord.Employee.'First Name', "M" ) )

Filtriranje zaposlenika na temelju imena pomoću značajke ThisRecord.

Operator ThisRecord nije obavezan i podrazumijeva se direktnom upotrebom polja, na primjer, u ovom smo slučaju mogli napisati:

Filter( Employees, StartsWith( 'First Name', "M" ) )

Iako nije obavezna, upotreba operatora ThisRecord može olakšati razumijevanje formula i može biti potrebna u nejasnim situacijama kada naziv polja može biti i naziv odnosa. Operator ThisRecord nije obavezan, ali ThisItem uvijek jeste.

Koristite operator ThisRecord za upućivanje na cijeli zapis s funkcijama Patch, Collect i ostalim funkcijama djelokruga zapisa. Na primjer, sljedeća formula postavlja status svih neaktivnih zaposlenika u aktivne:

With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
      ForAll( InactiveEmployees,
              Patch( Employees, ThisRecord, { Status: 'Status (Employees)'.Active } ) ) )

Operator As

Koristite operator As za imenovanje zapisa u galeriji ili funkciji djelokruga zapisa, nadjačavajući zadani operator ThisItem ili ThisRecord. Imenovanje zapisa može vam olakšati razumijevanje formula i može biti potrebno u ugniježđenim situacijama za pristup zapisima u drugom djelokrugu.

Na primjer, možete izmijeniti svojstvo Items naše galerije za upotrebu operatora As kako bismo utvrdili da radimo sa zaposlenikom:

Employees As Employee

Galerija zaposlenika pomoću operatora As.

Formule za sliku i naziv prilagođene su upotrebi ovog naziva za trenutni zapis:

Employee.Picture

Slika zaposlenika koji koristi postavljeno ime zaposlenika pomoću operatora Kao.

Employee.'First Name' & " " & Employee.'Last Name'

Prvo i prezime zaposlenika koji koristi ime zaposlenika postavljeno s operatorom Kao.

Operator As se također može koristiti s funkcijama djelokruga zapisa za zamjenu zadanog naziva ThisRecord. To možemo primijeniti na naš prethodni primjer da bismo pojasnili zapis s kojim radimo:

With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
      ForAll( InactiveEmployees As Employee,
              Patch( Employees, Employee, { Status: 'Status (Employees)'.Active } ) ) )

Pri ugnježđivanju galerija i funkcija djelokruga zapisa, operatori ThisItem i ThisRecord uvijek se odnose na unutarnji djelokrug, što zapise u vanjskom djelokrugu ostavlja nedostupnim. Koristite operator As da bi svaki djelokrug postao dostupan tako što ćete mu dati jedinstven naziv.

Na primjer, ova formula stvara uzorak šahovske ploče kao tekstni niz ugnježđivanjem dviju funkcija ForAll:

Concat(
    ForAll( Sequence(8) As Rank,
        Concat(
            ForAll( Sequence(8) As File,
                    If( Mod(Rank.Value + File.Value, 2) = 1, " X ", " . " )
            ),
            Value
        ) & Char(10)
    ),
    Value
)

Postavljanje svojstva Text kontrole Label prema ovoj formuli prikazat će sljedeće:

Tekst šahovske ploče prikazan u kontroli natpisa.

Analizirajmo što se ovdje događa:

  • Počinjemo iteracijom neimenovane tablice od 8 numeriranih zapisa iz funkcije Sequence. Ova petlja je za svaki red ploče koji se obično naziva Rang i zato mu dajemo ovaj naziv.
  • Za svaki red ponavljamo još jednu neimenovanu tablicu od 8 stupaca i dajemo zajednički naziv Datoteka.
  • Ako je vrijednost Rank.Value + File.Value neparni broj, kvadrat dobiva X, u suprotnom, točku. Ovaj dio formule odnosi se na obje petlje ForAll, što je omogućeno pomoću operatora As.
  • Concat koristi se dvaput, prvo za sastavljanje stupaca, a zatim redaka, uz funkciju Char(10) ubačenu za stvaranje novog retka.

Sličan primjer moguć je s ugniježđenim kontrolama Gallery umjesto funkcijama ForAll. Započnimo s okomitom galerijom za Rang. Ova kontrola galerije imat će formulu Items sačinjenu od:

Sequence(8) as Rank

Slika vanjske galerije koja pruža iteraciju ranga.

Unutar ove galerije postavit ćemo vodoravnu galeriju za Datoteku, koja će se replicirati za svaki Rang, sa svojstvom Items sačinjenim od:

Sequence(8) as File

Slika unutarnje galerije koja pruža iteraciju datoteke.

Na kraju ćemo unutar ove galerije dodati kontrolu Label koja će se replicirati za svaku Datoteku i svaki Rang. Podesit ćemo njenu veličinu kako bi ispunila cijeli prostor i upotrijebit ćemo svojstvo Fill za pružanje boje pomoću ove formule:

If( Mod( Rank.Value + File.Value, 2 ) = 1, Green, Beige )

Kontrola naljepnica unutar dvije galerije koja pruža naizmjenične boje za šahovsku ploču.

Operatori Self i Parent

Postoje tri načina za upućivanje na kontrolu i njena svojstva u formuli:

Način Opis
Prema nazivu kontrole Na bilo koju kontrolu može se uputiti prema nazivu s bilo kojeg mjesta unutar aplikacije.

Na primjer Label1.Fill odnosi se na svojstvo fill kontrole pod nazivom Label1.
Operator Self Često je prikladno uputiti na drugo svojstvo iste kontrole pri pisanju formule. Umjesto apsolutnog upućivanja prema nazivu lakše je i prijenosnije koristiti relativno upućivanje self na samog sebe. Operator Self omogućuje taj jednostavan pristup trenutačnoj kontroli.

Na primjer Self.Fill odnosi se na boju ispuna trenutne kontrole.
Nadređeni operator Neke kontrole udomaćuju druge kontrole poput kontrola Screen i Gallery. Hostirana kontrola za kontrole unutar sebe naziva se nadređena. Poput operatora Self operator Parent pruža jednostavno relativno upućivanje na kontrolu spremnika.

Na primjer Parent.Fill odnosi se na svojstvo ispuna kontrole koje je spremnik za trenutnu kontrolu.

Self i Parent su operatori, a ne svojstva na samim kontrolama. Upućivanje na Parent.Parent, Self.Parent ili Parent.Self nije podržano.

Nazivi identifikatora

Nazivi varijabli, izvora podataka, stupaca i drugih objekata mogu sadržavati svaki Unicode standard.

Upotrijebite pojedinačne navodnike oko naziva koji sadrži razmak ili drugi posebni znak.
Upotrijebite dva jednostruka navodnika zajedno kako biste predstavili jedan jednostruki navodnik u nazivu. Nazivima koji ne sadrže posebne znakove ne trebaju jednostruki navodnici.

Evo nekoliko primjera naziva stupaca na koje možete naići u tablici i načina njihova prikazivanja u formuli:

Naziv stupca u bazi podataka Referenca stupca u formuli
SimpleName SimpleName
NameWith123Numbers NameWith123Numbers
Naziv s razmacima 'Name with spaces'
Naziv s „dvostrukim” navodnicima 'Name with "double" quotes'
Naziv s 'jednostrukim' navodnicima 'Name with ''single'' quotes'
Naziv sa znakom @ 'Name with an @ at sign'

Dvostruki navodnici upotrebljavaju se za određivanje tekstnih nizova.

Prikaz naziva i logičkih naziva

Neki izvori podataka kao što su SharePoint i Microsoft Dataverse imaju dva različita naziva koja se odnose na istu tablicu ili stupac podataka:

  • Logički naziv – Naziv za koji se jamči da je jedinstven, ne mijenja se nakon stvaranja, obično ne dopušta razmake ili druge posebne znakove i ne prevodi se na različite jezike. Kao rezultat, naziv može biti zagonetan. Ove nazive upotrebljavaju profesionalni razvojni inženjeri. Na primjer, cra3a_customfield. Ovaj se naziv može također navesti kao naziv sheme ili samo naziv.

  • Zaslonski naziv – naziv koji je prilagođen korisniku i vidljiv krajnjim korisnicima. Taj naziv možda nije jedinstven, može se vremenom mijenjati, može sadržavati razmake i svaki Unicode znak, a može biti preveden na različite jezike. U skladu s prethodnim primjerom, zaslonski naziv može biti Prilagođeno polje s razmakom između riječi.

Budući da su zaslonski nazivi lakše razumljivi, aplikacije od gotovih gradivnih elemenata predložit će ih kao odabir, a neće predlagati logička imena. Iako logički nazivi nisu predloženi, i dalje ih se može upotrebljavati ako se upišu neizravno.

Na primjer, zamislite da ste dodali Prilagođeno polje u tablicu na usluzi Dataverse. Logički naziv dodijelit će vam sustav i možete ga mijenjati samo tijekom stvaranja polja. Rezultat bi bio sličan sljedećem:

Tablica Računi s dodanim prilagođenim poljem koja prikazuje zaslonsko ime

Tijekom stvaranja reference na polje Računi predložit će se uporaba naziva „Prilagođeno polje”, budući da je to zaslonski naziv. Moraju se koristiti jednostruki navodnici jer ovaj naziv sadrži razmak:

Studijska traka formule s prikazom prijedloga za nazive polja računa s istaknutom mogućnošću zaslonsko ime

Nakon odabira prijedloga, na traci formule prikazuje se 'Prilagođeno polje' i podatci se preuzimaju:

Studijska traka formule koja prikazuje korištenje zaslonsko ime 'Prilagođeno polje' za polje.

Iako nije predloženo, mogli bismo za ovo polje upotrijebiti i logički naziv. To će rezultirati preuzimanjem istih podataka. Jednostruki navodnici nisu potrebni jer ovaj naziv ne sadrži razmake ili posebne znakove:

Studijska traka formule koja prikazuje korištenje logičkog naziva cr5e3_customfield za polje.

Iza scene održava se mapiranje između zaslonskih naziva koji se vide u formulama i pozadinskih logičkih imena. Budući da se logički nazivi moraju upotrijebiti za interakciju s izvorom podataka, ovo se mapiranje upotrebljava za automatsko pretvaranje trenutačnog zaslonskog naziva u logički naziv i to je ono što se vidi u mrežnom prometu. Ovo se mapiranje koristi i za pretvaranje natrag u logičke nazive za prelazak na nove zaslonske nazive, na primjer, ako se zaslonski naziv promijeni ili autor uredi aplikaciju na drugom jeziku.

Napomena

Logički se nazivi ne prevode tijekom premještanja aplikacije između okruženja. Za sistemske tablicei nazive polja usluge Dataverse to ne bi trebao predstavljati problem jer su logički nazivi dosljedni u svim okruženjima. Ali svako prilagođeno polje, poput cra3a_customfield u ovom prethodnom primjeru ,može imati drugačiji prefiks okruženja (u ovom slučaju cra3a). Prednost imaju zaslonski nazivi jer se mogu prilagoditi zaslonskim imenima novog okruženja.

Rješavanje nesklada polja

Budući da zaslonski nazivi nisu jedinstveni, isti zaslonski naziv može se prikazati više puta u istoj tablici. Kada se to dogodi, logički naziv dodat će se na kraju zaslonskog naziva unutar zagrada za jedan od više sukobljenih naziva. Vodeći se gornjim primjerom, ako je postojalo drugo polje istog zaslonskog naziva Prilagođeno polje i logičkog imena cra3a_customfieldalt tada bi prijedlozi pokazali:

Studijska traka formule koja prikazuje korištenje logičkog naziva cr5e3_customfieldalt za razlikovanje dviju verzija

Nizovi s dvoznačnim nazivima dodaju se u drugim situacijama u kojima dolazi do sukoba imena, poput naziva tablice, odabira i drugih stavki usluge Dataverse.

Operator rješavanja nesklada

Neke funkcije stvaraju opsege zapisa za pristup poljima tablice tijekom obrade svakog zapisa, kao što su Filter, AddColumns i Sum. Nazivi polja dodani s pomoću opsega zapisa zamjenjuju iste nazive svugdje u aplikaciji. Kada se to dogodi, i dalje možete pristupiti vrijednostima izvan opsega zapisa s pomoću operatora za rješavanje nesklada @:

  • Za pristup vrijednostima s ugniježđenih opsega zapisa upotrijebite operator @ s nazivom tablice kojom se koristi ovaj uzorak:
    Tablica[@Naziv polja]
  • Za pristup globalnim vrijednostima, poput izvora podataka, zbirki i varijabli konteksta, upotrijebite uzorak [@ObjectName] (bez oznake tablice).

Dodatne informacija i primjere potražite u odjeljku Opsezi zapisa.