Deli putem


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:

  1. 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.

  2. 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.

  3. 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

Zaposleni prikazani u galeriji.

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

Formula za sliku zaposlenog.

Isto tako, formula za ime takođe koristi operator ThisItem:

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

Formula za ime i prezime zaposlenog.

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" ) )

Filtriranje zaposlenih na osnovu imena, koristeći ThisRecord.

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

Galerija zaposlenih, koristeći As operatora.

Formule za sliku i ime podešavaju se tako da koriste ovo ime za trenutni zapis:

Employee.Picture

Slika zaposlenog koji koristi ime zaposlenog postavljeno sa operaterom As

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

Ime i prezime zaposlenog koristeći ime zaposlenog postavljeno sa operatorom As

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:

Tekst šahovske table prikazan u kontroli oznake.

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

Ilustracija spoljne galerije koja obezbeđuje Rank iteraciju.

U okviru ove galerije postavićemo horizontalnu galeriju za File, koja će se replicirati za svaki Rank, sa svojstvom Items:

Sequence(8) as File

Ilustracija unutrašnje galerije koja obezbeđuje File iteraciju.

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 )

Kontrola oznaka unutar dve galerije koja obezbeđuje naizmenične boje za šahovsku tablu.

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:

Tabela računa sa dodatim prilagođenim poljem, koja prikazuje ime za prikaz

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:

Studijska traka formule koja prikazuje predloge za nazive polja naloga sa istaknutim ime za prikaz

Nakon odabira predloga, na traci za formule prikazuje se 'Prilagođeno polje' i podaci se preuzimaju:

Studijska traka formule koja prikazuje upotrebu ime za prikaz

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:

Studijska traka formule koja prikazuje upotrebu logičkog imena cr5e3_customfield za polje.

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:

Studio formula bar koji prikazuje upotrebu logičkog imena cr5e3_customfieldalt za razdvajanje dve verzije

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.