Operatori un identifikatori
Piezīmes
Microsoft Power Fx ir pamatnes programmu formulas valodas jaunais nosaukums. Šie raksti darbojas, kad izvelk valodu no pamatnes programmām, integrējot to ar citiem Microsoft Power Platform produktiem un padarām to pieejamu kā atvērtu avotu. Sāciet ar Microsoft Power Fx pārskatu par valodas ievadu.
Microsoft Power Fx operatori ir aprakstīti zemāk. Daži no šiem operatoriem ir atkarīgi no autora valodas. Lai iegūtu papildinformāciju, skatiet sadaļu Globālās programmas.
Simbols | Veids | Sintakse | Apraksts |
---|---|---|---|
. | Rekvizītu atlasītājs | Slīdnis1.Vērtība Color.Red |
Izvelk rekvizītu no tabulas vadīklas vai numerācijas. Var tikt izmantota arī ! atpakaļsaderība. |
. atkarīgs no valodas |
Decimāldaļu atdalītājs | 1.23 | Atdalītājs starp veselām un daļskaitļu skaitļa daļām. Šī rakstzīme ir atkarīga no valodas. |
( ) | Iekavas | Filtrs(T, A < 10) (1 + 2) * 3 |
Ievieš prioritāšu secību un grupē pakārtotās izteiksmes lielākās izteiksmēs |
+ | Aritmētiskie operatori | 1 + 2 | Pievienošana |
- | 2 - 1 | Atņemšana un parakstīšana | |
* | 2 * 3 | Reizināšana | |
/ | 2 / 3 | Dalīšana (sk. arī funkciju Mod ) | |
^ | 2 ^ 3 | Kāpināšana, ekvivalenta funkcijai Power | |
% | 20% | Procenti (ekvivalents "* 1/100") | |
= | Salīdzinājuma operatori | Cena = 100 | Vienāds ar |
> | Cena > 100 | Ir lielāks nekā | |
>= | Cena >= 100 | Lielāks par vai vienāds ar | |
< | Cena < 100 | Ir mazāks nekā | |
<= | Cena <= 100 | Mazāks par vai vienāds ar | |
<> | Cena <> 100 | Nav vienāds ar | |
& | Virkņu konkatenācijas operators | "Labdien" &; " " &; "Pasaule" | Vairākas virknes tiek rādītas kā nepārtrauktas |
&&vai un | Loģiskie operatori | Cena < 100 & Slider1.Value = 20 vai Cena < 100 Un Slider1.Value = 20 |
Loģiskais apvienojums, kas ir ekvivalents funkcijai And |
|| vai Vai arī | Cena < 100 || Slider1.Value = 20 vai Price < 100 Or Slider1.Value = 20 | Loģiskais nošķīrums, kas ir ekvivalents funkcijai Or | |
! vai Nav | ! (Cena < 100) vai nē (cena < 100) | Loģiskais noliegums, kas ir ekvivalents funkcijai Not | |
Exactin | Dalības operatori | Galerija1.Atlasīts exactin SavedItems | Pieder kolekcijai vai tabulai |
Exactin | "Windows" exactin "Lai parādītu logus Windows operētājsistēmā..." | Apakšvirknes tests (reģistrjutīgs) | |
gadā | Galerija1.Atlasīts sadaļā SavedItems | Pieder kolekcijai vai tabulai | |
gadā | "The" sadaļā "Tastatūra un monitors..." | Apakšvirknes tests (reģistrnejutīgs) | |
@ | Neskaidrības operators | MyTable[@fieldname] | Lauka neviennozīmība |
@ | [@MyVariable] | Globālā neviennozīmība | |
, [no valodas atkarīgais] |
Saraksta atdalītājs | Ja(x < 10, "zems", "labs") { X: 12, Y: 32 } [ 1, 2, 3 ] |
Atdala: Šī rakstzīme ir atkarīga no valodas. |
; [no valodas atkarīgais] |
Formulu saķēdēšana | savākt(T, A); Navigēt(S1, "") | Atsevišķas izsaukumu funkcijas uzvedības rekvizītos. Šis saķēdēšanas operators ir atkarīgs no valodas. |
Kā | Kā operators | AllCustomers kā klients | Pārlabo ThisItem un ThisRecord galerijās un ieraksta tvēruma funkcijās. Tas ir noderīgi, lai nodrošinātu labāku, konkrētu nosaukumu, un ir īpaši svarīgi ligzdotos scenārijos. |
Self | Pašapkalpošanās operators | Self.Fill | Piekļuve pašreizējās vadīklas rekvizītiem |
vecākelements | vecākelements operators | Vecāks.Aizpildiet | Piekļuve vadīklas konteinera rekvizītiem |
ŠisItem | ThisItem operators | ThisItem.FirstName | Piekļuve galerijas vai formas vadīklas laukiem |
ŠisRekords | ThisItem operators | ThisRecord.FirstName | Piekļuve pilnīgam ierakstam un atsevišķiem ieraksta laukiem ForAll, Summa, Ar un citām ieraksta tvērumu funkcijām. Var tikt pārlabots ar Kā operatoru. |
in un exactin operators
Izmantojiet operatorus in un exactin, lai atrastu virkni datu avotos, piemēram, kolekciju vai importētu tabulu. in operators identificē atbilstības neatkarīgi no reģistra, un exactin operators identificē atbilstības tikai tad, ja tās ir kapitalizētas tādā pašā veidā. Šeit ir piemērs:
Izveidojiet vai importējiet kolekciju ar nosaukumu Krājumi un parādiet to galerijā, kā aprakstīts pirmajā procesā Rādīt attēlus un tekstu galerijā.
Iestatiet galerijas rekvizītu Vienumi šai formulai:
Filter(Inventārs, "E" laukā ProductName)Galerijā ir parādīti visi produkti, izņemot Callisto, jo šī produkta nosaukums ir vienīgais, kas nesatur norādīto burtu.
Mainiet galerijas rekvizītu Vienumi šai formulai:
Filter(Inventārs, "E" exactin ProductName)Galerija rāda tikai Eiropa, jo tikai tā nosaukumā ir iekļauts jūsu norādītajā gadījumā norādītais burts.
ThisItem, ThisRecord un Kā operatori
Dažas vadīklas un funkcijas lieto formulas atsevišķiem tabulas ierakstiem. Lai atsauktos uz atsevišķu formulas ierakstu, izmantojiet kādu no šīm iespējām:
Operators | Attiecas uz | Apraksts |
---|---|---|
ŠisItem | Galerijas vadīkla Veidlapas vadīklas rediģēšana Parādīšanas formas vadīkla |
Pašreizējā ieraksta noklusējuma nosaukums Galerijā vai veidlapas vadīklā. |
ŠisRekords | ForAll,Filter,With,Sum ... ... ... un citas ieraksta tvēruma funkcijas | Pašreizējā ieraksta noklusējuma nosaukums ir ForAll un citas ieraksta tvēruma funkcijas. |
Kānosaukums | Galerijas vadīkla ForAll,Filter,With,Sum ... ... ... un citas ieraksta tvēruma funkcijas |
Definē pašreizējā ieraksta nosaukumu, aizstājot noklusējuma ThisItem vai ThisRecord. Izmantojiet Kā, lai formulas būtu vienkāršāk saprotamas un atrisinātu neskaidrības ligzdošanas laikā. |
ThisItem operators
Piemēram, vadīklā Galerija rekvizīts Elements ir iestatīts uz Darbinieki datu avotu (tā pat kā entītija Darbinieki ir iekļauta Northwind Traders paraugā):
Employees
Pirmais elements galerijā ir veidne, kas tiek replicēta katram darbiniekam. Veidnē attēla formula izmanto ThisItem, lai atsauktos uz pašreizējo elementu:
ThisItem.Picture
Arī nosaukuma formula izmanto ThisItem:
ThisItem.'First Name' & " " & ThisItem.'Last Name'
ThisRecord operators
ThisRecord tiek izmantots funkcijās, kurām ir ieraksta tvērums. Piemēram, izmantojot funkciju Filter, ar mūsu galerijas rekvizītu Elementi, lai parādītu tikai vārdus, kas sākas ar M:
Filter( Employees, StartsWith( ThisRecord.Employee.'First Name', "M" ) )
ThisRecord ir neobligāts un netieši norādīts, izmantojot laukus tieši, piemēram, šajā gadījumā mēs varētu būt rakstījuši:
Filter( Employees, StartsWith( 'First Name', "M" ) )
Lai gan neobligāts, ThisRecord izmantošana var padarīt formulas vienkāršāk saprotamas un var būt nepieciešams neskaidrās situācijās, kur lauka nosaukums var būt arī attiecību nosaukums. ThisRecord ir neobligāts, kamēr ThisItem vienmēr ir nepieciešams.
Izmantojiet ThisRecord, lai atsauktos uz visu ierakstu ar Patch, Collect un citām ieraksta tvēruma funkcijām. Piemēram, tālāk norādītā formula iestata visu neaktīvo darbinieku statusu uz aktīvs:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees,
Patch( Employees, ThisRecord, { Status: 'Status (Employees)'.Active } ) ) )
Kā operators
Izmantojiet operatoru Kā, lai izveidotu ieraksta nosaukumu galerijā vai ieraksta tvēruma funkcijā, pārlabojot noklusējuma ThisItem vai ThisRecord. Piešķirot nosaukumu ierakstam, formulas ir vienkāršāk saprotamas un tas var būt nepieciešamas, lai ligzdotās situācijās piekļūtu citu tvērumu ierakstiem.
Piemēram, varat modificēt galerijas rekvizītu Elementi, izmantojot Kā, lai noteiktu, ka tiek strādāts ar Darbinieku:
Employees As Employee
Attēla un nosaukuma formulas ir pielāgotas izmantot šo nosaukumu pašreizējam ierakstam:
Employee.Picture
Employee.'First Name' & " " & Employee.'Last Name'
Kā to var izmantot arī ar ierakstu tvēruma funkcijām, lai aizstātu noklusējuma nosaukumu ThisRecord. To ir iespējams pielietot iepriekšējam piemēram, lai precizētu ierakstu, ar ko tiek strādāts:
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees As Employee,
Patch( Employees, Employee, { Status: 'Status (Employees)'.Active } ) ) )
Ligzdojot galerijas un ierakstu tvērumu funkcijas, ThisItem un ThisRecord vienmēr atsaucas uz lielāko iekšējo tvērumu, atstājot ierakstus ārējos tvērumos nepieejamus. Izmantojiet Kā, lai padarītu pieejamus visus ierakstu tvērumus, piešķirot katram no tiem unikālu nosaukumu.
Piemēram, šī formula izveido šaha galdiņa modeli kā teksta virkni, ligzdojot divas ForAll funkcijas:
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
)
Vadīklas Etiķete rekvizīta Teksts iestatīšana šai formulai parāda:
Kas šeit notiek:
- Sāksim no funkcijas Sequence atkārtojot nenosauktu tabulu ar 8 numurētiem ierakstiem. Šī cilpa ir katrai galdiņa rindai un to parasti sauc par Rangu, tāpēc arī mēs piešķirsim tai šādu nosaukumu.
- Katrai rindai atkārtojam jaunu nenosauktu 8 kolonnu tabulu, un piešķiram kopīgu nosaukumu Fails.
- Ja Rank.Value + File.Value ir nepāra skaitlis, tad kvadrāts iegūst X, pretējā gadījumā – punktu. Šī formulas daļa atsaucas uz abām ForAll cilpām, kas ir iespējamas, izmantojot Kā operatoru.
- Concat tiek izmantots divas reizes, vispirms kolonnu un pēc tam rindu salikšanai, ar Char(10) iemestu , lai izveidotu jaunu līniju.
Līdzīgs piemērs ir iespējams izmantojot ligzdotas Galerijas vadīklas, nevis ForAll funkcijas. Sāksim ar Ranga vertikālo galeriju. Šai galerijas vadīklai būs šāda Elementu formula:
Sequence(8) as Rank
Šajā galerijā ir jāizvieto Faila horizontālā galerija, kas tiks replicēta katram Rangam ar rekvizītu Elementi:
Sequence(8) as File
Un visbeidzot, šajā galerijā ir jāpievieno Etiķetes vadīkla, kas tiks replicēta katram Failam un katram Rangam. Pielāgojiet izmērus, lai aizpildītu visu telpu, un, izmantojiet rekvizītu Aizpildījums, lai nodrošinātu krāsu ar šādu formulu:
If( Mod( Rank.Value + File.Value, 2 ) = 1, Green, Beige )
Pastāvīgie un primārie operatori
Ir trīs paņēmieni, kādos atsaukties uz vadīklu un tās rekvizītiem formulā:
Metode | Apraksts |
---|---|
Pēc vadīklas nosaukuma | Uz jebkuru vadīklu var atsaukties, izmantojot nosaukumu no jebkuras vietas programmā. Piemēram, Label1.Fill atsaucas uz aizpildīšanas rekvizītu vadīklā, kuras nosaukums ir Label1. |
Pašapkalpošanās operators | Rakstot formulu, bieži ir izdevīgi atsaukties uz citu tās pašas vadīklas rekvizītu. Tā vietā, lai izmantotu absolūto atsauci pēc nosaukuma, ir vieglāk un ērtāk izmantot relatīvo atsauci uzpašu. Pastāvīgais operators nodrošina šo vienkāršo piekļuvi pašreizējai vadīklai. Piemēram, Self.Fill atsaucas uz pašreizējās vadīklas aizpildījuma krāsu. |
vecākelements operators | Dažas vadīklas uztur citas vadīklas, piemēram, Screen un Gallery vadīklas. Uzturēšanas vadīkla vadīklām tajā tiek sauktas par primārajām. Tāpat kā Pastāvīgais operators, Primārais operators nodrošina vienkāršu relatīvo atsauci uz konteinera vadīklu. Piemēram, Parent.Fill atsaucas uz aizpildīšanas rekvizītu vadīklā, kura ir pašreizējās vadīklas konteiners. |
Paši un vecākelements ir operatori, nevis paši vadības ierīču rekvizīti. Atsaukšanās uz Parent.Parent, Self.Parent vai Parent.Self netiek atbalstīta.
Identifikatoru nosaukumi
Mainīgo, datu avotu, kolonnu un citu objektu nosaukumos var būt jebkurš Unikods.
Izmantojiet vienpēdiņas ap nosaukumu, kas satur atstarpi vai citu speciālo rakstzīmi.
Izmantojiet divas atsevišķas vienpēdiņas kopā, lai nosaukumā attēlotu vienu pēdiņu. Vārdiem, kas nesatur speciālās rakstzīmes, nav nepieciešamas atsevišķas pēdiņas.
Šeit ir daži kolonnu nosaukumi, kas var rasties tabulā, un to attēlojums formulā:
Kolonnas nosaukums datu bāzē | Kolonnas atsauce formulā |
---|---|
SimpleName | SimpleName |
NameWith123Numbers | NameWith123Numbers |
Vārds ar tukšumzīmēm | 'Name with spaces' |
Nosaukums ar “dubultajām” pēdiņām | 'Name with "double" quotes' |
Nosaukums ar “atsevišķajām” pēdiņām | 'Name with ''single'' quotes' |
Vārds, kuram ir zīme @ | 'Name with an @ at sign' |
Dubultās pēdiņas tiek izmantotas, lai norādītu teksta virknes.
Parādāmie nosaukumi un loģiskie nosaukumi
Dažos datu avotos, piemēram, SharePoint un Microsoft Dataverse, ir divi dažādi nosaukumi, kas norāda uz vienu un to pašu datu tabulu vai kolonnu:
Loģiskais nosaukums - Nosaukums, kas tiek garantēts kā unikāls, nemainās pēc izveidošanas, parasti nepieļauj atstarpes vai citas īpašas rakstzīmes un nav lokalizēts dažādās valodās. Tāpēc nosaukums var būt nesaprotams. Šos nosaukumus izmanto profesionāli izstrādātāji. Piemēram, cra3a_customfield. Šo nosaukumu var saukt arī par shēmas nosaukumu vai tikai nosaukumu.
Parādāmais vārds — lietotājvārds, kas ir lietotājam draudzīgs un paredzēts, lai to redzētu galalietotāji. Šis nosaukums var nebūt unikāls, ar laiku var mainīties, tajā var būt tukšumzīmes un jebkura unikoda rakstzīme, un tas var tikt lokalizēts dažādās valodās. Atbilstoši iepriekš minētajam piemēram, parādāmais nosaukums var būt Pielāgots lauks ar atstarpi starp vārdiem.
Tā kā parādāmos nosaukumus ir vienkāršāk izprast, Power Fx tos piedāvās kā izvēli un neieteiks loģiskos nosaukumus. Lai gan loģiskie nosaukumi netiek piedāvāti, tos joprojām var lietot, ierakstot netieši.
Piemēram, iedomājieties, ka entītijai esat pievienojis vienumu Pielāgots lauks programmā Dataverse. Loģiskais nosaukums jums tiks piešķirts sistēmā, kuru var modificēt, tikai veidojot lauku. Rezultāts varētu izskatīties līdzīgi kā:
Autorizējot atsauci uz kontu lauku, tiks ieteikts izmantot Custom Field', jo tas ir parādāmais nosaukums. Jāizmanto atsevišķie piedāvājumi, jo šim nosaukumam tajā ir atstarpe:
Pēc ieteikuma atlases formulu joslā tiek parādīts 'Custom Field' un dati tiek izgūti:
Lai gan tas nav ieteicams, šajā laukā var izmantot arī loģisko nosaukumu. Tas izraisīs tādu pašu datu izgūšanu. Nav nepieciešamas atsevišķas pēdiņas, jo šajā nosaukumā nav atstarpju vai īpašu rakstzīmju:
Fonā tiek uzturēts kartējums starp formulās redzamajiem parādāmajiem nosaukumiem un pamatā esošajiem loģiskajiem nosaukumiem. Tā kā loģiskie nosaukumi ir jāizmanto, lai mijiedarbotos ar datu avotu, šis kartējums tiek izmantots, lai no pašreizējā parādāmā nosaukuma automātiski pārvērstu loģisko nosaukumu, un tas ir redzams tīkla datplūsmā. Kartējums tiek izmantots arī, lai pārvērstu atpakaļ loģiskos nosaukumus, pārslēdzoties uz jauniem parādāmajiem nosaukumiem, piemēram, ja parādāmais nosaukums tiek nomainīts vai veidotājs rediģē programmu citā valodā.
Note
Pārvietojot programmu starp vidēm, loģiskie nosaukumi netiek tulkoti. Dataverse sistēmas entītiju un lauku nosaukumiem tā nav problēma, jo loģiskie nosaukumi ir konsekventi dažādās vidēs. Taču jebkuriem pielāgotiem laukiem, piemēram, cra3a_customfield iepriekš minētajā piemērā, var būt atšķirīgs vides prefikss (šajā gadījumācra3a ). Tiek dota priekšroka parādāmajiem nosaukumiem, jo tos jaunajā vidē var saskaņot ar parādāmajiem nosaukumiem.
Nosaukuma neviennozīmība
Tā kā parādāmie nosaukumi nav unikāli, viens un tas pats parādāmais nosaukums vienā entītijā var parādīties vairāk nekā vienu reizi. Kad tas notiek, loģiskais nosaukums tiks pievienots parādāmā vārda beigās iekavās vienam no vairākiem konfliktējošajiem nosaukumiem. Pamatojoties uz iepriekš minēto piemēru, ja būtu otrs lauks ar tādu pašu parādāmo nosaukumu Custom Field ar loģisko nosaukumu cra3a_customfieldalt, tad ieteikumos būtu redzams:
Nosaukumu neskaidrību virknes tiek pievienotas citās situācijās, kad rodas nosaukumu konflikti, piemēram, entītiju, opciju kopu un citu Dataverse vienumu nosaukumi.
Neviennozīmības operators
Dažas funkcijas veido ieraksta tvērumus, lai piekļūtu tabulas laukiem, kamēr apstrādā katru no ierakstiem, piemēram, Filtrs, AddColumns un Sum. Ar ierakstu tvērumu pievienotie lauku nosaukumi ignorē tos pašus nosaukumus, kas ir citur programmā. Šādā gadījumā joprojām var piekļūt vērtībām, kas neatrodas ieraksta tvērumā, ar @ neviennozīmības operatoru:
- Lai piekļūtu vērtībām no ligzdotiem ieraksta tvērumiem, izmantojiet @ operatoru ar tās tabulas nosaukumu, kas tiek darbināta, izmantojot šo shēmu:
Tabula[@FieldName] - Lai piekļūtu globālām vērtībām, piemēram, datu avotiem, kolekcijām un konteksta mainīgajiem, izmantojiet shēmu [@ObjectName] (bez tabulas apzīmējuma).
Papildinformāciju un piemērus skatiet sadaļā Ieraksta tvērumi.