Operátorok és azonosítók a Power Apps alkalmazásban
A következőkre vonatkozik: Vászonalapú alkalmazások
Modellvezérelt alkalmazások
Power Pages
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ó | "Számla 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 karakterlánc | "Helló, világ" | A sztringek idézőjelek között vannak |
$"..." | Karakterlánc-interpoláció | $"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 |
Szűrő(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 | Ár = 100 | Egyenlő |
> | Ár: > 100 | Nagyobb mint | |
>= | Ár >= 100 | Nagyobb vagy egyenlő | |
< | Ár: < 100 | Kisebb mint | |
<= | Ár <= 100 | Kisebb vagy egyenlő | |
<> | Ár: <> 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 | Ár < 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 | ! (Ár < 100) vagy Nem (Ár < 100) | Logikai negálás, egyenértékű a Not függvénnyel | |
exaktin | Tagsági operátorok | Gallery1.Selected exactin SavedItems | Egy gyűjteményhez vagy egy táblához tartozik |
exaktin | "Windows" exactin "Ablakok megjelenítése a Windows operációs rendszerben ..." | Karakterláncrészlet tesztelése (megkülönbözteti a kis- és nagybetűket) | |
ban | Gallery1.Selected in SavedItems | Egy gyűjteményhez vagy egy táblához tartozik | |
ban | "A" a "A billentyűzet és a monitor..." | Karakterláncrészlet tesztelése (nem különbözteti meg a kis- és nagybetűket) | |
@ | Egyértelműsítő operátor | Saját táblázat[@fieldname] | A mező egyértelműsítése |
@ | [@MyVariable] | Globális egyértelműsítés | |
, [nyelvfüggő] |
Listaelválasztó |
if( x < 10, "alacsony", "jó" ) { 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); Navigálás(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. |
Amint | Üzemeltetőként | AllCustomers mint ügyfél | Felülbírálja a ThisItem és ThisRecord elemet gyűjteményekben és rekordhatóköri függvényekben. Az As hasznos egy jobb, konkrét név megadásához, és különösen fontos beágyazott forgatókönyvekben. |
Önmaga | Önkezelő | Önkitöltés | Hozzáférést biztosít az aktuális vezérlő tulajdonságaihoz |
Szülő | Szülő operátor | Szülő.Kitöltés | 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 |
Ez a rekord | 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:
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.
Állítsa be a katalógus Elemek tulajdonságát az alábbi képletre:
Szűrő(Készlet, "E" a Terméknévben)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.
Módosítsa a katalógus Elemek tulajdonságát az alábbi képletre:
Szűrő(Készlet, "E" exactin Terméknév)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 |
Katalógus vezérlőelem Űrlap-vezérlőelem szerkesztése Űrlapvezérlő megjelenítése |
Az aktuális rekord alapértelmezett neve egy Katalógusban vagy űrlap-vezérlőelemben. |
Ez a rekord | ForAll,Filter,With,Sum......... és egyéb rekordhatókör-függvények | Az aktuális rekord alapértelmezett neve a ForAll vagy más rekordhatóköri függvényekben. |
Névként |
Katalógus vezérlőelem ForAll,Filter,With,Sum......... és egyéb rekordhatókör-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
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
Hasonlóképpen a név képlete is a ThisItem elemet használja:
ThisItem.'First Name' & " " & ThisItem.'Last Name'
ThisRecord operátor
A ThisRecord rekordhatókörrel rendelkezőfüggvényekben használatos. 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" ) )
A ThisRecord opcionális és implikált a mezők közvetlen használatával, például ebben az esetben írhattunk volna:
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ő, míg a ThisItem mindig kötelező.
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
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
Employee.'First Name' & " " & Employee.'Last Name'
A rekordhatókör-függvényekkel együtt az alapértelmezett ThisRecord névcseréjére is használható. 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:
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-ot kétszer használják, először az oszlopok, majd a sorok összeállításához, és egy Char(10) -et dobnak be 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
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
É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 )
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. |
Önkezelő | 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 Self és a Parent operátorok, nem pedig maguknak a vezérlőknek a tulajdonságai. 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 – Olyan név, amely garantáltan egyedi, nem változik a létrehozás után, általában nem engedélyezi a szóközöket vagy más speciális karaktereket, és nincs lokalizálva 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, amelyet a végfelhasználók láthatnak. 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:
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 javaslat kijelölése után az 'Egyéni mező' felirat megjelenik a szerkesztőlécen, és az adatokat beolvassa a rendszer:
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 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. Ebben az esetben a logikai név zárójelben hozzáadódik a megjelenítendő név végéhez az ütköző nevek egyikénél. 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 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.