Operaattorit ja tunnisteet Power Appsissa

Soveltuu: Pohjaan perustuvat sovellukset Mallipohjaiset sovellukset

Jotkin näistä operaattoreista ovat riippuvaisia tekijän kielestä. Lisätietoja kielituesta pohjaan perustuvissa sovelluksissa: Yleiset sovellukset.

Symboli Tyyppi Esimerkki Kuvaus
'...' Tunniste 'Tilin nimi' Erikoismerkkejä, välilyönnit mukaan luettuna, sisältävät tunnisteet ympäröidään heittomerkeillä
"..." Tekstimerkkijono "Hello, World" Tekstimerkkijonot ympäröidään lainausmerkeillä
$"..." Merkkijonojen interpolointi $"Dear {FirstName}," Tekstimerkkijonoon upotetut kaavat
. Ominaisuuden valitsin Slider1.Value
Color.Red
Acceleration.X
Poimii ominaisuuden taulukosta, ohjausobjektista, signaalista Or luetteloinnista. Yhteensopivuus aikaisempien versioiden kanssa, myös ! voi olla käytössä.
.
[riippuu kielestä]
Desimaalierotin 1.23 Erotin numeron kokonaisosien ja murto-osien välissä. Merkki määräytyy kielen mukaan.
( ) Sulkeet Filter(T, A < 10)

(1 + 2) * 3
Pakottaa käsittelyjärjestyksen ja ryhmittää suuremman lausekkeen alilausekkeet
+ Aritmeettiset operaattorit 1 + 2 Yhteenlasku
-   2 - 1 Vähennyslasku ja etumerkki
*   2 * 3 Kertolasku
/   2 / 3 Jakolasku (katso myös Mod-funktio)
^   2 ^ 3 Potenssiin korotus, vastaa Power-funktiota
%   20% Prosenttiosuus (vastaa arvoa * 1/100)
= Vertailuoperaattorit Price = 100 Sama kuin
>   Price > 100 Suurempi kuin
>=   Price >= 100 Suurempi tai yhtä suuri kuin
<   Price < 100 Pienempi kuin
<=   Price <= 100 Pienempi tai yhtä suuri kuin
<>   Price <> 100 Eri kuin
& Merkkijonon yhdistämisoperaattori "hei" & " " & "maailma" Muodostaa useista merkkijonoista yhtenäisen näkymän
&& tai And Loogiset operaattorit Hinta < 100 && Slider1.Value = 20
Or Price < 100 And Slider1.Value = 20
Looginen yhdistäminen, vastaa And-funktiota
|| Or Or   Price < 100 || Slider1.Value = 20 or Price < 100 Or Slider1.Value = 20 Looginen erottaminen, vastaa Or-funktiota
! tai Not   !(Price < 100) tai Not (Price < 100) Looginen negaatio, vastaa Not-funktiota
exactin Jäsenyysoperaattorit Gallery1.Selected exactin SavedItems Kokoelmaan tai taulukkoon kuuluva
exactin   "Windows" exactin “To display windows in the Windows operating system...” Alimerkkijonotesti (kirjainkoko on merkitsevä)
sisältyy   Gallery1.Selected in SavedItems Kokoelmaan tai taulukkoon kuuluva
sisältyy   "The" in "The keyboard and the monitor..." Alimerkkijonotesti (kirjainkoko ei ole merkitsevä)
@ Selvitysoperaattori MyTable[@fieldname] Kentän selvitys
@   [@MyVariable] Yleinen selvitys
,
[riippuu kielestä]
Luetteloerotin If( X < 10, "Low", "Good" )
{ X: 12, Y: 32 }
[ 1, 2, 3 ]
Erottaa: Tämä merkki määräytyy kielen mukaan.
;
[riippuu kielestä]
Kaavan ketjutus Collect(T, A); Navigate(S1, "") Erilliset funktioiden kutsut toimintaominaisuuksissa. Ketjutusoperaattori on riippuvainen kielestä.
Kohteena Kohteena-operaattori AllCustomers asiakkaana On ensisijainen operaattoreihin ThisItem ja ThisRecord nähden valikoimissa sekä tietueen vaikutusalueen funktioissa. Kohteena on hyödyllinen paremman ja tarkemman nimen antamiseen ja on erityisen tärkeä sisäkkäisissä skenaarioissa.
Itse Self-operaattori Self.Fill Nykyisen ohjausobjektin ominaisuuksien käyttöoikeus
Ylätaso Parent-operaattori Parent.Fill Ohjausobjektin säilön ominaisuuksien käyttö
ThisItem ThisItem-operaattori ThisItem.FirstName Pääsy Gallery- tai Form-ohjausobjektin kenttiin
ThisRecord ThisRecord-operaattori ThisRecord.FirstName Koko tietueen ja tietueen yksittäisten kenttien käyttö operaattoreissa ForAll, Sum, With ja muissa tietueen vaikutusalueen funktioissa. Voidaan ohittaa Kohteena-operaattorina.

Muistiinpano

@-operaattorilla voidaan myös tarkistaa tietueobjektin tyyppi tietolähteen perusteella. Esimerkki: Collect(coll,Account@{'Account Number: 1111')

in- ja exactin-operaattorit

Käytä in- ja exactin-operaattoreita löytääksesi merkkijonon tietolähteestä, kuten kokoelmasta tai tuodusta taulukosta. in-operaattori tunnistaa osumat riippumatta tilanteesta. exactin-operaattori tunnistaa osumat vain, jos niiden ensimmäisen kirjaimen kirjainkoko on sama. Tässä on esimerkki:

  1. Luo tai tuo kokoelma, jonka nimi on Inventory, ja näytä se valikoimassa, kuten kohdan Kuvien ja tekstin näyttäminen valikoimassa ensimmäisessä toimintosarjassa on kuvattu.

  2. Aseta valikoiman Items-ominaisuudeksi tämä kaava:
    Filter(Inventory, "E" in ProductName)

    Valikoima näyttää kaikki muut tuotteet paitsi Calliston, koska tämän tuotteen nimi on ainoa, joka ei sisällä määrittämääsi kirjainta.

  3. Muuta valikoiman Items-ominaisuudeksi tämä kaava:
    Filter(Inventory, "E" exactin ProductName)

    Valikoima näyttää vain Europan, koska se on ainoa nimi, joka sisältää määrittämäsi kirjaimen.

Operaattorit ThisItem, ThisRecord ja Kohtena

Jotkut ohjausobjektit ja funktiot soveltavat kaavoja taulukon yksittäisiin tietueisiin. Voit viitata kaavan yksittäiseen tietueeseen jollakin seuraavista tavoista:

Operaattori Koskee Kuvaus
ThisItem Valikoima-ohjausobjekti
Muokkaa lomaketta -ohjausobjekti
Näytä lomake -ohjausobjekti
Nykyisen tietueen oletusnimi Gallery- tai lomakeohjausobjektissa.
ThisRecord ForAll, Filter, With, Sum ja muut tietueen vaikutusalueen funktiot Nykyisen tietueen oletusnimi operaattorissa ForAll ja muissa tietueen vaikutusalueen funktioissa.
nimenä Valikoima-ohjausobjekti
ForAll, Filter, With, Sum ja muut tietueen vaikutusalueen funktiot
Määrittää nykyiselle tietueelle nimen ja korvaa oletusarvoisen nimen ThisItem tai ThisRecord. Kohteena-objektin avulla voit tehdä kaavoista helpommin ymmärrettäviä sekä ratkaista monitulkintaisuutta sisäkkäisyydessä.

ThisItem-operaattori

Esimerkiksi seuraavassa Gallery-ohjausobjektissa Items-ominaisuuden asetuksena on Työntekijät-tietolähde (esimerkiksi Northwind Traders -näytteenTyöntekijät-taulukko):

Employees

Työntekijät esitettynä valikoimassa.

Valikoiman ensimmäinen kohde on malli, joka replikoidaan kunkin työntekijän osalta. Mallissa kuvan kaavassa käytetään ThisItem-funktiota viittaamaan kulloiseenkin kohteeseen:

ThisItem.Picture

Työntekijän kuvan kaava

Myös nimen kaava käyttää ThisItem-operaattoria:

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

Työn tekijän etu- ja sukunimen kaava

ThisRecord-operaattori

ThisRecord-operaattoria käytetään funktioissa, joilla on Tietueen vaikutusalue. Esimerkiksi Filter-funktiota voi käyttää valikoiman Items-ominaisuuden kanssa siten, että näytetään vain M-kirjaimella alkavat etunimet:

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

Työntekijöiden suodattaminen nimen perusteella ThisRecord-operaattorin avulla

ThisRecordon valinnainen ja sitä käytetään epäsuorasti käyttämällä kenttiä suoraan. Esimerkiksi tässä tapauksessa olisimme voineet kirjoittaa:

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

Vaikka ThisRecod-operaattorin käyttäminen on valinnaista, sillä voidaan tehdä kaavoista helpommin ymmärrettäviä ja sitä voidaan tarvita monitulkintaisissa tilanteissa, joissa kentän nimi voi olla myös suhteen nimi. ThisRecordon valinnainen, kun taas ThisItemon aina pakollinen.

Käytä ThisRecord-operaattoria viittaamaan koko tietueeseen funktioiden Patch ja Collect ja muiden tietueen vaikutusalueen toimintojen kanssa. Esimerkiksi seuraava kaava määrittää kaikkien passiivisten työntekijöiden tilaksi aktiivinen:

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

Kohteena-operaattori

Käytä Kohteena-operaattoria nimetäksesi tietueen valikoimassa tai tietueen vaikutusalueen funktion korvaten oletuksen ThisItem tai ThisRecord. Tietueen nimeäminen voi helpottaa kaavojen ymmärtämistä, ja sitä saatetaan tarvita sisäkkäisyyttä sisältävissä tilanteissa muilla vaikutusalueilla olevien tietueiden käyttämiseen.

Voit esimerkiksi muokata valikoiman Items-ominaisuuden käyttämään Kohteena-operaattoria sen tunnistamiseen, että käsittelemme työntekijää:

Employees As Employee

Työntekijöiden valikoima käyttämällä Kohteena-operaattoria

Tämän kuvan ja nimen kaavat on mukautettu käyttämään nykyisestä tietueesta seuraavaa nimeä:

Employee.Picture

Kuva työntekijästä käyttämässä Työntekijän nimi -joukkoa Kohteena-operaattorilla

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

Työntekijän nimi -joukkoa Kohteena-operaattorilla käyttävän työntekijän etu- ja sukunimi

As-operaattoria voi käyttää myös tietueen vaikutusaluefunktioiden kanssa oletusnimen ThisRecord korvaamiseen. Sovellamme tätä edelliseen esimerkkiin selkeyttääksemme käsiteltävää tietuetta:

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

Valikoimia ja tietueen vaikutusalueen funktioita sisäkkäin asetettaessa ThisItem ja ThisRecord viittaavat aina sisimpään vaikutusalueeseen, jolloin ulompien vaikutusalueiden tietueet eivät ole käytettävissä. Käytä Kohteena-operaattoria mahdollistaaksesi kaikkien tietueen vaikutusalueiden käytön antamalla kullekin niistä yksilöllisen nimen.

Tämä kaava esimerkiksi tuottaa shakkilautakuvion tekstimerkkijonona asettamalla sisäkkäin kaksi ForAll-funtkiota:

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
)

Kun Label-ohjausobjektin Text-ominaisuudeksi määritetään tämä kaava, näkyviin tulee:

Shakkilautateksti seliteohjausobjektissa

Katsotaan tarkemmin, mitä tässä tapahtuu:

  • Aloitamme iteroimalla nimettömän 8 numeroitua Sequence-toiminnon tietuetta sisältävän nimettömän taulukon. Tämä silmukka pätee taulukon jokaiseen riviin. Sitä kutsutaan yleisesti nimellä Sijoitus, joten me annamme sille tämän nimen.
  • Kullekin riville iteroimme uuden 8 sarakkeen nimettömän taulukon ja annamme yhteiseksi nimeksi Tiedosto.
  • Jos Rank.Value + File.Value on pariton, neliöön tulee merkinnäksi X, muussa tapauksessa piste. Tämä kaavan osa viittaa molempiin ForAll-silmukoihin, mikä on mahdollista Kohteena-operaattorin käytön ansiosta.
  • Concat-funktiota käytetään kahdesti. Ensin sarakkeiden ja sitten rivien kokoamiseen. Char(10) lisätään uuden rivin luomiseksi.

Samankaltainen esimerkki on mahdollinen sisäkkäisten Gallery-ohjausobjektien avulla ForAll-funktioiden tilalla. Aloitetaan pystysuoralla Sijoitus-valikoimalla. Tämän valikoimaohjausobjektin Items-kaavaksi tulee:

Sequence(8) as Rank

Kuva ulommasta valikoimasta, josta Sijoitus-iteraatio saadaan

Tämän valikoiman sisälle asetamme vaakasuuntaisen valikoiman Tiedosto-sarakkeelle, joka replikoidaan kullekin Sijoitus-riville siten, että Items-ominaisuus on:

Sequence(8) as File

Kuva sisemmästä valikoimasta, josta Tiedosto-iteraatio saadaan

Lopuksi lisäämme tämän valikoiman sisälle Label-ohjausobjektin, joka replikoidaan kunkin Tiedoston ja kunkin Sijoituksen osalta. Suurennamme sen täyttämään koko tilan ja käytämme Fill antamaan värin seuraavan kaavan perusteella:

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

Kahden valikoiman sisällä oleva Selite-ohjausobjekti, joka tuottaa shakkilaudan vaihtuvat värit

Self- ja Parent-operaattorit

Ohjausobjektiin ja sen ominaisuuksiin voidaan viitata kolmella tavalla:

Tapa Kuvaus
Ohjausobjektin nimellä Kaikkiin ohjausobjekteihin voidaan viitata nimellä mistä tahansa kohdasta sovelluksessa.

Esimerkiksi Label1.Fill viittaa sen ohjausobjektin täyttöominaisuuteen, jonka nimi on Label1.
Self-operaattori On usein kätevää viitata toiseen saman ohjausobjektin ominaisuuteen kaavaa kirjoitettaessa. Absoluuttise, nimellä tapahtuvan viittauksen asemesta on helpompaa ja siirrettävämpää käyttää suhteellista itseviittausta self. Self-operaattori tarjoaa tuon helpon pääsyn nykyiseen ohjausobjektiin.

Esimerkiksi Self.Fill viittaa nykyisen ohjausobjektin täyttöväriin.
Parent-operaattori Jotkin ohjausobjektit, kuten Screen ja Gallery isännöivät muita ohjausobjekteja. Sisällä olevien ohjausobjektien isännöivää ohjausobjektia kutsutaan ylätasoksi. Samoin kuin Self-operaattori, Parent-operaattori tarjoaa helpon suhteellisen viittauksen säilöohjausobjektiin.

Esimerkiksi Parent.Fill viittaa sen ohjausobjektin täyttöominaisuuteen, joka on nykyisen ohjausobjektin säilö.

Self ja Parent ovat operaattoreita, eivätkä itse ohjausobjektien ominaisuuksia. Viittauksia Parent.Parent, Self.Parent tai Parent.Self ei tueta.

Tunnisteiden nimet

Muuttujien, tiet lähteiden, sarakkeiden ja muiden objektien nimet voivat sisältää mitä tahansa Unicode-tekstiä.

Käytä yksittäisiä lainausmerkkejä sellaisen nimen ympärillä, joka sisältää välilyönnin tai muun erikoismerkin.
Käytä kahta heittomerkkiä yhdessä, kun haluat esittää yhden lainausmerkin nimessä. Nimet, joissa ei ole erikoismerkkejä, eivät edellytä heittomerkkejä.

Seuraavassa on esimerkkejä sarakenimistä, joita saattaa olla taulukoissa, sekä siitä, miten ne ilmaistaan kaavassa:

Sarakkeen nimi tietokannassa Sarakeviittaus kaavassa
SimpleName SimpleName
NameWith123Numbers NameWith123Numbers
Nimi, jossa on välilyöntejä 'Name with spaces'
Nimi, jossa on kaksinkertaiset lainausmerkit 'Name with "double" quotes'
Nimi, jossa on yksittäiset lainausmerkit 'Name with ''single'' quotes'
Nimi, jossa on @-merkki 'Name with an @ at sign'

Kaksinkertaisia lainausmerkkejä käytetään tekstimerkkijonojen nimeämiseen .

Näyttönimet ja loogiset nimet

Joillakin tietolähteillä, kuten SharePoint ja Microsoft Dataversellä on kaksi eri nimeä, jotka viittaavat samaan taulukkoon tai tietosarakkeeseen:

  • Looginen nimi – Nimi, joka on varmasti yksilöllinen, ei muutu luomisen jälkeen, ei yleensä salli välilyöntejä tai muita erikoismerkkejä, eikä sitä lokalisoida eri kielille. Tämän tuloksena nimi voi olla arvoituksellinen. Näitä nimiä käyttävät ammattimaiset kehittäjät. Esimerkiksi cra3a_customfield. Tätä nimeä voidaan kutsua myös rakenteen nimeksi tai vain nimeksi.

  • Näyttönimi – nimi, joka on käyttäjäystävällinen ja jonka loppukäyttäjät näkevät. Tämä nimi ei välttämättä ole yksilöllinen, se voi muuttua ajan mittaan, se voi sisältää välilyöntejä ja mitä tahansa Unicode-merkkejä ja se voidaan lokalisoida eri kielillä. Edellä esitetyn esimerkin mukaisesti näyttönimenä voi olla Mukautettu kenttä siten, että sanojen välissä on välilyönti.

Koska näyttönimet ovat helpommin ymmärrettäviä, kaaviosovellukset ehdottavat vaihtoehdoiksi niitä loogisten nimien sijaan. Vaikka loogisia nimiä ei ehdoteta, niitä voi silti käyttää, jos ne kirjoittaa epäsuorasti.

Oletetaan esimerkiksi, että olet lisännyt mukautetun kentän taulukkoon Dataversessä. Järjestelmä määrittää sinulle loogisen nimen, jota voit muokata vain kenttää luotaessa. Tulos näyttäisi seuraavanlaiselta:

Asiakkaat-taulukko, jossa on lisätty mukautettu kenttä, näyttönimi on Mukautettu kenttä ja looginen nimi

Kun luot viittausta tilien kenttään, ehdotetaan nimen Custom Field käyttöä, koska se on näyttönimenä. Heittomerkkejä on käytettävä, koska nimi sisältää välilyönnin:

Studion kaavarivi, jossa näkyy tilien kenttänimiehdotuksia ja jossa näyttönimi Custom Field on korostettuna

Kun olet valinnut ehdotuksen, kaavarivillä näkyy Custom Field ja tiedot noudetaan:

Studion kaavarivi, jossa näkyy näyttönimen Custom Field käyttö kentälle

Vaikka sitä ei ehdoteta, myös loogista nimeä voisi käyttää tässä kentässä. Tämä johtaa siihen, että samat tiedot noudetaan. Heittomerkkejä ei tarvita, koska tässä nimessä ei ole välilyöntejä tai erikoismerkkejä:

Studion kaavarivi, jossa näkyy loogisen nimen cr5e3_customfield käyttö kentälle

Taustalla ylläpidetään yhdistämismääritystä kaavoissa näkyvien näyttönimien ja pohjalla olevien loogisten nimien välillä. Koska loogisia nimiä on käytettävä vuorovaikutuksessa tietolähteen kanssa, tätä yhdistämismääritystä käytetään kulloisenkin näyttönimen muuntamisessa automaattisesti loogiseksi nimeksi, ja tämä näkyy verkkoliikenteessä. Tätä yhdistämismääritystä käytetään myös muunnettaessa takaisin loogisiksi nimiksi, jotta voidaan vaihtaa uusiin näyttönimiin esimerkiksi, jos näyttönimi muuttuu tai toista kieltä käyttävä tekijä muokkaa sovellusta.

Muistiinpano

Loogisia nimiä ei käännetä, kun sovellusta siirretään ympäristöjen välillä. Dataverse järjestelmätaulukoiden ja kenttien nimien ei pitäisi olla ongelma, koska loogiset nimet ovat yhdenmukaisia eri ympäristöissä. Kaikilla mukautetuilla kentillä, kuten edellisen esimerkin kentällä cra3a_customfield, on eri ympäristöetuliite (tässä tapauksessacra3a). Näyttönimet ovat ensisijaisia, koska niitä voidaan verrata uuden ympäristön näyttönimiin.

Nimien selvitys

Koska näyttönimet eivät ole yksilöllisiä, sama näyttönimi voi esiintyä useammin kuin kerran samassa taulukossa. Kun näin tapahtuu, looginen nimi lisätään näyttönimen loppuun suluissa yhdessä tai useammassa identtisessä nimessä. Jos edellä olevassa esimerkissä olisi toinen kenttä, jolla on sama näyttönimi Custom Field ja jonka looginen nimi olisi cra3a_customfieldalt, ehdotuksissa näkyisi:

Studion kaaviorivi, jossa näkyy loogisen nimen cr5e3_customfieldalt käyttö kahden Custom Field -version erottamiseen toisistaan

Nimiin, jossa esiintyy ristiriitoja, lisätään nimiä, kuten taulukon nimiä, vaihtoehtoja ja muita Dataverse-kohteita, joissa esiintyy nimiä.

Selvitysoperaattori

Jotkin funktiot luovat tietuealueita taulukon kenttien käyttämiseksi tietueita käsiteltäessä, kuten Filter, AddColumns ja Sum. Tietuealueen kanssa lisättyjen kenttien nimet ohittavat samat nimet, jotka ovat peräisin muualta sovelluksesta. Kun näin tapahtuu, voit edelleen käyttää arvoja tietuealueen ulkopuolelta käyttämällä @ selvitysoperaattoria:

  • Voit käyttää sisäkkäisten tietuealueiden arvoja käyttämällä operaattoria @ siten, että käsiteltävänä olevan taulukon nimi esitetään tämän mallin mukaisesti:
    Table[@FieldName]
  • Voit käyttää yleisiä arvoja, kuten tietolähteitä, kokoelmia ja kontekstimuuttujia, esittämällä ne mallin [@ObjectName] mukaisesti (ilman taulukon määritystä).

Katso lisätietoja ja esimerkkejä tietuealueista.