Operátorok és azonosítók a Power Apps alkalmazásban

A következőkre vonatkozik: Vászonalapú alkalmazások Modellvezérelt alkalmazások

Ezen operátorok némelyike a szerző nyelvétől függ. A vászonalapú alkalmazások nyelvi támogatásával kapcsolatos további információkért lásd: Globális alkalmazások.

Szimbólum Type Példa Description
'...' Azonosító „Partner neve” A különleges karaktereket (beleértve a szóközöket) tartalmazó azonosítókat egy idézőjelek közé kell tenni
"..." Szöveges sztring "Helló világ" A sztringek idézőjelek között vannak
$"..." Sztringinterpoláción $"Kedves {FirstName}," Szöveges sztringbe ágyazott képletek
. Tulajdonságválasztó Slider1.Value
Color.Red
Acceleration.X
Lehívja a tulajdonságot egy táblából, vezérlőből, jelből vagy felsorolásból. A visszamenőleges kompatibilitás érdekében ! is használható.
.
[nyelvfüggő]
Tizedeselválasztó 1.23 A szám egész- és törtrészének tagolására szolgáló elválasztó. A karakter az adott nyelvtől függ.
( ) Zárójelek Filter(T, A < 10)

(1 + 2) * 3
Kényszeríti a sorrendet, illetve az alkifejezéseket nagyobb kifejezésbe csoportosítja
+ Aritmetikai operátorok 1 + 2 Összeadás
-   2-1 Kivonás és előjel
*   2 * 3 Szorzás
/   2 / 3 Osztás (lásd még: Mod függvény)
^   2 ^ 3 Hatványozás, egyenértékű a Power függvénnyel
%   20% Százalék (egyenértékű a „* 1/100” értékkel)
= Összehasonlító operátorok Price = 100 Egyenlő
>   Price > 100 Nagyobb mint
>=   Price >= 100 Nagyobb vagy egyenlő
<   Price < 100 Kisebb mint
<=   Price <= 100 Kisebb vagy egyenlő
<>   Price <> 100 Nem egyenlő
& Karakterlánc-összefűzési operátor "hello" & " " & "világ" Lehetővé teszi több karaktersor összefüggő megjelenítését
&&vagy és Logikai operátorok Ár < 100 &&; Slider1.Value = 20
vagy Price < 100 És Slider1.Value = 20
Logikai ÉS művelet, egyenértékű az And függvénnyel
|| vagy Vagy   Price < 100 || Slider1.Value = 20 vagy Price < 100 vagy Slider1.Value = 20 Logikai VAGY művelet, egyenértékű az Or függvénnyel
! vagy Nem   !(Price < 100) vagy Not (Price < 100) Logikai negálás, egyenértékű a Not függvénnyel
exactin Tagsági operátorok Gallery1.Selected exactin SavedItems Egy gyűjteményhez vagy egy táblához tartozik
exactin   "Windows" és "Ablakok megjelenítése Windows operációs rendszerben..." Karakterláncrészlet tesztelése (megkülönbözteti a kis- és nagybetűket)
itt   Gallery1.Selected in SavedItems Egy gyűjteményhez vagy egy táblához tartozik
itt   "A" "A billentyűzet és a monitor..." részben Karakterláncrészlet tesztelése (nem különbözteti meg a kis- és nagybetűket)
@ Egyértelműsítő operátor MyTable[@fieldname] A mező egyértelműsítése
@   [@MyVariable] Globális egyértelműsítés
,
[nyelvfüggő]
Listaelválasztó If( X < 10, "Low", "Good" )
{ X: 12, Y: 32 }
[1, 2, 3]
Elválasztja: Ez a karakter az adott nyelvtől függ.
;
[nyelvfüggő]
Képletláncolás Collect(T, A); Navigate(S1, "") A függvényhívások elkülönítése a viselkedési tulajdonságokban. A láncolási karakter az adott nyelvtől függ.
Mint Mint operátor AllCustomers ügyfélként Felülbírálja a ThisItem és ThisRecord elemet gyűjteményekben és rekordhatóköri függvényekben. Mint hasznos lehet jobb, konkrét név biztosításához, és különösen fontos a beágyazott helyzetekben.
Ön Saját operátor Self.Fill Hozzáférést biztosít az aktuális vezérlő tulajdonságaihoz
Fölérendelt Szülőoperátor Parent.Fill Hozzáférés a vezérlői tároló tulajdonságaihoz
ThisItem ThisItem operátor ThisItem.FirstName Hozzáférés a katalógus vagy az űrlap vezérlőelem mezőihez
ThisRecord ThisRecord operátor ThisRecord.FirstName A teljes rekordhoz és a rekord egyes mezőihez való hozzáférést a ForAll, Sum, With és más rekordhatóköri függvényekben. A Mint operátorral felülírható.

Feljegyzés

A @ operátor a bejegyzés objektumának típusának ellenőrzésében is használható a adatforrással szemben. Például: Collect(coll,Account@{'Account Number: 1111')

in és exactin operátorok

Az in és az exactin operátorokat sztringek keresésére használhatja egy adott adatforrásban, például egy gyűjteményben vagy egy importált táblában. Az in operátor kis- és nagybetűtől függetlenül azonosítja a találatokat, míg az exactin operátor csak akkor ad vissza találatot, ha a kis- és nagybetűk is megegyeznek. Például:

  1. Importáljon vagy hozzon létre egy Leltár nevű gyűjteményt, és jelenítse meg azt egy katalógusban, ahogyan az a Képek és szöveg megjelenítése katalógusban című témakörben szerepel.

  2. Állítsa be a katalógus Elemek tulajdonságát az alábbi képletre:
    Filter(Leltár, "E" in ProductName)

    A katalógusban a Callisto kivételével az összes termék szerepel, mert csak ennek a terméknek a neve nem tartalmazza a megadott betűt.

  3. Módosítsa a katalógus Elemek tulajdonságát az alábbi képletre:
    Filter(Leltár, "E" exactin ProductName)

    A katalógusban csak az Europa szerepel, mert egyedül ennek a neve tartalmazza a megadott nagybetűt.

ThisItem, ThisRecord, és Mint operátorok

A néhány vezérlő és függvény a képleteket a táblázat egyes rekordjaira alkalmazza. Ha egy képletben az egyes rekordra szeretne hivatkozni, használja a következő lehetőségek egyikét:

Operátor Érvényesség Ismertetés
ThisItem Gyűjtemény vezérlőelem
Űrlap szerkesztése vezérlőelem
Űrlap megjelenítése vezérlőelem
Az aktuális rekord alapértelmezett neve egy Katalógusban vagy űrlap-vezérlőelemben.
ThisRecord ForAll, Filter, With, Sum és más rekordhatóköri függvények Az aktuális rekord alapértelmezett neve a ForAll vagy más rekordhatóköri függvényekben.
Mintnév Gyűjtemény vezérlőelem
ForAll, Filter, With, Sum és más rekordhatóköri függvények
Megadja az aktuális rekord nevét, lecseréli az alapértelmezett ThisItem vagy ThisRecord elemet. A Mint használatával a képletek könnyebben érthetők meg és oldhatók fel a beágyazáskor.

ThisItem operátor

Például a következő Galéria vezérlőelemben a Tételek tulajdonság az Alkalmazottak adatforráshoz van beállítva (például a Northwind Traders mintában szereplő Alkalmazottak táblához):

Employees

Galériában megjelenített alkalmazottak.

A katalógus első eleme egy sablon, amely minden egyes alkalmazottra replikálódik. A sablonban a kép képlete a ThisItem segítségével hivatkozik az aktuális elemre:

ThisItem.Picture

A munkavállaló képének képlete.

Hasonlóképpen a név képlete is a ThisItem elemet használja:

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

A munkavállaló első és vezetéknév képlete.

ThisRecord operátor

A ThisRecord olyan függvényekben használható, amelyekhez rekordhatókör tartozik. Például használhatjuk a Filter függvényt a katalógusunk Cikkek tulajdonságával, hogy csak az M betűvel kezdődő utóneveket jelenítse meg.

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

Az alkalmazottak szűrése név alapján a ThisRecord használatával.

A ThisRecord nem kötelező, és a mezők közvetlen használatával jelzik, például ebben az esetben a következőt lehetett volna megírni:

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

Bár a ThisRecord használata nem kötelező, a képletek könnyebben érthetők, és kétértelmű helyzetekben kötelezőek lehetnek, amikor a mezőnév is kapcsolat neve. A ThisRecord nem kötelező, miközben a ThisItem mindig szükséges.

A ThisRecord segítségével a teljes rekordot a Patch, a Collect és az egyéb rekordhatóköri funkciókkal hivatkozhatjuk. A következő képlet például az inaktív alkalmazottak állapotát az aktív értékre állítja be:

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

Mint operátor

Használja a Mint operátor a rekord elnevezéséhez egy katalógusban vagy rekordhatóköri függvényben, felülbírálva az alapértelmezett ThisItem vagy ThisRecord elemet. A rekord elnevezése egyszerűbbé teheti a képletek megértését, és a beágyazott helyzetekben szükséges lehet más hatókörök rekordjainak elérésére.

Például módosíthatja a katalógus Cikkek tulajdonságát a Mint használatára, amellyel meghatározhatja, hogy alkalmazottal dolgozunk:

Employees As Employee

Alkalmazottak galériája az As operátor használatával.

A kép és a név képletei úgy vannak kialakítva, hogy az aktuális rekordhoz a következő nevet használják:

Employee.Picture

Egy alkalmazott képe, aki az As operátorral beállított Alkalmazott nevét használja.

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

Az As operátorral beállított Employee name (Alkalmazottnév) operátorral beállított Employee name (Alkalmazottnév) operátor első és vezetéknév értéke.

Az As használható a rekordhatóköri függvényekkel ahelyett, hogy lecserélné az alapértelmezett ThisRecord nevet. Ezt az előző példára alkalmazjuk, hogy tisztázni lehessen a következő rekordot:

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

A galériák és a rekord hatókör funkciók beágyazásakor a ThisItem és a ThisRecord mindig a belső legszélesebb hatókörre hivatkozik, és nem érhetők el a külső hatókörök rekordjai. A Mint használatával az összes rekordhatókör elérhetővé tehető, mindegyik számára megadva egy egyedi nevet.

Ez a képlet például egy sakktábla mintát hoz létre szöveges karakterláncként, két ForAll függvény beágyazásával:

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
)

Egy Label (Címke) vezérlőelem Text (Szöveg) tulajdonságának erre a képletre való beállítása a következőt jeleníti meg:

Címkevezérlőben megjelenített sakktáblaszöveg.

Nézzük meg, hogy mi történik itt:

  • Azzal kezdjük, hogy iterálunk egy meg nem nevezett táblázatot, amely a Sequence függvényé 8 számozott rekordjából áll. Ez a hurok a tábla minden egyes sorára vonatkozik, amelyet általában Rang néven neveznek, és így ezt a nevet adjuk neki.
  • Minden egyes sor esetében iterálunk egy további, 8 nem megnevezett oszlop tartalmazó táblát, és a Fájl közös nevet adjuk meg.
  • Ha a Rank.Value + File.Value egy páratlan szám, a négyzet egy X jelet kap, egyébként egy pontot. A képlet ezen része mindkét ForAll hurokra hivatkozik, amelyeket a Mint operátor használata tesz lehetővé.
  • A Concat függvény kétszer kerül használatra, először az oszlopok összeállításához, majd a sorok Char(10) függvénnyel való beillesztéséhez egy új sor létrehozásához.

Hasonló példa lehetséges a beágyazott Katalógus vezérlővel a ForAll függvények helyett. Kezdjük a Rang függőleges katalógusával. Ez a katalógus egy Elemek képletből fog állni:

Sequence(8) as Rank

A rangsorolási iterációt biztosító külső katalógus illusztrációja.

Ezen a katalóguson belül egy vízszintes katalógust fogunk bemutatni a Fájl elemhez, amelyet a rendszer minden Rang elemhez replikál a következő Elemek tulajdonsággal:

Sequence(8) as File

A fájliterációt biztosító belső galéria illusztrációja.

És végül a katalóguson belül hozzáadunk egy Címke vezérlőt, amelyet a rendszer minden egyes Fájl és Rang eleméhez replikálva lesz. A teljes terület kitöltésére méretezzük, és a Kitöltés tulajdonsággal megadjuk a színt a következő képlettel:

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

Címkevezérlés a két galérián belül, amely biztosítja a sakktábla váltakozó színeit.

Saját és fölérendelt operátorok

A vezérlőelemekre és tulajdonságaikra három módon lehet hivatkozni egy képleten belül:

Módszer Ismertetés
Vezérlő neve alapján Bármelyik vezérlőelemre név szerint lehet hivatkozni bárhol az alkalmazásban.

Például a Label1.Fill a vezérlőelem kitöltési tulajdonságára utal, amelynek a neve Label1.
Saját operátor A képletek írásakor gyakran célszerű ugyanannak a vezérlőelemnek egy másik tulajdonságra hivatkozni. Ahelyett, hogy név szerinti abszolút referenciát használna, könnyebb és hordozhatóbb relatív hivatkozást használni saját magára. A Saját operátor egyszerű hozzáférést biztosít az aktuális vezérlő tulajdonságaihoz.

Például a Self.Fill kifejezés az aktuális vezérlő kitöltési színére utal.
Szülő operátor Egyes vezérlők más vezérlőket is tárolnak, például a Képernyő és a Gyűjtemény vezérlőt. A tároló vezérlőelemet a benne lévő vezérlőelemek szülőjének nevezzük. A Saját operátorhoz hasonlóan a Szülő operátor is egyszerű, relatív hivatkozást biztosít a tároló vezérlőre.

A Parent.Fill például a vezérlőelem kitöltési tulajdonságára utal, amely az aktuális vezérlő tárolója.

A Saját és a Szülő operátor, és nem a vezérlőkön lévő tulajdonságok. A Parent.Parent, a Self.Parent és a Parent.Self kifejezés nem támogatott.

Azonosítónevek

A változók, adatforrások, oszlopok és egyéb objektumok neve tetszőleges Unicode-karaktereket tartalmazhat.

A szóközöket vagy egyéb különleges karaktereket tartalmazó nevek körül használjon aposztrófokat.
Két aposztróf együttes használatával jelölhet egyetlen aposztrófot a névben. A különleges karaktereket nem tartalmazó nevekben nincs szükség aposztrófokra.

Íme néhány példa oszlopnevekre, amelyek megjelenhetnek egy táblában, illetve azok megjelenése egy képletben:

Oszlop neve adatbázisban Oszlop hivatkozása képletben
EgyszerűNév SimpleName
Név123Számokkal NameWith123Numbers
Név szóközökkel 'Name with spaces'
Név "kettős" idézőjelekkel 'Name with "double" quotes'
Név 'egyszeres' idézőjelekkel 'Name with ''single'' quotes'
Név @ jellel 'Name with an @ at sign'

Az idézőjelek szöveges karakterláncok kijelölésére szolgálnak.

Megjelenítendő nevek és logikai nevek

Egyes adatforrások, például a SharePoint és a Microsoft Dataverse két különböző nevet használnak, amelyek ugyanarra a táblára vagy oszlopra hivatkoznak:

  • Logikai név – garantáltan egyedi név, nem változik a létrehozás után, általában nem engedélyez a szóközöket és egyéb speciális karaktereket, és nem honosítják a különböző nyelvekre. Ennek eredményeként a név nehezebben olvasható lehet. Ezeket a neveket a professzionális fejlesztők használják. Például cra3a_customfield. Ez a név a séma neve vagy csak név néven is szerepelhet.

  • Megjelenítendő név – Felhasználóbarát név, amely a végfelhasználók számára készült. Előfordulhat, hogy ez a név nem egyedi, az idő múlásával módosul, tartalmazhat szóközöket és bármilyen Unicode-karaktert, és honosítják különböző nyelvekre. A fenti példának megfelelően a megjelenítendő név lehet Egyéni mező szóközzel elválasztva a szavakat.

Mivel a megjelenítendő nevek könnyebben érthetők, a vászonalapú alkalmazások ezeket felkínálják választásokként, míg a logikai neveket nem. Bár a logikai nevek használata nem javasolt, azok továbbra is használhatók, ha indirekt módon vannak beírva.

Képzelje el például, hogy hozzáad egy egyéni mezőt egy táblához a Dataverse környezetben. A rendszer hozzárendel egy logikai nevet, amelyet csak a mező létrehozásakor lehet módosítani. Az eredmény így néz ki:

Partnerek tábla hozzáadott egyéni mezővel, az

Amikor a Partnerek mezőre mutató hivatkozást ad ki, a rendszer javasolja az 'Egyéni mező' használatát, mivel ez a megjelenítendő név. Az egyszeres idézőjeleket kell használni, mert a névben szóköz van:

A Studio szerkesztőléce javaslatokat jelenít meg a partnerek mezőneveire a kiemelt megjelenítendő név

A javaslat kijelölése után az 'Egyéni mező' felirat megjelenik a szerkesztőlécen, és az adatokat beolvassa a rendszer:

A Studio szerkesztőléce, amely a megjelenítendő név

Bár ez nem javasolt, használhatjuk a mező logikai nevét is. Ennek eredményeképpen ugyanaz az adat fog megjelenni. Az egyszeres idézőjelek használata nem kötelező, mivel ez a név nem tartalmaz szóközöket vagy speciális karaktereket:

A Studio szerkesztőléce, amely a mező logikai nevének cr5e3_customfield használatát mutatja.

A színfalak mögött a leképezések megmaradnak a képletekben és a mögöttes logikai nevekben látható megjelenítendő nevek között. Mivel a logikai neveket arra kell használni, hogy azok kommunikáljanak az adatforrással, ez a leképezés az aktuális megjelenítendő név logikai névre való átalakítására szolgál automatikusan, és a hálózati forgalomban is ez látható. Ezzel a leképezéssel vissza lehet alakítani a logikai nevekre, hogy átváltsanak az új megjelenítendő nevekre, például ha egy megjelenítendő név módosul, vagy egy készítő egy másik nyelven szerkeszti az alkalmazást.

Feljegyzés

A logikai neveket a rendszer nem fordítja le, ha egy alkalmazást a környezetek között helyez el. A Dataverse rendszertáblák és mezők nevei esetében ez nem jelenthet problémát, mivel a logikai nevek konzisztensek a különböző környezetekben. De az egyéni mezők – például a fenti példában cra3a_customfield – eltérő környezeti előtaggal rendelkezhetnek (ebben az esetben cra3a). A megjelenítendő nevek előnyben részesülnek, mivel összehasonlíthatók egy új környezet megjelenítendő neveivel.

Név egyértelműsítése

Mivel a megjelenítési nevek nem egyediek, ugyanaz a megjelenítési név többször is előfordulhat ugyanabban a táblában. Amikor ez megtörténik, a logikai név a megjelenítendő név végére kerül zárójelben az egyező nevek valamelyike esetében. A fenti példára építve, ha egy másik mező ugyanazzal az Egyéni mező megjelenítendő névvel rendelkezik, amelynek logikai neve cra3a_customfieldalt, akkor a javaslatok az alábbiakat mutatják:

A Studio szerkesztőléce, amely a logikai név használatát mutatja cr5e3_customfieldalt az

A nevet feloldó karakterláncok olyan más helyzetekben kerülnek hozzáadásra, ahol névütközések fordulnak elő, például a táblák, választási lehetőségek és egyéb Dataverse elemek nevei esetében.

Egyértelműsítő operátor

Bizonyos függvények rekordra vonatkozó hatókörök létrehozásával férnek hozzá a táblamezőkhöz az egyes rekordok feldolgozásakor, például Filter, AddColumns és Sum. A rekordra vonatkozó hatókörrel felvett mezőnevek felülbírálják az alkalmazásban máshol előforduló azonos neveket. Ilyenkor a @ egyértelműsítő operátorral továbbra is elérhetők a rekord hatókörén kívüli értékek:

  • A rekordra vonatkozó beágyazott hatókörök értékeit a @ operátor és a műveleti tábla nevének együttes használatával érheti el. Használandó minta:
    Tábla[@MezőNév]
  • A globális értékek (például adatforrások, gyűjtemények és környezeti változók) elérésére használja a következő mintát: [@ObjektumNév] (tábla megadása nélkül).

További információt és példákat találhat a rekordra vonatkozó hatókörök leírásában.