Operátory a identifikátory v Power Apps

Vzťahuje sa na: Aplikácie plátna Modelom riadené aplikácie

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 obchodného vzťahu' 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
$"..." Interpolácia reťazca $"Vážený/-á {FirstName}," Vzorce vložené do textového reťazca
. Výber vlastností Slider1.Value
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 && Slider1.Hodnota = 20
alebo Cena < 100 And Slider1.Value = 20
Logická konjunkcia, zodpovedá funkcii And
|| alebo Alebo   Price < 100 || Slider1.Value = 20 alebo Price < 100 Or Slider1.Value = 20 Logická disjunkcia, zodpovedá funkcii Or
. alebo Nie   !(Cena < 100) alebo Not (Price < 100) Logická negácia, zodpovedá funkcii Not
exactin Operátory členstva Gallery1.Selected exactin SavedItems Patrí do kolekcie alebo tabuľky
exactin   Windows exactin “Na zobrazenie okien v operačnom systéme Windows...” Test podreťazcov (rozlišovanie veľkých a malých písmen)
v   Gallery1.Selected in SavedItems Patrí do kolekcie alebo tabuľky
v   "The" v "The keyboard and the monitor..." Test podreťazcov (bez rozlišovania veľkých a malých písmen)
@ Operátor rozlišovania MyTable[@fieldname] Rozlišovanie polí
@   [@MyVariable] Rozlišovanie globálnej mnohoznačnosti
,
[jazykovo závislé]
Oddeľovač zoznamov If( 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); Navigate(S1, "") Vyvolania funkcií môžete oddeliť vo vlastnostiach správania. Operátor reťazenia závisí od jazyka.
Ako Ako operátor Všetci zákazníci ako zákazník Prepíše ThisItem a ThisRecord v galériách a funkciách záznamu rozsahu. As je užitočný na poskytnutie lepšieho a špecifického názvu a je zvlášť dôležitý v vnorených scenároch.
Samostatné Samo operátor Self.Fill prístup k vlastnostiam aktuálneho ovládacieho prvku.
Nadradený prvok Nadradený operátor Parent.Fill Prístup k vlastnostiam kontajnera ovládacieho prvku
ThisItem Operátor ThisItem ThisItem.FirstName Prístup k poliam ovládacieho prvku Galéria alebo Formulár
ThisRecord Operátor ThisRecord 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:

  1. 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.

  2. Nastavte vlastnosť Items galérie na tento vzorec:
    Filter(Inventory, "E" in ProductName)

    Galéria zobrazí všetky produkty okrem produktu Callisto, pretože názov tohto produktu je jediný, ktorý neobsahuje vami zadané písmeno.

  3. Zmeňte vlastnosť Items galérie na tento vzorec:
    Filter(Inventory, "E" exactin ProductName)

    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
ThisItem Galéria – ovládací prvok
Upraviť formulár – ovládací prvok
Formulár na zobrazenie – ovládací prvok
Predvolený názov aktuálneho záznamu v ovládacom prvku Galéria alebo vo formuláre.
ThisRecord ForAll, Filter, With, Sum a iné funkcie rozsahu záznamu Predvolený názov aktuálneho záznamu v ForAll a ďalších funkciách rozsahu záznamu.
Akomeno Galéria – ovládací prvok
ForAll, Filter, With, Sum a ostatné funkcie rozsahu záznamu
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

Zamestnanci zobrazení v galérii.

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 pre obrázok zamestnanca.

Vzorec názvu tiež využíva ThisItem:

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

Vzorec pre prvý a priezvisko zamestnanca.

Operátor ThisRecord

ThisRecord sa používa vo funkciách, ktoré majú a 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" ) )

Filtrovanie zamestnancov na základe mena pomocou ThisRecord.

ThisRecord je voliteľné a naznačené 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. ThisRecord je voliteľné, zatiaľ čo ThisItem je vždy potrebné.

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

Galéria zamestnancov pomocou operátora As.

Vzorce pre obrázok a názov sú upravené tak, aby používali tento názov pre aktuálny záznam:

Employee.Picture

Obrázok zamestnanca, ktorý používa meno zamestnanca nastavené pomocou operátora AS.

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

Prvý a priezvisko zamestnanca používajúci meno zamestnanca nastavené operátorom AS.

As sa môže tiež použiť s funkciami rozsahu záznamu 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:

Text na šachovnici zobrazený v ovládacom prvku označenia.

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 sa využíva Char(10) na vytvorenie nového riadka.

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

Ilustrácia vonkajšej galérie, ktorá poskytuje iteráciu poradia.

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

Ilustrácia vnútornej galérie, ktorá poskytuje iteráciu súboru.

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 )

Ovládací prvok označenia v rámci dvoch galérií, ktorý poskytuje striedavé farby šachovnice.

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 operátor 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.
Nadradený 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.

Sám a Nadradený sú operátormi a nie vlastnosťami samotných ovládacích prvkov. 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, pri ktorom je zaručené, že je jedinečný, po vytvorení sa nemení, zvyčajne neumožň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.

  • Zobraziť názov – Názov, ktorý je používateľsky prívetivý a je určený pre koncových používateľov. 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:

Tabuľka účtov s pridaným vlastným poľom so zobrazovaným názvom

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:

Štúdiový riadok vzorcov zobrazujúci návrhy názvov polí účtov so zvýrazneným zobrazovaným názvom Vlastné pole.

Po výbere návrhu sa na paneli vzorcov zobrazí „Vlastné pole“ a údaje sa načítajú:

Štúdiový riadok vzorcov zobrazujúci použitie zobrazovaného názvu

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 nie sú povinné, pretože tento názov neobsahuje medzery ani špeciálne znaky:

Štúdiový riadok vzorcov zobrazujúci použitie logického názvu cr5e3_customfield pre pole.

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. Ak k tomu dôjde, logický názov sa pridá na koniec zobrazovaného názvu v zátvorkách pre jeden z viacerých konfliktných názvov. 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:

Štúdiový riadok vzorcov zobrazujúci použitie logického názvu cr5e3_customfieldalt na rozlíšenie dvoch verzií

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[@FieldName]
  • 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.