Share via


Operatorji in identifikatorji v storitvi Power Apps

Velja za: Aplikacije delovnega območja Aplikacije , ki temeljijo na modelu

Nekateri od teh operatorjev so odvisni od jezika avtorja. Za več informacij o jezikovni podpori v aplikacijah s platnom glejte Globalne aplikacije.

Simbol Vnesi Primer Description
'...' Identifikator 'Ime računa' Identifikatorji, ki vsebujejo posebne znake, vključno s presledki, so v enojnih narekovajih
"..." Besedilni niz "Hello, World" Besedilni nizi so obdani z dvojnimi narekovaji
USD"..." Interpolacija nizov USD"Spoštovani/-a {FirstName}," Formule, vdelane v besedilni niz
. Izbirnik lastnosti Slider1.Value
Color.Red
Acceleration.X
Izvleče lastnost iz tabele, kontrolnika, signala ali oštevilčenja. Za združljivost s prejšnjimi različicami lahko uporabite tudi !.
.
[odvisno od jezika]
Decimalno ločilo 1.23 Ločilo med celimi in ulomljenimi deli števila. Znak je odvisen od jezika.
( ) Oklepaji Filter(T, A < 10)

(1 + 2) * 3
Uveljavi prednostni vrstni red in združi podizraze v večjem izrazu
+ Aritmetični operatorji 1 + 2 Seštevanje
-   2–1 Odštevanje in znak
*   2 * 3 Množenje
/   2 / 3 Deljenje (glejte tudi funkcijo Mod)
^   2 ^ 3 Potenciranje, enakovredno funkciji Power
%   20 % Odstotek (enakovredno »* 1/100«)
= Operatorji primerjanja Price = 100 Enako kot
>   Price > 100 Večje od
>=   Price >= 100 Večje ali enako kot
<   Price < 100 Manjše od
<=   Price <= 100 Manjše ali enako kot
<>   Price <> 100 Ni enako kot
& Operator za spojitev nizov "Pozdravljeni" & " & "Svet" Ustvari videz nepretrganega sklopa iz več nizov
&& ali in Logični operatorji Cena < 100 && drsnik1.Vrednost = 20
ali Price < 100 And Slider1.Value = 20
Logična konjunkcija, enakovredna funkciji And
|| ali Or   Price < 100 || Slider1.Value = 20 ali Price < 100 Or Slider1.Value = 20 Logična disjunkcija, enakovredna funkciji Or
! ali Not   !(Price < 100) ali Not (Price < 100) Logična negacija, enakovredna funkciji Not
exactin Operatorji članstva Gallery1.Selected exactin SavedItems Ki pripada zbirki ali tabeli
exactin   »Windows« exactin »To display windows in the Windows operating system...« Preizkus podniza (razlikovanje med velikimi in malimi črkami)
v   Gallery1.Selected in SavedItems Ki pripada zbirki ali tabeli
v   »The« in »The keyboard and the monitor...« Preizkus podniza (brez razlikovanja med velikimi in malimi črkami)
@ Operator za razločitev MyTable[@fieldname] Razločitev polja
@   [@MyVariable] Globalna razločitev
,
[odvisno od jezika]
Ločilo za seznam If( X < 10, "Low", "Good" )
{ X: 12, Y: 32 }
[1, 2, 3]
Ločuje:
  • argumente pri priklicih funkcije
  • polja v zapisu
  • zapisi v tabeli
Ta znak je odvisen od jezika.
;
[odvisno od jezika]
Veriženje formul Collect(T, A); Navigate(S1, "") Ločuje priklice funkcij pri lastnostih delovanja. Operator veriženja je odvisen od jezika.
Kot Operator »As« AllCustomers As Customer Preglasi operatorja ThisItem in ThisRecord v galerijah in funkcijah obsega zapisov. Operator Asje koristen za zagotavljanje boljšega, podrobnejšega imena in je še posebej pomemben v ugnezdenih scenarijih.
Sam Operator »Self« Self.Fill Dostop do lastnosti trenutnega kontrolnika
Parent Operator »Parent« Parent.Fill Dostop do lastnosti kontrolnega vsebnika
ThisItem Operator ThisItem ThisItem.FirstName Dostop do polj v galeriji ali kontrolnika obrazca
ThisRecord Operator ThisRecord ThisRecord.FirstName Dostop do celotnega zapisa in posameznih polj zapisa znotraj funkcij ForAll, Sum, With in drugih funkcij obsega zapisa. Lahko preglasimo z operatorjem As.

opomba,

Operator @ se lahko uporablja tudi za preverjanje vrste predmeta zapisa v primerjavi z viri podatkov. Na primer Collect(coll,Account@{'Account Number: 1111').

Operatorja »in« in »exactin«

Uporabite operatorja in in exactin, da najdete niz v viru podatkov, na primer zbirko ali uvoženo tabelo. Operator in prepozna ujemanja ne glede na primer, operator exactin pa prepozna ujemanja, samo če se uporabljajo enak način zapisa velikih začetnic. V nadaljevanju je predstavljen primer:

  1. Ustvarite ali uvozite zbirko z imenom Zaloga in jo prikažite v galeriji, kot opisuje prvi postopek v članku Prikaz slik in besedila v galeriji.

  2. Nastavite lastnost Items galerije na to formulo:
    Filter(Inventory, "E" in ProductName)

    V galeriji so prikazani vsi izdelki razen izdelka »Callisto«, ker je ime tega izdelka edino, ki ne vsebuje črke, ki ste jo določili.

  3. Spremenite lastnost Items galerije na to formulo:
    Filter(Inventory, "E" exactin ProductName)

    V galeriji je prikazan samo element Europa, ker samo to ime vsebuje črko, ki ste jo navedli v opredeljenem primeru.

Operatorji »ThisItem«, »ThisRecord« in »As«

Nekaj kontrolnikov in funkcij uporablja formule za posamezne zapise tabele. Če se želite sklicevati na posamezen zapis v formuli, uporabite eno od naslednjih:

Operator Velja za Opis
ThisItem Kontrolnik Gallery
Kontrolnik Edit form
Kontrolnik Display form
Privzeto ime za trenutni zapis v galeriji ali kontrolniku obrazca.
ThisRecord ForAll, Filter, With, Sum in druge funkcije iz obsega zapisa Privzeto ime za trenutni zapis v funkciji ForAll in druge funkcije obsega zapisa.
Kotime Kontrolnik Gallery
ForAll, Filter, With, Sum in druge funkcije iz obsega zapisa
Določa ime za trenutni zapis, ki nadomesti privzetega operatorja ThisItem ali ThisRecord. Uporabite operator As, za lažje razumevanje formul in za razrešitev dvoumnosti pri gnezdenju.

Operator ThisItem

V naslednjem kontrolniku Galerija je lastnost elementov nastavljena na vir podatkov Zaposleni (na primer tabela Zaposleni, priložena vzorcu podjetja Northwind Traders):

Employees

Zaposleni, prikazani v galeriji.

Prvi element v galeriji je predloga, ki se podvoji za vsakega zaposlenega. Formula za sliko v predlogi uporablja operatorja ThisItem za sklicevanje na trenutni element:

ThisItem.Picture

Formula za sliko zaposlenega.

Prav tako formula za ime uporablja operatorja ThisItem:

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

Formula za prvo in priimek zaposlenega.

Operator »ThisRecord«

ThisRecord se uporablja v funkcijah, ki imajo obseg zapisa. Lahko na primer uporabimo funkcijo Filter z lastnostjo naše galerije Predmeti, da prikazuje samo imena, ki se začnejo na M:

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

Filtriranje zaposlenih glede na ime z uporabo ThisRecord.

Operator ThisRecord je izbiren in se nanaša na neposredno uporabo polj, na primer v tem primeru bi lahko zapisali:

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

Čeprav je izbiren, lahko operator ThisRecord olajša razumevanje formul, njegovo uporabo pa lahko zahtevajo v dvoumnih situacijah, kjer je ime polja lahko tudi ime odnosa. Operator ThisRecord je izbiren, medtem ko je operator ThisItem vedno zahtevan.

Uporabite operator ThisRecord, če se želite sklicevati na celotni zapis s funkcijama Patch in Collect ter drugimi funkcijami obsega zapisa. Naslednja formula na primer nastavi stanje vseh nedejavnih zaposlenih na dejavno:

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

Operator »As«

Z operatorjem As poimenujte zapis v galeriji ali funkciji obsega zapisa in preglasite privzetega operatorja ThisItem ali ThisRecord. Poimenovanje zapisa lahko olajša razumevanje formul, v ugnezdenih situacijah pa je lahko poimenovanje zahtevano za dostop do zapisov v drugih obsegih.

Lahko na primer spremenite lastnost galerije Elementi in uporabite operator As da ugotovite, ali sodelujete z zaposlenim:

Employees As Employee

Galerija zaposlenih z operatorjem kot.

Formule za sliko in ime so prilagojene tako, da se to ime uporablja za trenutni zapis:

Employee.Picture

Slika zaposlenega, ki uporablja ime zaposlenega, nastavljeno z operatorjem kot.

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

Prvi in priimek zaposlenega, ki uporablja ime zaposlenega, nastavljeno z operatorjem kot.

Operator As lahko uporabite tudi s funkcijami obsega zapisa, da nadomestite privzeto ime operatorja ThisRecord. To lahko uporabimo v prejšnjem primeru, da razjasnimo zapis, s katerim delamo:

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

Pro gnezdenju galerij in funkcij obsega zapisa, se operatorja ThisItem in ThisRecord vedno nanašata na najbolj notranji obseg, pri čemer zapisi v zunanjih področjih niso na voljo. Uporabite operator As in omogočite dostop do vseh obsegov zapisa tako, da vsakemu dodelite enolično ime.

Ta formula na primer ustvari vzorec šahovnice kot besedilni niz z ugnezdenjem dveh funkcij 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
)

Nastavljanje funkcije Label kontrolnikovi lastnosti Besedilo tej formuli prikaže:

Besedilo šahovnice, prikazano v kontrolniku etikete.

Poglejmo, kaj se tukaj dogaja:

  • Začnemo s ponavljanjem neimenovane tabele z 8 oštevilčenimi zapisi iz funkcije Sequence. Ta zanka je za vsako vrstico plošče, ki se običajno imenuje Uvrstitev, zato ji damo to ime.
  • Za vsako vrstico ponovimo še eno neimenovano tabelo z 8 stolpci in ji damo skupno ime Datoteka.
  • Če je vsota Rank.Value + File.Value liho število, kvadrat dobi X, če število ni liho, pa piko. Ta del formule navaja obe zanki ForAll, kar omogoča operator As.
  • Concat se uporablja dvakrat, najprej za sestavljanje stolpcev in nato vrstic s funkcijo Char(10), ki ustvari novo vrstico.

Podoben primer je možen z ugnezdenimi kontrolniki Galerija namesto funkcij ForAll. Začnimo z vertikalno galerijo za Uvrstitev. Ta kontrolnik galerije bo imel formulo Elementi:

Sequence(8) as Rank

Ilustracija zunanje galerije, ki zagotavlja ponovitev ranga.

V galeriji bomo postavili vodoravno galerijo za Datoteko, ki bo podvojena za vsako Uvrstitev, z lastnostjo Elementi:

Sequence(8) as File

Slika notranje galerije, ki omogoča ponovitev datoteke.

Na koncu bomo v galerijo dodali še kontrolnik Label, ki se bo podvojil za vsako Datoteko in vsako Uvrstitev. Velikost bomo prilagodili celotnemu prostoru in uporabili lastnost Izpolni, da zagotovimo barvo s to formulo:

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

Nadzor etiket v obeh galerijah, ki zagotavlja izmenične barve za šahovnico.

Operatorja »Self« in »Parent«

Obstajajo trije načini sklicevanja na kontrolnik in njegove lastnosti v formuli:

Način Opis
Po imenu kontrolnika Na vsak kontrolnik se je mogoče sklicevati po imenu od kjer koli znotraj aplikacije.

Na primer Label1.Fill se sklicuje na lastnost zapolnitve kontrolnika, katerega ime je Label1.
Operator Self Ob zapisovanju formule se je pogosto priročno sklicevati na drugo lastnost istega kontrolnika. Namesto uporabe absolutnega sklica po imenu, je lažje in bolj prenosljivo uporabiti relativni sklic na sebe (self). Operator Self zagotavlja enostaven dostop do trenutnega kontrolnika.

Na primer Self.Fill se sklicuje na barvo polnila trenutnega kontrolnika.
Operator Parent Nekateri kontrolniki gostujejo druge kontrolnike, kot kontrolnika Zaslon in Galerija. Gostujočemu kontrolniku notranjih kontrolnikov se reče nadrejeni. Kot operator Self operator Parent zagotavlja enostaven relativen sklic na kontrolnik vsebnika.

Na primer, Parent.Fill se sklicuje na lastnost polnitve kontrolnika, ki je vsebnik za trenutni kontrolnik.

Self in Parent sta operatorja in ne lastnosti na samih kontrolnikih. Sklicevanje na Parent.Parent, Self.Parent ali Parent.Self ni podprto.

Imena identifikatorjev

Imena spremenljivk, virov podatkov, stolpcev in drugih predmetov lahko vsebujejo kateri koli znak Unicode.

Uporabite enojne narekovaje pri imenu, ki vsebuje presledek ali drug poseben znak.
Skupaj uporabite dva enojna narekovaja, ki bosta predstavljala posamezno navedbo znotraj imena. Imena, ki ne vsebujejo posebnih znakov, ne potrebujejo enojnih narekovajev.

V nadaljevanju je navedenih nekaj primerov za imena stolpcev, na katera lahko naletite v tabeli, in način, kako so predstavljena znotraj formule:

Ime stolpca v zbirki podatkov Sklic na stolpec v formuli
SimpleName SimpleName
NameWith123Numbers NameWith123Numbers
Ime s presledki 'Name with spaces'
Ime z "dvojnimi" narekovaji 'Name with "double" quotes'
Ime z 'enojnimi' narekovaji 'Name with ''single'' quotes'
Ime z znakom @ 'Name with an @ at sign'

Dvojni narekovaji se uporabljajo za označevanje besedilnih nizov.

Prikazna imena in logična imena

Nekateri viri podatkov, kot sta SharePoint in Microsoft Dataverse, imajo dve različni imeni, ki se nanašajo na isto tabelo ali stolpec podatkov:

  • Logično ime – ime, ki je zagotovljeno enolično in se po ustvarjanju ne spremeni, običajno ne dovoljuje presledkov ali drugih posebnih znakov in ni lokalizirano v različne jezike. Kot rezultat, je ime lahko šifrirano. Ta imena uporabljajo profesionalni razvijalci. Na primer: cra3a_customfield. To ime se lahko imenuje tudi ime sheme ali enostavno ime.

  • Prikazno ime – ime, ki je uporabniku prijazno in je namenjeno končnim uporabnikom. To ime morda ni edinstveno, se lahko sčasoma spreminja, lahko vsebuje presledke in kateri koli znak Unicode ter je lahko lokalizirano v različne jezike. V skladu z zgornjim primerom je prikazno ime morda Polje po meri s presledkom med besedami.

Ker je prikazna imena lažje razumeti, bodo aplikacije s platnom predlagale, da izberete tovrstna imena, ne pa logičnih imen. Čeprav logična imena niso predlagana, jih je mogoče uporabiti, če jih vtipkamo posredno.

Predstavljajte si, da ste na primer dodali Polje po meri tabeli v okolju Dataverse. Sistem vam bo dodelil logično ime, ki ga lahko spreminjate samo ob ustvarjanju polja. Rezultat bo podoben naslednjemu:

Tabela »Kupci« z dodanim poljem po meri, ki prikazuje prikazno ime »Polje po meri« in logično ime »cr5e3_customfield«.

Pri ustvarjanju sklica na polje kupcev bo predlog uporabljal 'Polje po meri', saj je to prikazno ime. Uporabiti je treba enojne narekovaje, ker ime vsebuje presledek:

Vrstica s formulami v studiu, ki prikazuje predloge za imena polj »Računi« z označenim poljem prikazno ime »Po meri«.

Po izbiri predloga se v vnosni vrstici prikaže »Polje po meri« in pridobijo se podatki:

Studijska vnosna vrstica, ki prikazuje uporabo prikazno ime 'Polje po meri' za polje.

Čeprav ni predlagano, bi lahko uporabili tudi logično ime za to polje. Posledično bodo naloženi enaki podatki. Posamezni narekovaji niso potrebni, ker to ime ne vsebuje presledkov ali posebnih znakov:

Studijska vnosna vrstica, ki prikazuje uporabo logičnega imena cr5e3_customfield za polje.

V ozadju se ohranja preslikava med prikaznimi imeni, ki jih vidimo pri formulah, in temeljnimi logičnimi imeni. Ker je treba za interakcijo z virom podatkov uporabiti logična imena, se ta preslikava uporablja za samodejno pretvorbo iz trenutnega prikaznega imena v logično ime, kar se tudi vidi pri omrežnem prometu. To preslikavo se uporablja tudi za pretvorbo nazaj v logična imena za prehod v nova prikazna imena, na primer, če se prikazno ime spremeni ali izdelovalec aplikacijo uredi v drugem jeziku.

opomba,

Pri premikanju aplikacije med okolji logična imena niso prevedena. Za imena sistemskih tabel in polj v okolju Dataverse to ne bi smelo predstavljati težav, saj so logična imena skladna v vseh okoljih. Toda vsa polja po meri, kot je cra3a_customfield v tem zgornjem primeru, imajo lahko drugačno predpono okolja (cra3a v tem primeru). Prednostna so prikazna imena, saj se lahko ujemajo s prikaznimi imeni v novem okolju.

Razločitev imena

Ker prikazana imena niso enolična, se lahko isto prikazano ime večkrat pojavi v isti tabeli. Ko se to zgodi, bo za tovrstna imena logično ime dodano na konec prikaznega imena v oklepajih. Na podlagi zgornjega primera torej velja: če obstaja drugo polje z istim prikaznim imenom Polje po meri in logičnim imenom cra3a_customfieldalt, bi bili predlogi naslednji:

Vrstica s formulami Studia, ki prikazuje uporabo logičnega imena, cr5e3_customfieldalt za razločitev dveh različic »Polja po meri«.

Nizi za razločitev imen se dodajo v drugih situacijah, ko pride do sporov imen, kot so imena tabele, izbir in drugih elementov Dataverse.

Operator za razločitev

Nekatere funkcije ustvarijo obsege zapisov za dostop do polj tabele med obdelavo vsakega zapisa, kot so Filter, AddColumns in Sum. Imena polj, dodana z obsegom zapisov, preglasijo enaka imena od drugod v aplikaciji. Ko se to zgodi, lahko do vrednosti še vedno dostopate zunaj obsega zapisov z operatorjem za razločitev @:

  • Za dostop do vrednosti iz ugnezdenih obsegov zapisov uporabite operator @ z imenom tabele, ki se upravlja s tem vzorcem:
    Table[@FieldName]
  • Za dostop do globalnih vrednosti, kot so viri podatkov, zbirke in spremenljivke konteksta, uporabite vzorec [@ObjectName] (brez oznake tabele).

Za več informacij in primerov glejte obsege zapisov.