Kopīgot, izmantojot


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ā 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 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:

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

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

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

Darbinieki parādīti galerijā.

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

Formula darbinieka attēlam.

Arī nosaukuma formula izmanto ThisItem:

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

Formula darbinieka pirmajam un uzvārds.

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

Darbinieku filtrēšana pēc vārda, izmantojot ThisRecord.

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 , 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 , lai noteiktu, ka tiek strādāts ar Darbinieku:

Employees As Employee

Darbinieku galerija, izmantojot operatoru A.

Attēla un nosaukuma formulas ir pielāgotas izmantot šo nosaukumu pašreizējam ierakstam:

Employee.Picture

Tāda darbinieka attēls, kurš izmanto darbinieka vārdu kopu ar operatoru As.

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

Darbinieka pirmais un uzvārds, izmantojot darbinieka vārdu kopu ar operatoru As.

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 , 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:

Šaha galdiņa teksts, kas tiek rādīts etiķetes vadīklā.

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

Ilustrācija ārējai galerijai, kas nodrošina ranga iterāciju.

Šajā galerijā ir jāizvieto Faila horizontālā galerija, kas tiks replicēta katram Rangam ar rekvizītu Elementi:

Sequence(8) as File

Ilustrācija iekšējai galerijai, kas nodrošina faila iterāciju.

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 )

Etiķešu kontrole abās galerijās, kas nodrošina šaha galdiņa mainīgās krāsas.

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ā:

Uzņēmumu entītija ar pievienotu pielāgotu lauku, kurā redzams parādāmais nosaukums

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:

Studijas formulu josla, kurā redzami kontu lauku nosaukumu ieteikumi ar iezīmētu parādāmo nosaukumu

Pēc ieteikuma atlases formulu joslā tiek parādīts 'Custom Field' un dati tiek izgūti:

Studijas formulu josla, kurā redzams, kā laukam tiek izmantots parādāmais nosaukums

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:

Studijas formulu josla, kurā redzams lauka loģiskā nosaukuma cr5e3_customfield lietojums.

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:

Studijas formulu josla, kurā redzams loģiskā nosaukuma cr5e3_customfieldalt lietojums, lai neskaidrotu abas

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.