Operatori i identifikatori u usluzi Power Apps
Odnosi se na: Canvas aplikacije Aplikacije zasnovane na modelu Power Pages
Neki od ovih operatora zavise od jezika autora. Više informacija o jezičkoj podršci u aplikacijama sa podlogom potražite u članku Globalne aplikacije.
Simbol | Tip | Primer | Opis |
---|---|---|---|
'...' | Identifikator | 'Ime naloga' | Identifikatori koji sadrže specijalne znakove, uključujući razmake, nalaze se u jednostrukim navodnicima |
"..." | Tekstualni niz | "Zdravo, Svet" | Tekstualne niske se zatvaraju u dvostrukim navodnicima |
$"..." | String interpolacija | $ "Dragi {FirstName}," | Formule ugrađene u tekstualnu nisku |
. | Birač svojstava | Slider1.Value Color.Red Acceleration.X |
Izvlači svojstvo iz tabele, kontrole, signala ili nabrajanja. Za obrnutu kompatibilnost, može da se koristi i !. |
. [zavisi od jezika] |
Znak za razdvajanje decimala | 1.23 | Znak za razdvajanje između celih i decimalnih delova broja. Znak zavisi od jezika. |
( ) | Zagrade | Filter (T, A < 10) (1 + 2) * 3 |
Sprovodi redosled prioriteta i grupiše podizraze u većem izrazu |
+ | Aritmetički operatori | 1 + 2 | Sabiranje |
- | 2 - 1 | Oduzimanje i znak | |
* | 2 * 3 | Množenje | |
/ | 2 / 3 | Deljenje (takođe pogledajte funkciju Mod) | |
^ | 2 ^ 3 | Stepenovanje, ekvivalentno funkciji Power | |
% | 20% | Procenat (ekvivalentno sa „* 1/100“) | |
= | Operatori poređenja | Cena = 100 | Jednako je |
> | Cena > 100 | Veće od | |
>= | Cena > = 100 | Veće od ili jednako sa | |
< | Cena < 100 | Manje od | |
<= | Cena < = 100 | Manje od ili jednako sa | |
<> | Cena <> 100 | Nije jednako sa | |
& | Operator za povezivanje niski | "zdravo" & " " & "svet" | Sastavlja više niski tako da se prikazuju kontinuirano |
&& ili I | Logički operatori | Цena < 100 && Slider1.Vrednost = 20 ili Price < 100 And Slider1.Value = 20 |
Logička konjunkcija, ekvivalentna funkciji And |
|| ili Ili | Cena < 100 || SliderKSNUMKS.Value = KSNUMKS ili cena < KSNUMKS ili SliderKSNUMKS.Value = KSNUMKS | Logička disjunkcija, ekvivalentna funkciji Or | |
! ili Not | ! (Cena < 100) ili ne (Cena < 100) | Logička negacija, ekvivalentna funkciji Not | |
ekaktan | Operateri članstva | Galerija1.Izabrani ekactin SačuvanePredmeti | Pripadanje kolekciji ili tabeli |
ekaktan | "Vindovs" ekactin "Za prikaz prozora u operativnom sistemu Vindovs..." | Testiranje podniske (koje razlikuje velika i mala slova) | |
U | Galerija1.Izabrano u SavedItems | Pripadanje kolekciji ili tabeli | |
U | "The" u "Tastatura i monitor..." | Testiranje podniske (koje ne razlikuje velika i mala slova) | |
@ | Operator višeznačnosti | MyTable[@fieldname] | Razjašnjavanje polja |
@ | [@MyVariable] | Globalno razjašnjavanje | |
, [zavisi od jezika] |
Znak za razdvajanje liste | if( k < 10, "nisko", "dobro" ) { Ks: 12, I: 32 } [ 1, 2, 3 ] |
Razdvaja: Ovaj znak zavisi od jezika. |
; [zavisi od jezika] |
Povezivanje formula | Collect(T, A); Navigacija (S1, "") | Razdvaja pozive funkcija u svojstvima ponašanja. Operator lančanog povezivanja zavisi od jezika. |
Kao | Kao operater | AllCustomers kao kupac | Zamenjuje svojstva ThisItem i ThisRecord u funkcijama opsega galerija i zapisa. Kao što je korisno za pružanje boljeg, specifičnog imena i posebno je važno u ugniježđenim scenarijima. |
Bilten | Samo operater | Samo.Popunite | Pristup svojstvima trenutne kontrole |
Roditelj | Roditeljski operater | Roditelj.Popuni | Pristup svojstvima kontejnera kontrole |
Preuzmite | ThisItem operator | Srpskohrvatski / srpskohrvatski | Pristup poljima Galerije ili kontroli obrasca |
ThisRecord | Operater ThisRecord | ThisRecord.FirstName | Pristup celokupnom zapisu i pojedinim poljima zapisa unutar funkcija ForAll, Sum, With i drugih funkcija opsega zapisa. Može se zameniti operatorom As. |
Belešku
Operator @ se takođe može koristiti za potvrdu tipa objekta zapisa prema izvoru podataka. Na primer, Collect(coll,Account@{'Account Number: 1111')
Operatori „in“ i „exactin“
Koristite operatore in i exactin da pronađete nisku u izvoru podataka, poput kolekcije ili uvezene tabele. Operator in identifikuje podudaranja bez obzira na veličinu slova, a operator exactin identifikuje podudaranja samo ako je veličina slova ista. Evo primera:
Kreirate ili uvozite kolekciju pod nazivom Inventar i prikazujete je u galeriji, kao što to opisuje prvi postupak u članku Prikaz slika i teksta u galeriji.
Podesite svojstvo Items galerije prema ovoj formuli:
Filter(Inventar, "E" u ProductName)U galeriji su prikazani svi proizvodi osim „Callisto“, jer je naziv tog proizvoda jedini koji ne sadrži slovo koje ste naveli.
Promenite svojstvo Items galerije prema ovoj formuli:
Filter(Inventar, "E" ekactin ProductName)Galerija prikazuje samo stavku „Europa“, jer samo njeno ime sadrži slovo koje ste naveli u veličini koju ste naveli.
Operatori ThisItem, ThisRecord i As
Nekoliko kontrola i funkcija primenjuju formule na pojedinačne zapise tabele. Da biste upućivali na pojedinačni zapis u formuli, koristite jedno od sledećeg:
Operator | Odnosi se na | Opis |
---|---|---|
Preuzmite | Galerija kontrola Uređivanje kontrole obrasca Kontrola obrasca za prikaz |
Podrazumevano ime za trenutni zapis u kontroli Galerije ili obrasca. |
ThisRecord | Zasve, Filter, Sa, Sum i druge funkcije opsega zapisa | Podrazumevano ime za trenutni zapis u funkciji ForAll i drugim funkcijama opsega zapisa. |
Kaoime | Galerija kontrola Zasve, Filter, Sa, Sum i druge funkcije opsega zapisa |
Definiše ime za trenutni zapis, zamenjujući podrazumevano ThisItem ili ThisRecord. Koristite As kako bi se formule lakše razumele i razrešile nejasnoće prilikom unošenja. |
Operator ThisItem
Na primer, u sledećoj kontroli Galerija, svojstvo Items se postavlja na izvor podataka Zaposleni (kao što je tabela Zaposleni uključena u primer Northwind Traders):
Employees
Prva stavka u galeriji je predložak koji se replicira za svakog zaposlenog. U predlošku formula za sliku koristi operator ThisItem da upućuje na trenutnu stavku:
ThisItem.Picture
Isto tako, formula za ime takođe koristi operator ThisItem:
ThisItem.'First Name' & " " & ThisItem.'Last Name'
Operator ThisRecord
ThisRecord se koristi u funkcijama koje imaju opseg zapisa. Na primer, možemo da koristimo funkciju Filter sa svojstvom Items da se prikažu samo imena koja počinju sa M:
Filter( Employees, StartsWith( ThisRecord.Employee.'First Name', "M" ) )
ThisRecord je opciono i podrazumeva se direktnim korišćenjem polja, na primer, u ovom slučaju, mogli smo napisati:
Filter( Employees, StartsWith( 'First Name', "M" ) )
Iako opcionalno, koristeći ThisRecord može olakšati razumevanje formula i može biti potreban u dvosmislenim situacijama gde ime polja takođe može biti naziv relacije. ThisRecord je opciono, dok je ThisItem uvek potreban.
Koristite operator ThisRecord da referencirate čitav zapis funkcijama Patch, Collect i drugim funkcijama opsega zapisa. Na primer, sledeća formula postavlja status svih neaktivnih zaposlenih na „aktivan“:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees,
Patch( Employees, ThisRecord, { Status: 'Status (Employees)'.Active } ) ) )
Operator As
Koristite operator As da imenujete zapis u galeriji ili funkciji opsega zapisa, zamenjujući podrazumevani operator ThisItem ili ThisRecord. Imenovanjem zapisa može vam biti lakše da razumete formule i može biti potrebno u ugnežđenim situacijama za pristup zapisima u drugim opsezima.
Na primer, možete da modifikujete svojstvo Items naše galerije da koristi As da identifikovali da radimo sa zaposlenim:
Employees As Employee
Formule za sliku i ime podešavaju se tako da koriste ovo ime za trenutni zapis:
Employee.Picture
Employee.'First Name' & " " & Employee.'Last Name'
Kao što se takođe može koristiti sa funkcijama opsega zapisa da zameni podrazumevano ime ThisRecord. To možemo primeniti na naš prethodni primer da razjasnimo zapis sa kojim radimo:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees As Employee,
Patch( Employees, Employee, { Status: 'Status (Employees)'.Active } ) ) )
Prilikom ugnežđavanja galerija i funkcija opsega zapisa, operatori ThisItem i ThisRecord uvek se odnose na sasvim unutrašnji opseg, ostavljajući zapise u spoljnim opsezima nedostupnim. Koristite As da biste sve opsege zapisa učinili dostupnim tako što ćete svakom dati jedinstveno ime.
Na primer, ova formula pravi uzorak šahovske table kao tekstualnu nisku umetanjem dve funkcije 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
)
Podešavanje svojstva Text kontrole Oznaka na ovu formulu prikazuje:
Hajde da vidimo šta se ovde dešava:
- Započinjemo ponavljanjem neimenovane tabele od 8 numerisanih zapisa iz funkcije Sequence. Ova petlja je za svaki red table, što se obično naziva Rank i zato mu dajemo to ime.
- Za svaki red ponavljamo još jednu neimenovanu tabelu od 8 kolona i dajemo zajedničko ime File.
- Ako je Rank.Value + File.Value neparan broj, kvadrat dobija X, inače dobija tačku. Ovaj deo formule se odnosi na obe petlje ForAll, što je omogućeno operatorom As.
- Concat se koristi dva puta, prvo za sastavljanje kolona, a zatim redova, sa Char(10) bačen da bi se stvorila nova linija.
Sličan primer je moguć i sa ugnežđenim kontrolama Galerija umesto funkcija ForAll. Krenimo od vertikalne galerije za Rank. Ova kontrola galerije će imati formulu Items:
Sequence(8) as Rank
U okviru ove galerije postavićemo horizontalnu galeriju za File, koja će se replicirati za svaki Rank, sa svojstvom Items:
Sequence(8) as File
I na kraju, u ovu galeriju dodaćemo kontrolu Oznaka koja će se replicirati za svaki File i svaki Rank. Promenićemo veličinu tako da popunimo ceo prostor i iskoristimo svojstvo Fill da se obezbedimo boju ovom formulom:
If( Mod( Rank.Value + File.Value, 2 ) = 1, Green, Beige )
Opratori Self i Parent
Postoje tri načina da u formuli referencirate kontrolu i njena svojstva:
Metod | Opis |
---|---|
Po nazivu kontrole | Svaka kontrola se može pozivati po nazivu bilo gde u aplikaciji. Na primer, Label1.Fill se odnosi na svojstvo ispunjavanja kontrole čiji naziv je Label1. |
Samo operater | Često je prikladno uputiti neko drugo svojstvo iste kontrole prilikom pisanja formule. Umesto da upotrebljavate apsolutnu referencu po imenu, lakše je i pokretnije da koristite relativnu referencu na sebe. Operator Self omogućava lak pristup svojstvima trenutne kontrole. Na primer, Self.Fill se odnosi na boju popune trenutne kontrole. |
Roditeljski operater | Neke kontrole sadrže i druge kontrole, poput kontrola Screen i Gallery. Kontrola koja sadrži druge kontrole u sebi naziva se nadređena. Poput operatora Self, operator Parent pruža jednostavnu relativnu referencu na kontrolu kontejnera. Na primer, Parent.Fill se odnosi na svojstvo popune kontrole koja je kontejner za trenutnu kontrolu. |
Self i Parent su operatori, a ne svojstva na samim kontrolama. Reference Parent.Parent, Self.Parent ili Parent.Self nisu podržane.
Nazivi identifikatora
Nazivi promenljivih, izvora podataka, kolona i drugih objekata mogu sadržati bilo koji Unikod.
Koristite jednostruke navodnike oko naziva koju sadrže razmak ili drugi posebni znak.
Koristite dva jednostruka navodnika zajedno da biste predstavili jedan jednostruki navodnik u nazivu. Nazivi koji ne sadrže posebne znakove ne zahtevaju jednostruke navodnike.
Evo nekih primera naziva kolona na koje možete naići u tabeli i način na koji su predstavljeni u formuli:
Naziv kolone u bazi podataka | Referenca kolone u formuli |
---|---|
SimpleName | SimpleName |
NameWith123Numbers | NameWith123Numbers |
Naziv sa razmacima | 'Name with spaces' |
Naziv sa "dvostrukim" navodnicima | 'Name with "double" quotes' |
Naziv sa 'jednostrukim' navodnicima | 'Name with ''single'' quotes' |
Naziv sa znakom @ | 'Name with an @ at sign' |
Dvostruki navodnici se koriste da označite tekstualne niske.
Imena za prikaz i logička imena
Neki izvori podataka kao što su SharePoint i Microsoft Dataverse imaju dva različita naziva koja se odnose na istu tabelu ili kolonu podataka:
Logičko ime - Ime koje je garantovano jedinstveno, ne menja se nakon kreiranja, obično ne dozvoljava razmake ili druge specijalne znakove i nije lokalizovano na različite jezike. Kao rezultat, ime može biti kriptično. Te nazive koriste profesionalni programeri. Na primer, cra3a_customfield. Ovaj naziv se takođe može nazvati ime šeme ili samo ime.
ime za prikaz - Ime koje je prilagođeno korisniku i namenjeno da ga vide krajnji korisnici. Taj naziv možda nije jedinstven, može se vremenom menjati, može sadržavati razmake i bilo koji Unikod znak i može biti lokalizovan na različite jezike. U skladu sa gornjim primerom, ime za prikaz može biti Prilagođeno polje sa razmakom između reči.
Pošto su imena za prikaz lakša za razumevanje, aplikacije sa podlogom će ih predložiti kao izbor i neće predlagati logička imena. Iako logička imena nisu predložena, ipak se mogu koristiti ako ih upišete indirektno.
Na primer, zamislite da ste dodali Prilagođeno polje u tabelu u usluzi Dataverse. Sistem će vam dodeliti logičko ime koje možete izmeniti samo prilikom kreiranja polja. Rezultat bi izgledao nalik ovome:
Kada kreirate referencu na polje Poslovni kontakti, koristiće se predlog 'Prilagođeno polje', pošto je to ime za prikaz. Moraju se koristiti jednostruki navodnici, jer ovo ime ima razmak:
Nakon odabira predloga, na traci za formule prikazuje se 'Prilagođeno polje' i podaci se preuzimaju:
Iako nije predloženo, mogli bismo koristiti i logičko ime za ovo polje. To će rezultirati preuzimanjem istih podataka. Pojedinačni navodnici nisu obavezni jer ovo ime ne sadrži razmake ili posebne znakove:
Iza kulisa, održava se mapiranje između imena za prikaz koja se vide u formulama i osnovnih logičkih imena. Pošto se logička imena moraju koristiti za interakciju izvorom podataka, ovo mapiranje se koristi za automatsko konvertovanje iz trenutnog imena za prikaz u logičko ime i to je ono što se vidi u mrežnom saobraćaju. Ovo mapiranje se takođe koristi za povratno konvertovanje u logička imena koja se prebacuju u nova imena za prikaz, na primer, ako se ime za prikaz promeni ili autor na drugom jeziku uređuje aplikaciju.
Belešku
Logička imena se ne prevode kada se aplikacija premešta između okruženja. Za nazive Dataverse sistemskih tabela i polja, ovo ne bi trebao predstavljati problem, jer su logička imena konzistentna u svim okruženjima. Ali bilo koja prilagođena polja, poput cra3a_customfield u prethodnom primeru, može imati drugačiji prefiks okruženja (cra3a u ovom slučaju). Poželjnija su imena za prikaz, jer se mogu podudariti sa imenima za prikaz u novom okruženju.
Razjašnjavanje naziva
Pošto imena za prikaz nisu jedinstvena, isto ime za prikaz može se pojaviti više puta u istoj tabeli. Kada se to desi, logičko ime će biti dodato na kraj ime za prikaz u zagradama za jedno od više konfliktnih imena. Na osnovu gornjeg primera, ako je postojalo drugo polje sa istim imenom za prikaz Prilagođeno polje sa logičkim imenom cra3a_customfieldalt, tada bi predlozi pokazali:
Niske višeznačnih oznaka imena dodaju se u drugim situacijama u kojima dolazi do neusaglašenosti imena, poput naziva tabela, izbora i drugih Dataverse stavki.
Razjašnjavanje operatora
Neke funkcije kreiraju opsege zapisa za pristupanje poljima tabele tokom obrade svakog zapisa, kao što su Filter, AddColumns i Sum. Nazivi polja koji su dodati s opsegom zapisa zameniće ista imena na drugim mestima u aplikaciji. Kad se to dogodi, i dalje možete pristupati vrednostima izvan opsega zapisa pomoću operatora za razjašnjavanje @:
- Da biste pristupili vrednostima iz ugnežđenih opsega zapisa, koristite operator @ sa nazivom tabele kojom upravljate kada koristite ovaj obrazac:
Tabela[@FieldName] - Da biste pristupili globalnim vrednostima, kao što su izvori podataka, kolekcije i promenljive konteksta, koristite obrazac [@ObjectName] (bez oznake tabele).
Za više informacija i primera, pogledajte opsege zapisa.