Tehtemärgid ja identifikaatorid
Märkus.
Microsoft Power Fx on lõuendirakenduste valemikeele uus nimi. Need artiklid on pooleli, kuna ekstraktime keele lõuendirakendustest, integreerime selle teiste Microsoft Power Platform toodetega ja teeme selle kättesaadavaks avatud allikana. Alustage Microsoft Power Fx ülevaatega sissejuhatuseks keelde.
Tehtemärgid rakenduses Microsoft Power Fx on kirjeldatud allpool. Mõned need tehtemärgid sõltuvad autori keelest. Lisateavet vaadake teemast Globaalsed rakendused.
Sümbol | Tüüp | Süntaks | Kirjeldus |
---|---|---|---|
. | Atribuudi valija |
Slider1.Value Color.Red |
Ekstraktib atribuudi tabeli juhtelemendist või loendist. Tagurpidi ühilduvuse jaoks, ! saab kasutada. |
. keelest sõltuv |
Kümnendkoha eraldaja | 1.23 | Eraldaja arvu terviku ja osade vahel. Märk sõltub keelest. |
( ) | Sulud |
Filter(T, A < 10) (1 + 2) * 3 |
Tagab tähtsuse järjekorra ja rühmitab alamavaldised suuremateks avaldisteks |
+ | Aritmeetilised tehtemärgid | 1 + 2 | Liitmine |
- | 2 - 1 | Lahutamine ja märk | |
* | 2 * 3 | Korrutamine | |
/ | 2 / 3 | Jagamine (vt a funktsiooni Mod) | |
^ | 2 ^ 3 | Astendamine, võrdne funktsiooniga Power | |
% | 20% | Protsent (võrdne "* 1/100") | |
= | Võrdlustehted | Price = 100 | Võrdne väärtusega |
> | Price > 100 | Suurem kui | |
>= | Price >= 100 | Suurem kui või võrdub | |
< | Price < 100 | Väiksem | |
<= | Price <= 100 | Väiksem kui või võrdub | |
<> | Price <> 100 | Ei võrdu | |
& | Stringi ühendamise tehtemärk | "tere" & " & "maailm" | Mitu stringi tunduvad pidevana |
&või ja | Loogika tehtemärgid |
Hind < 100 && Slider1.Väärtus = 20 või Price < 100 And Slider1.Value = 20 |
Loogiline konjuktsioon, mis on võrdne funktsiooniga And |
|| või Or | Price < 100 || Slider1.Value = 20 või Price < 100 Or Slider1.Value = 20 | Loogiline disjunktsioon, mis on võrdne funktsiooniga Or | |
! või Not | !(Price < 100) või Not (Price < 100) | Loogiline eitus, mis on võrdne funktsiooniga Not | |
exactin | Liikmesuse tehtemärgid | Gallery1.Selected exactin SavedItems | Kuuluvad kogumisse või tabelisse |
exactin | "Windows" eksaktiin “Windowsi kuvamiseks operatsioonisüsteemis Windows...” | Alamstringi test (tõusutundlik) | |
kohas | Gallery1.Selected in SavedItems | Kuuluvad kogumisse või tabelisse | |
kohas | "The" kohas "The keyboard and the monitor..." | Alamstringi test (pole tõusutundlik) | |
@ | Ühtestamise tehtemärk | MyTable[@fieldname] | Välja ühtestamine |
@ | [@MyVariable] | Globaalne ühtestamine | |
, [keelest sõltuv] |
Loendi eraldaja |
If( X < 10, "Low", "Good" ) { X: 12, Y: 32 } [ 1, 2, 3 ] |
Eraldab: See märk sõltub keelest. |
; [keelest sõltuv] |
Valemi aheldamine | Collect(T, A); Navigate(S1, "") | Eraldage käitumise atribuutides funktsioonide kutsumised. Aheldamise tehtemärk sõltub keelest. |
Kui | Tehtemärk: | AllCustomers kui klient | Alistab galeriides ja kirje ulatuse funktsioonides üksuses ThisItem ja ThisRecord. Kui on kasulik parema ja konkreetsema nime andmisel ning on eriti oluline pesastatud stsenaariumites. |
Oma | Tehtemärk Self | Self.Fill | Juurdepääs praeguse juhtelemendi atribuutidele |
Parent | Tehtemärk Ülem | Parent.Fill | Juurdepääs juhtelemendi ümbrise atribuutidele |
ThisItem | Tehtemärk ThisItem | ThisItem.FirstName | Juurdepääs galerii või vormi juhtelemendi väljadele |
ThisRecord | Tehtemärk ThisItem | ThisRecord.FirstName | Ligipääs täielikule kirjele ja kirje üksikutele väljadele ForAll, Sum, With ja muude kirje ulatusega seotud funktsioonide raames. Saab alistada tehtemärgiga Kui. |
Tehtemärgid in ja exactin
Kasutage tehtemärke in ja exactin, et leida andmeallikas soovitud string, näiteks kogu või imporditud tabel. Tehtemärk in tuvastab vasted sõltumata juhtumist ja tehtemärk exactin tuvastab vasted ainult kui need on samade suurtähtedega. Vaatame näidet.
Looge või importige kogum nimega Varud ja kuvage see galeriis, nagu esimene protseduur jaotises Piltide ja teksti kuvamine galeriis kirjeldab.
Määrake juhtelemendi galerii atribuut Üksused järgmisele valemile:
Filter(Inventory, "E" in ProductName)Galerii kuvab kõik tooted peale Callisto, kuna selle toote nimi on ainus, mis ei sisalda teie määratud tähte.
Muutke juhtelemendi galerii atribuut Üksused järgmisele valemile:
Filter(Inventory, "E" exactin ProductName)Galerii näitab ainult Euroopat, kuna ainult selle nimi sisaldab tähte, mille määratlesite juhtumis, mille määratlesite.
ThisItem, ThisRecord ja As kui tehtemärgid
Mõned juhtelemendid ja funktsioonid rakendavad valemeid tabeli üksikkirjetele. Valemis üksikkirjele viitamiseks kasutage üht järgmistest võimalustest.
Operaator | Kehtib järgmiste puhul | Kirjeldus |
---|---|---|
ThisItem |
Galerii juhtelement Vormi redigeerimise juhtelement Vormi kuvamise juhtelement |
Praeguse kirje vaikenimi Galerii või vormi juhtelemendis. |
ThisRecord | Kõikide, Filter, Koos, Summa ja teiste kirje ulatuse funktsioonid | Praeguse kirje vaikenimi funktsioonis ForAll ja muudes kirje ulatuse funktsioonides. |
Kuinimi |
Galerii juhtelement Kõikide, Filter, Koos, Summa ja muud kirje ulatuse funktsioonid |
Määratleb praeguse kirje nime, asendades üksuse ThisItem või ThisRecord vaikesätte. Kasutage funktsiooni Kui, et muuta valemid lihtsamini mõistetavaks ja lahendada pesastamisel ebaselgusi. |
Tehtemärk ThisItem
Näiteks järgmisesGalerii juhtelemendis on seatud suvandi Üksused andmeallikaks Töötajad (nt Northwind Tradersi näidises sisalduv olem Töötajad):
Employees
Galerii esimene üksus on mall, mida kasutatakse iga töötaja jaoks. Mallis kasutab pildi valem praegusele üksusele viitamiseks funktsiooni ThisItem:
ThisItem.Picture
Funktsiooni ThisItem kasutab ka nime valem:
ThisItem.'First Name' & " " & ThisItem.'Last Name'
ThisRecord tehtemärk
ThisRecord kasutatakse kirje ulatusega funktsioonides. Näiteks saame kasutada funktsiooni Filter oma galerii suvandis Üksused, et kuvada vaid tähega M algavad eesnimed:
Filter( Employees, StartsWith( ThisRecord.Employee.'First Name', "M" ) )
ThisRecord on valikuline ja tuleneb väljade otsekasutusest, näiteks antud juhul oleksime võinud kirjutada järgmist:
Filter( Employees, StartsWith( 'First Name', "M" ) )
Kuigi see on valikuline, võib ThisRecord muuta valemid lihtsamini mõistetavaks ning selle kasutamine võib osutuda vajalikuks ebaselgetest olukordades, kus välja nimi võib olla ka seose nimi. ThisRecord on valikuline, kuid ThisItem on alati kohustuslik.
Kasutage funktsiooni ThisRecord, et viidata kogu kirjele funktsioonidega Patch, Collect ja muude kirje ulatuse funktsioonidega. Näiteks järgmine valem määrab kõigi passiivsete töötajate oleku aktiivseks.
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees,
Patch( Employees, ThisRecord, { Status: 'Status (Employees)'.Active } ) ) )
Kui tehtemärk
Kasutage tehtemärki Kui, et nimetada galerii kirje või kirje ulatuse funktsioon, alistades vaikimisi sätte ThisItem või ThisRecord. Kirjele nime andmine võib muuta teie valemid lihtsamini mõistetavaks ning pesastatud olukordades võib see olla vajalik muudesse ulatustesse jäävatele kirjetele ligi pääseda.
Näiteks saate muuta meie galerii suvandit Üksused, et kasutada tehtemärki Kui selleks, et teha kindlaks, kas me töötame töötajaga.
Employees As Employee
Pildi ja nime valemeid kohandatakse, et kasutada praeguse kirje jaoks antud nime.
Employee.Picture
Employee.'First Name' & " " & Employee.'Last Name'
Kui tehtemärki saab kasutada ka kirje ulatuse funktsioonidega, et asendada vaikenimi ThisRecord. Me saame seda rakendada eelmisele näitele, et selgitada kirjet, millega töötame.
With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
ForAll( InactiveEmployees As Employee,
Patch( Employees, Employee, { Status: 'Status (Employees)'.Active } ) ) )
Galeriide ja kirje ulatuse funktsioonide pesastamisel viitavad ThisItem ja ThisRecord alati kõige sisemisele ulatusele, jättes väliste ulatuste kirjed kättesaamatuks. Kõikide kirjete kättesaadavaks muutmiseks kasutage tehtemärki Kui, andes igaühele kordumatu nime.
Näiteks see valem moodustab tekstistringina malelauamustri, pesastades pesastades kaks ForAll funktsiooni.
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
)
Juhtelemendi Silt atribuudi Tekst määramine antud valemile kuvatakse järgmiselt:
Räägime lahti, mis siin toimub.
- Alustame sellest, et itereerime funktsioonist Sequence kaheksast nummerdatud kirjest koosneva nimetu tabeli. See tsükkel kehtib laua iga rea jaoks, mida kutsutakse tavaliselt nimega Järk, seega anname talle vastava nime.
- Iga rea kohta itereerime veel ühe kaheksast veerust koosneva nimetu tabeli ning anname talle ühtse nime Fail.
- Kui Rank.Value + File.Value on paaritu arv, siis märgitakse ruutu X, vastasel juhul aga täpp. See valem viitab tänu tehtemärgi Kui kasutamisele mõlemale ForAll tsüklile.
- Kontakti kasutatakse kaks korda, esmalt veergude ja seejärel ridade koondamiseks; kasutades uue rea loomiseks funktsiooni Char(10).
Sarnane näide on ForAll funktsioonide asemel ka pesastatud Galerii juhtelementidega. Alustame suvandi Järk vertikaalselst galeriist. Antud galerii juhtelemendi Üksused valem on järgmine.
Sequence(8) as Rank
Asetame galeriisse suvandi Fail horisontaalse galerii, mis kopeeritakse iga Järgu jaoks järgmise Üksused atribuudiga.
Sequence(8) as File
Lõpetuseks lisame galeriisse juhtelemendi Silt, mis kopeeritakse iga Faili ja iga Järgu jaoks. Määrame selle täitma kogu ruumi ning kasutame suvandit Täida, et anda järgmise valemi abil värv.
If( Mod( Rank.Value + File.Value, 2 ) = 1, Green, Beige )
Tehtemärgid Self ja Parent
Valemis on juhtelemendile ja selle atribuutidele viitamiseks kolm võimalust.
Meetod | Kirjeldus |
---|---|
Juhtelemendi nime kaudu | Igale juhtelemendile on võimalik viidata selle nime kaudu kogu rakenduses. Näiteks Label1.Fill viitab täiteatribuudile, mis kuulub juhtelemendile, mille nimi on Label1. |
Self operaator | Sageli on otstarbekas viidata valemi kirjutamisel sama juhtelemendi mõnele muule atribuudile. Selle asemel, et kasutada absoluutset nimeviidet, on hõlpsam ja teisaldatavam kasutada suhtelist viidet iseendale (self). Tehtemärk Self annab lihtsasti juurdepääsu praegusele juhtelemendile. Näiteks viitab Self.Fill praeguse juhtelemendi täitevärvile. |
Ülem operaator | Mõned juhtelemendid majutavad muid juhtelemente, sealhulgas näiteks juhtelemendid Screen ja Gallery. Endas juhtelemente majutavat juhtelementi kutsutakse emaks (parent). Nii nagu tehtemärk Self, pakub ka tehtemärk Parent võimalust viidata suhteliselt konteineri juhtelemendile. Näiteks viitab Parent.Fill täiteatribuudile, mis kuulub juhtelemendile, mis on praeguse juhtelemendi konteiner. |
Self ja Parent on tehtemärgid ja mitte juhtelementide endite atribuudid. Viiteid Parent.Parent, Self.Parent või Parent.Self toetata.
Identifikaatori nimed
Muutujate, andmeallikate, veergude ja muude objektide nimed võivad sisaldada Unicode’i.
Kasutage tühikut või muud erimärki sisaldava nime ümber ühekordseid jutumärke.
Kasutage kahte ühekordset jutumärki koos, et tähistada ühte ühekordset jutumärki nimes. Erimärke mitte sisaldavad nimed ei vaja ühekordseid jutumärke.
Siin on mõned näited veergude nimedest, mis võivad tabelis esineda, ja kuidas nad on valemites esindatud.
Veeru nimi andmebaasis | Viide veerule valemis |
---|---|
SimpleName | SimpleName |
NameWith123Numbers | NameWith123Numbers |
Name with spaces | 'Name with spaces' |
Name with "double" quotes | 'Name with "double" quotes' |
Name with 'single' quotes | 'Name with ''single'' quotes' |
Name with an @ at sign | 'Name with an @ at sign' |
Kahekordseid jutumärke kasutatakse tekstistringi määramiseks.
Kuvatavad nimed ja loogilised nimed
Teatud andmeallikates (nt SharePoint ja Microsoft Dataverse) on kaks erinevat nime, mis viitavad samale tabelile või andmete veerule.
Loogiline nimi – nimi, mis on garanteeritult kordumatu, ei muutu pärast loomist, tavaliselt ei luba tühikuid ega teisi erimärke ning seda ei saa erinevates keeltes lokaliseerida. Selle tulemusel võib nimi olla arusaamatu. Neid nimesid kasutavad professionaalsed arendajad. Näiteks cra3a_customfield. Sellele nimele võidakse viidata ka kui skeemi nimi või lihtsalt nimi.
Kuvatav nimi – nimi, mis on kasutajasõbralik ja mis on mõeldud lõppkasutajate poolt nägemiseks. See nimi ei pruugi olla kordumatu, võib aja jooksul muutuda, võib sisaldada tühikuid ja mis tahes Unicode’i märki ning võib olla lokaliseeritud erinevates keeltes. Vastavalt ülaltoodud näitele võib kuvanimi olla Kohandatud väli, kus sõnade vahel on tühik.
Kuna kuvatavaid nimesid on lihtsam mõista, soovitab Power Fx neid valikutena ega soovita loogilisi nimesid. Kuigi loogilisi nimesid ei soovitada kasutada, siis saab seda siiski teha, kui need on tipitud kaudselt.
Näiteks kujutage ette, et olete lisanud teenuse Dataverse olemisse suvandi Kohandatud väli. Süsteem määrab teile loogilise nime, mida saate muuta ainult välja loomisel. Tulemus näeks välja sarnane järgnevale:
Lubades viitamise kontode väljale, soovitatakse kasutada suvandit Kohandatud väli, kuna see on kuvatav nimi. Kuna see nimi hõlmab tühikut, tuleb kasutada üksikjutumärke.
Pärast soovituse valimist kuvatakse valemiribal 'Kohandatud väli' ja hangitakse andmed:
Kuigi seda ei soovitata, võiksime kasutada selle välja jaoks ka loogilist nime. Selle tulemuseks on samade andmete toomine. Üksikjutumärke pole vaja kasutada, kuna see nimi ei sisalda tühikuid ega erimärke.
Taustal säilitatakse vastendamine valemites nähtavate kuva nimede ja nende aluseks olevate loogiliste nimede vahel. Kuna andmeallikaga suhtlemiseks tuleb kasutada loogilisi nimesid, kasutatakse seda vastendamist automaatselt praeguselt kuvatavalt nimelt loogilisele nimele teisendamiseks ja seda nähakse võrguliikluses. Vastendust kasutatakse ka loogilistele nimedele tagasi teisendamiseks, et lülituda ümber uutele kuvatavatele nimedele, näiteks kui kuvatav nimi muutub muukeelne tegija muudab rakendust.
Märkus.
Loogilisi nimesid rakenduse erinevate keskkondade vahel liigutamisel ei tõlgita. Süsteemi Dataverse olemi ja väljanimede korral ei tohiks see olla probleem, kuna loogilised nimed on erinevates keskkondades ühtlased. Kuid kõik kohandatud väljad, näiteks cra3a_customfield selles näites, võivad omada erinevat keskkonna eesliidet (antud juhul cra3a). Kuvatavad nimed on eelistatud, kuna neid saab vastendada uue keskkonna kuvamise nimedega.
Nime ühtestamine
Kuna kuvatavad nimed pole kordumatud, võib sama kuvatav nimi ilmuda samas olemis mitu korda. Kui see juhtub, lisatakse loogiline nimi kuvatava nime lõppu sulgudes ühe vastuolulise nime jaoks. Tuginedes eelmisele näitele, kui sama kuvatava nimega Kohandatud väli oleks teine väli, mille loogiline nimi on cra3a_customfieldalt, siis näitaksid soovitused järgmist:
Nime ühtestamise stringid lisatakse teistes olukordades, kus esinevad nimede konfliktid, nagu olemite nimed, suvandikomplektid ja teised Dataverse’i üksused.
Ühtestamise tehtemärk
Mõned funktsioonid loovad iga kirje töötlemise ajal tabeli väljade hindamiseks kirjete ulatused, nagu Filter, AddColumns ja Sum. Kirje ulatusega lisatud väljade nimed tühistavad samad nimed mujal rakenduses. Kui nii juhtub, saate siiski pääseda juurde väärtustele, mis jäävad väljapoole ühtestamise tehtemärgi @kirje ulatust.
- Pesastatud kirje ulatustest väärtustele juurdepääsuks kasutage tehtemärki @ koos tabeli nimega, mida kasutatakse selle musti kasutamisel.
Tabel[@VäljaNimi] - Globaalsetele väärtustele (nt andmeallikad, kogumid ja konteksti muutujad) juurdepääsuks kasutage mustrit [@ObjectName] (ilma tabeli määramiseta).
Lisateavet ja näiteid vaadake kirjete ulatustest.