Operátory a identifikátory v Power Apps
Vzťahuje sa na: aplikácie plátna aplikácie s podporou modelov Power Pages
Niektoré z týchto operátorov sú závislé od jazyka autora. Ďalšie informácie o podpore jazykov v aplikáciách plátna nájdete v téme Globálne aplikácie.
Symbol | Type | Príklad | Description |
---|---|---|---|
'...' | Identifikátor | 'názov účtu' | Identifikátory, ktoré obsahujú špeciálne znaky vrátane medzier, sú uzavreté v jednoduchých úvodzovkách |
"..." | Textový reťazec | "Ahoj svet" | Textové reťazce sú uzavreté v dvojitých úvodzovkách |
$"..." | Reťazcová interpolácia | $"Vážený {FirstName}," | Vzorce vložené do textového reťazca |
. | Výber vlastností | Posuvník1.Hodnota Color.Red Acceleration.X |
Extrahuje vlastnosť z tabuľky, ovládacieho prvku, signálu alebo enumerácie. Kvôli spätnej kompatibilite sa môže použiť aj !. |
. [jazykovo závislé] |
Oddeľovač desatinných miest | 1.23 | Oddeľovač medzi celou a zlomkovou časťou čísla. Znak závisí od jazyka. |
( ) | Zátvorky | Filter(T, A < 10) (1 + 2) * 3 |
Vynucuje prednosti a zoskupuje čiastkové výrazy do väčších výrazov |
+ | Aritmetické operátory | 1 + 2 | Sčítanie |
- | 2 - 1 | Odčítanie a znamienko | |
* | 2 * 3 | Násobenie | |
/ | 2/3 | Delenie (pozri aj funkciu Mod) | |
^ | 2 ^ 3 | Umocňovanie, zodpovedá funkcii Power | |
% | 20 % | Percento (zodpovedá "* 1/100") | |
= | Porovnávacie operátory | Cena = 100 | Rovná sa |
> | Cena > 100 | Väčšie ako | |
>= | Cena >= 100 | Väčšie ako alebo sa rovná | |
< | Cena < 100 | Menšie ako | |
<= | Cena <= 100 | Menšie ako alebo sa rovná | |
<> | Cena <> 100 | Nerovná sa | |
& | Operátor spájania reťazcov | "ahoj" & " " & "svet" | Zobrazí viacero reťazcov tak, aby vyzerali súvislo |
&& alebo A | Logické operátory | Cena < 100 && Posuvník 1. Hodnota = 20 alebo Cena < 100 And Slider1.Value = 20 |
Logická konjunkcia, zodpovedá funkcii And |
|| alebo Alebo | Cena < 100 || Posuvník1. Hodnota = 20 alebo Cena < 100 Alebo Posuvník1.Hodnota = 20 | Logická disjunkcia, zodpovedá funkcii Or | |
. alebo Nie | !(Cena < 100) alebo Nie (Cena < 100) | Logická negácia, zodpovedá funkcii Not | |
exaktín | Prevádzkovatelia členstva | Galéria 1. Presné vybraté v uložených položkách | Patrí do kolekcie alebo tabuľky |
exaktín | "Windows" presne v "Zobrazenie okien v operačnom systéme Windows..." | Test podreťazcov (rozlišovanie veľkých a malých písmen) | |
v | Galéria1.Vybraté v SavedItems | Patrí do kolekcie alebo tabuľky | |
v | "The" v "Klávesnica a monitor..." | Test podreťazcov (bez rozlišovania veľkých a malých písmen) | |
@ | Operátor disambiguácie | MyTable[@fieldname] | Rozlišovanie polí |
@ | [@Moja premenná] | Rozlišovanie globálnej mnohoznačnosti | |
, [jazykovo závislé] |
Oddeľovač zoznamov | Ak (X < 10, "Nízka", "Dobrá") { X: 12, Y: 32 } [1, 2, 3] |
Oddeľuje: Tento znak závisí od jazyka. |
; [jazykovo závislé] |
Reťazenie vzorcov | Collect(T, A); Navigovať (S1, "") | Vyvolania funkcií môžete oddeliť vo vlastnostiach správania. Operátor reťazenia závisí od jazyka. |
Ako | Ako operátor | AllCustomers ako zákazník | Prepíše ThisItem a ThisRecord v galériách a funkciách záznamu rozsahu. Ako je užitočný na poskytnutie lepšieho, konkrétneho názvu a je obzvlášť dôležitý vo vnorených scenároch. |
Seba | Vlastný prevádzkovateľ | Self.Fill | prístup k vlastnostiam aktuálneho ovládacieho prvku. |
Rodič | Rodičovský operátor | Parent.Fill | Prístup k vlastnostiam kontajnera ovládacieho prvku |
TátoPoložka | Operátor ThisItem | ThisItem.FirstName | Prístup k poliam ovládacieho prvku Galéria alebo Formulár |
ThisRecord | Operátor tohto záznamu | ThisRecord.FirstName | Prístup k úplnému záznamu a jednotlivým poliam záznamu v rámci ForAll, Sum, With a ďalších funkcií rozsahu záznamu. Môže byť prepísaný operátorom As. |
Poznámka
Operátor @ sa môže použiť na overenie typu objektu záznamu proti zdroju údajov. Napríklad: Collect(coll,Account@{'Account Number: 1111')
Operátory in a exactin
Použite operátory in a exactin na vyhľadanie reťazca v zdroji údajov, napríklad v kolekcii alebo v importovanej tabuľke. Operátor in identifikuje zhody bez ohľadu na veľké a malé písmená a operátor exactin identifikuje iba také zhody, v ktorých sa zhoduje aj písanie veľkých začiatočných písmen. Príklad:
Vytvorte alebo importujte kolekciu s názvom Inventory a zobrazte ju v galérii podľa popisu v prvom postupe v článku o zobrazení obrázkov a textu v galérii.
Nastavte vlastnosť Items galérie na tento vzorec:
Filter (Inventory, "E" v ProductName)Galéria zobrazí všetky produkty okrem produktu Callisto, pretože názov tohto produktu je jediný, ktorý neobsahuje vami zadané písmeno.
Zmeňte vlastnosť Items galérie na tento vzorec:
Filter (inventár, "E" presne v názve produktu)Galéria zobrazí iba produkt Europa, pretože je jediný, ktorého názov obsahuje vami zadané písmeno veľké E.
Operátory ThisItem, ThisRecord a As
Niekoľko ovládacích prvkov a funkcií aplikuje vzorce na jednotlivé záznamy tabuľky. Ak chcete vo vzorci odkazovať na jednotlivý záznam, použite jednu z nasledujúcich možností:
Operátor | Vzťahuje sa na | Popis |
---|---|---|
TátoPoložka | Galéria ovládanie Upraviť formulár ovládanie Zobraziť formulár ovládanie |
Predvolený názov aktuálneho záznamu v ovládacom prvku Galéria alebo vo formuláre. |
ThisRecord | Pre všetkých, Filter, S, Súčet a ďalšie funkcie rozsahu záznamu | Predvolený názov aktuálneho záznamu v ForAll a ďalších funkciách rozsahu záznamu. |
Akomeno | Ovládanie galérie Pre všetkých, Filter, S, Súčet a ďalšie funkcie rozsahu záznamov |
Definuje názov pre aktuálny záznam, pričom nahrádza predvolenú položku ThisItem alebo ThisRecord. Použitie As na zjednodušenie porozumeniu vzorcov a vyriešenie nejednoznačnosti pri hniezdovaní. |
Operátor ThisItem
Napríklad v nasledujúcom ovládacom prvku Galéria je ovládací prvok Položky nastavený na zdroj údajov Zamestnanci (napríklad tabuľka Zamestnanci dodávaná s ukážkou Northwind Traders):
Employees
Prvou položkou v galérii je šablóna, ktorá sa replikuje pre každého zamestnanca. V šablóne používa vzorec pre obrázok prvok ThisItem na odkazovanie na aktuálnu položku:
ThisItem.Picture
Vzorec názvu tiež využíva ThisItem:
ThisItem.'First Name' & " " & ThisItem.'Last Name'
Operátor ThisRecord
ThisRecord sa používa vo funkciách, ktoré majú rozsah záznamu. Napríklad môžeme použiť funkciu Filter s vlastnosťou Položky našej galérie, ktorá bude zobrazovať iba krstné mená, ktoré obsahujú M:
Filter( Employees, StartsWith( ThisRecord.Employee.'First Name', "M" ) )
ThisRecord je voliteľný a predpokladá sa priamym použitím polí, napríklad v tomto prípade by sme mohli napísať:
Filter( Employees, StartsWith( 'First Name', "M" ) )
Aj keď je voliteľné, použitie ThisRecord môže zjednodušiť pochopenie vzorcov a môžu sa požadovať v nejasných situáciách, keď názov poľa môže byť tiež názov vzťahu. Tento záznam je voliteľný, zatiaľ čo Táto položka je vždy povinný.
Použite ThisRecord na označenie celého záznamu pomocou funkcií rozsahu Patch, Collect a ďalších funkcií rozsahu záznamu. Napríklad nasledujúci vzorec nastaví stav pre všetkých neaktívnych zamestnancov na aktívny:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees,
Patch( Employees, ThisRecord, { Status: 'Status (Employees)'.Active } ) ) )
Operátor As
Použite operátor As na pomenovanie záznamu v galérii alebo funkciu rozsahu záznamu, pričom sa prepíše predvolený prvok ThisItem alebo ThisRecord. Pomenovanie záznamu môže uľahčiť pochopenie vzorcov a vo vnorených situáciách sa môže vyžadovať prístup k záznamom v iných oblastiach.
Napríklad môžete upraviť vlastnosť Položky našej galérie na použitie operátora As, aby sme zistili, že pracujeme so zamestnancom:
Employees As Employee
Vzorce pre obrázok a názov sú upravené tak, aby používali tento názov pre aktuálny záznam:
Employee.Picture
Employee.'First Name' & " " & Employee.'Last Name'
As sa dá použiť aj s funkciami rozsahu záznamov na nahradenie predvoleného názvu ThisRecord. Môžeme to použiť na náš predchádzajúci príklad na objasnenie záznamu, s ktorým pracujeme:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees As Employee,
Patch( Employees, Employee, { Status: 'Status (Employees)'.Active } ) ) )
Pri vnorení galérií a zaznamenávaní funkcií rozsahu, ThisItem a ThisRecord sa vždy odvolávajú na najpevnejší vnútorný rozsah, pričom záznamy vo vonkajších rozsahoch nie sú k dispozícii. Použite As na sprístupnenie všetkých rozsahov záznamov tak, že každému z nich pridelíte jedinečný názov.
Napríklad tento vzorec vytvorí šachovnicu ako textový reťazec vložením dvoch funkcií 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
)
Nastavenie ovládacieho prvku Označenie a jeho vlastnosti Text tak, aby tento vzorec zobrazoval:
Rozbaľme, čo sa tu deje:
- Začneme iteráciou nemenovanej tabuľky 8 očíslovaných záznamov z funkcie Sequence. Táto slučka je pre každú radu panelov, ktoré sa bežne označuje ako Hodnotenie, a preto mu dáme toto meno.
- Pre každý riadok iterujeme ďalšiu nemenovanú tabuľku s 8 stĺpcami a uvádzame spoločný názov Súbor.
- Ak Rank.Value + File.Value predstavuje nepárne číslo, zaokrúhlenie získa znak X, inak pôjde o bodku. Táto časť vzorca odkazuje na obidve slučky prvku ForAll, čo je možné pomocou operátora As.
- Concat sa používa dvakrát, najprv na zostavenie stĺpcov a potom riadkov, pričom a Char(10) vytvorí nový riadok.
Podobný príklad je možný s vnorenými ovládacími prvkami Galéria namiesto funkcií ForAll. Začnime s vertikálnou galériou pre Hodnotenie. Tento ovládací prvok galérie bude obsahovať vzorec Položky:
Sequence(8) as Rank
V tejto galérii umiestnime vodorovnú galériu pre Súbor, ktorá sa replikuje pre každú z vlastností Hodnotenie s vlastnosťou Položky:
Sequence(8) as File
A nakoniec do tejto galérie pridáme ovládací prvok Označenie, ktorý bude replikovaný pre každý Súbor a každé Hodnotenie. Prispôsobíme ho tak, aby vyplnil celý priestor a použil vlastnosť Vyplniť na vyplnenie týmto vzorcom:
If( Mod( Rank.Value + File.Value, 2 ) = 1, Green, Beige )
Samostatní a materskí operátori
Existujú tri spôsoby, ako sa odvolať na ovládací prvok a jeho vlastnosti vo vzorci:
Spôsob | Popis |
---|---|
Podľa názvu ovládaciehop prvku | Kdekoľvek v aplikácii môžeme odkazovať na ľubovolný ovládací prvok aplikácie prostredníctvom jeho názvu. Napríklad, Label1.Fill odkazuje na vlastnosť výplne ovládacieho prvku, kto je meno Label1, |
Samo prevádzkovateľ | Pri písaní vzorca je často vhodné uviesť inú vlastnosť rovnakej kontroly. Namiesto použitia absolútneho odkazu na meno je ľahšie a ľahšie používať relatívny odkaz na jeden prvokSám. Operátor Sám poskytuje jednoduchý prástup k regulácii prúdu. Napríklad, Self.Fill označuje farbu výplne aktuálneho ovládacieho prvku. |
Rodič operátor | Niektoré ovládacie prvky sú hostiteľom ďalších ovládacích prvkov, napríklad Obrazovka a Galéria. Hosťujúci ovládací prvok riadiaci ovládacie prvky v rámci neho sa nazýva nadradený. Ako operátor Sám, aj operátor Nadradený poskytuje jednoducho relatívnu referenciu na ovládací prvok kontajnera. Napríklad, Parent.Fill odkazuje na vlastnosť výplňe ovládacieho prvku, ktorý vzniko pre aktuálny ovládací prvok. |
Self a Parent sú operátory a nie vlastnosti na samotných ovládacích prvkoch. Odkazovanie na Parent.Parent, Self.Parent alebo Parent.Self nie je podporované.
Názvy identifikátorov
Názvy premenných, zdroje údajov, stĺpce a iné objekty môžu obsahovať ľubovoľné Unicode.
Okolo názvu, ktorý obsahuje medzeru alebo iný špeciálny znak, použite jednoduché úvodzovky.
Použite dve jednoduché úvodzovky, aby predstavovali jednu samostatnú citáciu v názve. Názvy, ktoré neobsahujú špeciálne znaky, nevyžadujú jednoduché úvodzovky.
Tu je niekoľko príkladov názvov stĺpcov, s ktorými sa môžete v tabuľke stretnúť, a ako sú zastúpené vo vzorci:
Názov stĺpca v databáze | Odkaz na stĺpec vo vzorci |
---|---|
SimpleName | SimpleName |
NameWith123Numbers | NameWith123Numbers |
Názov s medzerami | 'Name with spaces' |
Názov s „dvojitými“ úvodzovkami | 'Name with "double" quotes' |
Názov so „samostatnými“ úvodzovkami | 'Name with ''single'' quotes' |
Pomenujte s @ v znaku | 'Name with an @ at sign' |
Dvojité úvodzovky sa používajú na označenie textových reťazcov.
Zobrazované mená a logické názvy
Niektoré zdroje údajov, napr SharePoint a Microsoft Dataverse majú dva rôzne názvy odkazujúce na tú istú tabuľku alebo stĺpec údajov:
Logický názov - Názov, ktorý je zaručene jedinečný, po vytvorení sa nemení, zvyčajne nepovoľuje medzery ani iné špeciálne znaky a nie je lokalizovaný do rôznych jazykov. V dôsledku toho môže byť názov záhadný. Tieto názvy používajú profesionálni vývojári. Napríklad cra3a_customfield. Tento názov sa môže tiež označovať ako názov schémy alebo len názov.
Zobrazovaný názov – názov, ktorý je užívateľsky prívetivý a je určený na to, aby ho videli koncoví používatelia. Tento názov nemusí byť jedinečný, môže sa časom meniť, môže obsahovať medzery a akýkoľvek znak Unicode a môže byť lokalizovaný do rôznych jazykov. V súlade s vyššie uvedeným príkladom môže byť zobrazovaný názov Vlastné pole s medzerami medzi slovami.
Keďže zobrazované názvy sú zrozumiteľnejšie, aplikácie na plátne ich budú navrhovať ako výber a nebudú navrhovať logické názvy. Hoci logické názvy sa nenavrhujú, môžu sa použiť, aj keď sú zadané nepriamo.
Predstavte si napríklad, že ste pridali Vlastné pole do tabuľky v Dataverse. Systém vám priradí logické meno, ktoré môžete zmeniť iba pri vytváraní poľa. Výsledok bude vyzerať podobne ako:
Pri vytváraní odkazu na pole obchodných vzťahov sa navrhne použitie Vlastné pole, pretože toto je zobrazovaný názov. Musia sa používať jednoduché úvodzovky, pretože tento názov má v sebe medzeru:
Po výbere návrhu sa na paneli vzorcov zobrazí „Vlastné pole“ a údaje sa načítajú:
Aj keď to nie je navrhnuté, pre toto pole by sme mohli použiť aj logický názov. Výsledkom bude získanie rovnakých údajov. Jednoduché úvodzovky sa nevyžadujú, pretože tento názov neobsahuje medzery ani špeciálne znaky:
Za scénami sa zachováva mapovanie medzi zobrazovanými názvami videnými vo vzorcoch a základnými logickými názvami. Pretože logické názvy sa musia používať na interakciu so zdrojom údajov, toto mapovanie sa používa na automatický prevod z aktuálneho zobrazovaného mena na logické meno, a to je to, čo je vidieť v sieťovej prevádzke. Toto mapovanie sa tiež používa na konverziu späť na logické názvy a prepnutie na nové zobrazované názvy, napríklad ak sa zobrazovaný názov zmení alebo výrobca v inom jazyku upraví aplikáciu.
Poznámka
Pri premiestňovaní aplikácie medzi prostrediami sa neprekladajú logické názvy. Pre názvy systémovej tabuľky a poľa Dataverse by to nemal byť problém, pretože logické názvy sú v rôznych prostrediach konzistentné. Akékoľvek vlastné polia, napr cra3a_customfield v tomto príklade vyššie môže mať inú predponu prostredia (cra3a v tomto prípade). Zobrazované názvy sú uprednostňované, pretože sa môžu porovnávať so zobrazovanými názvami v novom prostredí.
Mnohoznačnosť názvu
Pretože zobrazované názvy nie sú jedinečné, môže sa rovnaký zobrazovaný názov v tej istej tabuľke zobraziť viackrát. Keď sa to stane, logický názov sa pridá na koniec zobrazovaného názvu v zátvorkách pre jeden alebo viacero konfliktných mien. Na základe vyššie uvedeného príkladu, ak bolo druhé pole s rovnakým zobrazovaným názvom Vlastné pole s logickým názvom cra3a_customfieldalt návrhy by potom ukázali:
Reťazce na rozlišovanie sa pridávajú v iných situáciách, keď dôjde ku konfliktu názvov, ako sú názvy tabuľky, možnosti a ďalšie položky Dataverse.
Operátor rozlišovania
Niektoré funkcie vytvárajú pri spracovávaní jednotlivých záznamov rozsahy záznamov na prístup do polí tabuľky. Ide napríklad o funkcie Filter, AddColumns a Sum. Názvy polí pridané prostredníctvom rozsahu záznamov prepíšu rovnaké názvy z iného miesta v aplikácii. Ak sa tak stane, môžete stále pristupovať k hodnotám mimo rozsahu záznamov prostredníctvom operátora rozlišovania @:
- Na prístup k hodnotám z vnorených rozsahov záznamov použite operátor @ s názvom spracovávanej tabuľky a nasledovný vzor:
Tabuľka[@Názov poľa] - Na prístup ku globálnym hodnotám, ako sú napríklad zdroje údajov, kolekcie a kontextové premenné, použite vzor [@ObjectName] (bez označenia tabuľky).
Ďalšie informácie a príklady nájdete v rozsahu záznamov.