Zdieľať cez


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:

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

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

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ú 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 podľa mena pomocou ThisRecord.

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

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é s operátorom As.

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

Prvý a priezvisko zamestnanca, ktorý používa meno zamestnanca nastavené pomocou operátora As.

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:

Text šachovnice zobrazený v ovládacom prvku menovky.

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

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

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ádanie štítkov v dvoch galériách, ktoré poskytuje striedanie farieb pre šachovnicu.

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:

Tabuľka účtov s pridaným vlastným poľom, ktorá zobrazuje zobrazovaný názov „Vlastné pole“ a logický názov „cr5e3_customfield“.

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:

Panel vzorcov Štúdia 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ú:

Panel vzorcov Štúdia zobrazujúci použitie zobrazovaného názvu „Vlastné pole“ pre pole.

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:

Panel vzorcov v štúdiu 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. 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:

Riadok vzorcov v aplikácii Studio zobrazujúci použitie logického názvu cr5e3_customfieldalt na odlíšenie dvoch verzií „vlastného poľa“.

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.