Делите путем


Оператори и идентификатори у услузи Power Apps

Односи се на: Цанвас апликације Апликације засноване на моделу Power Pages

Неки од ових оператора зависе од језика аутора. Више информација о језичкој подршци у апликацијама са подлогом потражите у чланку Глобалне апликације.

Симбол Тип Пример Опис
'...' Идентификатор 'Име налога' Идентификатори који садрже специјалне знакове, укључујући размаке, налазе се у једноструким наводницима
"..." Текстуални низ "Здраво, Свет" Текстуалне ниске се затварају у двоструким наводницима
$"..." Стринг интерполација $ "Драги {FirstName}," Формуле уграђене у текстуалну ниску
. Бирач својстава Slider1.Валуе
Color.Red
Acceleration.X
Извлачи својство из табеле, контроле, сигнала или набрајања. За обрнуту компатибилност, може да се користи и !.
.
[зависи од језика]
Знак за раздвајање децимала 1.23 Знак за раздвајање између целих и делимичних делова броја. Знак зависи од језика.
( ) Заграде Филтер (Т, А < 10)

(1 + 2) * 3
Спроводи редослед приоритета и групише подизразе у већем изразу
+ Аритметички оператори 1 + 2 Сабирање
-   2 - 1 Одузимање и знак
*   2 * 3 Множење
/   2 / 3 Дељење (погледајте такође функцију Mod)
^   2 ^ 3 Степеновање, еквивалентно функцији Power
%   20% Проценат (еквивалентно са „* 1/100“)
= Оператори поређења Цена = 100 Једнако је
>   Цена > 100 Веће од
>=   Цена > = 100 Веће од или једнако са
<   Цена < 100 Мање од
<=   Цена < = 100 Мање од или једнако са
<>   Цена <> 100 Није једнако са
& Оператор за повезивање ниски "здраво " & " " & "свет" Саставља више ниски так ода се приказују континуирано
&& или И Логички оператори Цена < 100 && Slider1.Вредност = 20
или Price < 100 And Slider1.Value = 20
Логичка конјункција, еквивалентна функцији And
|| или Или   Цена < 100 | | СлидерКСНУМКС.Валуе = КСНУМКС или цена < КСНУМКС или СлидерКСНУМКС.Валуе = КСНУМКС Логичка дисјункција, еквивалентна функцији Or
! или Not   ! (Цена < 100) или не (Цена < 100) Логичка негација, еквивалентна функцији Not
екактан Оператери чланства Galerija1 .Изабрани екацтин СачуванеПредмети Припадање колекцији или табели
екактан   "Виндовс " екацтин "За приказ прозора у оперативном систему Виндовс..." Тестирање подниске (које разликује велика и мала слова)
У   Galerija1 .Изабрано у СаведИтемс Припадање колекцији или табели
У   "Тхе " у "Тастатура и монитор..." Тестирање подниске (које не разликује велика и мала слова)
@ Оператор вишезначности МyТабле[@фиелднаме] Разјашњавање поља
@   [@МyВариабле] Глобално разјашњавање
,
[зависи од језика]
Знак за раздвајање листе иф ( к < 10, "ниско", "добро" )
{ Кс : 12, И: 32 }
[ 1, 2, 3 ]
Раздваја: Овај знак зависи од језика.
;
[зависи од језика]
Повезивање формула Цоллецт (Т, А); Навигација (S1, "") Раздваја позиве функција у својствима понашања. Оператор повезивања зависи од језика.
Као Као оператер АллЦустомерс као купац Замењује својства ThisItem и ThisRecord у функцијама опсега галерија и записа. Као што је корисно за пружање бољег, специфичног имена и посебно је важно у угнијежђеним сценаријима.
Билтен Само оператер Само.Попуните Приступ својствима тренутне контроле
Родитељ Родитељски оператер Родитељ.Попуни Приступ својствима контејнера контроле
Преузмите ТхисИтем оператор ThisItem.FirstName Приступ пољима Галерије или контроли обрасца
ТхисРецорд Оператер ТхисРецорд ТхисРецорд.ФирстНаме Приступ целокупном запису и појединим пољима записа унутар функција ForAll, Sum, With и других функција опсега записа. Може се заменити оператором As.

Белешка

Оператор @ се такође може користити за потврду типа објекта записа према извору података. На пример, Collect(coll,Account@{'Account Number: 1111')

Оператори „in“ и „exactin“

Користите операторе in и exactin да пронађете ниску у извору података, попут колекције или увезене табеле. Оператор in идентификује подударања без обзира на величину слова, а оператор exactin идентификује подударања само ако је величина слова иста. Ево примера:

  1. Креирате или увозите колекцију под називом Инвентар и приказујете је у галерији, као што то описује први поступак у чланку Приказ слика и текста у галерији.

  2. Подесите својство Items галеријe према овој формули:
    Филтер (Инвентар, "Е" у ПродуцтНаме)

    У галерији су приказани сви производи осим „Callisto“, јер је назив тог производа једини који не садржи слово које сте навели.

  3. Промените својство Items галеријe према овој формули:
    Филтер (Инвентар, "Е" екацтин ПродуцтНаме)

    Галерија приказује само ставку „Europa“, јер само њено име садржи слово које сте навели у величини коју сте навели.

Оператори ThisItem, ThisRecord и As

Неколико контрола и функција примењују формуле на појединачне записе табеле. Да бисте упућивали на појединачни запис у формули, користите једно од следећег:

Оператор Односи се на Опис
Преузмите Галерија контрола
Уређивање контроле обрасца
Контрола обрасца за приказ
Подразумевано име за тренутни запис у контроли Галерије или обрасца.
ТхисРецорд Засве, Филтер , Са , Сум и друге функције опсега записа Подразумевано име за тренутни запис у функцији ForAll и другим функцијама опсега записа.
Каоиме Галерија контрола
Засве, Филтер , Са , Сум и друге функције опсега записа
Дефинише име за тренутни запис, замењујући подразумевано ThisItem или ThisRecord. Користите As како би се формуле лакше разумеле и разрешиле нејасноће приликом уношења.

Оператор ThisItem

На пример, у следећој контроли Галерија, својство Items се поставља на извор података Запослени (као што је табела Запослени укључена у пример Northwind Traders):

Employees

Запослени приказани у галерији.

Прва ставка у галерији је предложак који се реплицира за сваког запосленог. У предлошку формула за слику користи оператор ThisItem да упућује на тренутну ставку:

ThisItem.Picture

Формула за слику запосленог.

Исто тако, формула за име такође користи оператор ThisItem:

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

Формула за први и презиме запосленог.

Оператор ThisRecord

ТхисРецорд се користи у функцијама које имају опсег записа. На пример, можемо да користимо функцију Filter са својством Items да се прикажу само имена која почињу са М:

Filter( Employees, StartsWith( ThisRecord.Employee.'First Name', "M" ) )

Филтрирање запослених на основу имена, користећи ТхисРецорд.

ТхисРецорд је опционо и подразумева се директним коришћењем поља, на пример, у овом случају, могли смо написати:

Filter( Employees, StartsWith( 'First Name', "M" ) )

Иако опционално, користећи ThisRecord може олакшати разумевање формула и може бити потребан у двосмисленим ситуацијама где име поља такође може бити назив релације. ТхисРецорд је опционо, док је ТхисИтем увек потребан.

Користите оператор ThisRecord да референцирате читав запис функцијама Patch, Collect и другим функцијама опсега записа. На пример, следећа формула поставља статус свих неактивних запослених на „активан“:

With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
      ForAll( InactiveEmployees,
              Patch( Employees, ThisRecord, { Status: 'Status (Employees)'.Active } ) ) )

Оператор As

Користите оператор As да именујете запис у галерији или функцији опсега записа, замењујући подразумевани оператор ThisItem или ThisRecord. Именовањем записа може вам бити лакше да разумете формуле и може бити потребно у угнежђеним ситуацијама за приступ записима у другим опсезима.

На пример, можете да модификујете својство Items наше галерије да користи As да идентификовали да радимо са запосленим:

Employees As Employee

Галерија запослених, користећи Ас оператора.

Формуле за слику и име подешавају се тако да користе ово име за тренутни запис:

Employee.Picture

Слика запосленог који користи име запосленог постављено са оператером Ас

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

Прво и презиме запосленог који користи име запосленог постављено са оператором Ас

Као што се такође може користити са функцијама опсега записа да замени подразумевано име ТхисРецорд. То можемо применити на наш претходни пример да разјаснимо запис са којим радимо:

With( { InactiveEmployees: Filter( Employees, Status = 'Status (Employees)'.Inactive ) },
      ForAll( InactiveEmployees As Employee,
              Patch( Employees, Employee, { Status: 'Status (Employees)'.Active } ) ) )

Приликом угнежђавања галерија и функција опсега записа, оператори ThisItem и ThisRecord увек се односе на сасвим унутрашњи опсег, остављајући записе у спољним опсезима недоступним. Користите As да бисте све опсеге записа учинили доступним тако што ћете сваком дати јединствено име.

На пример, ова формула прави узорак шаховске табле као текстуалну ниску уметањем две функције 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
)

Подешавање својства Text контроле Ознака на ову формулу приказује:

Текст шаховске табле приказан у контроли ознаке.

Хајде да видимо шта се овде дешава:

  • Започињемо понављањем неименоване табеле од 8 нумерисаних записа из функције Sequence. Ова петља је за сваки ред табле, што се обично назива Rank и зато му дајемо то име.
  • За сваки ред понављамо још једну неименовану табелу од 8 колона и дајемо заједничко име File.
  • Ако је Rank.Value + File.Value непаран број, квадрат добија X, иначе добија тачку. Овај део формуле се односи на обе петље ForAll, што је омогућено оператором As.
  • Цонцат се користи два пута, прво за састављање колона, а затим редова, са Цхар(10) бачен да би се створила нова линија.

Сличан пример је могућ и са угнежђеним контролама Галерија уместо функција ForAll. Кренимо од вертикалне галерије за Rank. Ова контрола галерије ће имати формулу Items:

Sequence(8) as Rank

Илустрација спољне галерије која обезбеђује Ранк итерацију.

У оквиру ове галерије поставићемо хоризонталну галерију за File, која ће се реплицирати за сваки Rank, са својством Items:

Sequence(8) as File

Илустрација унутрашње галерије која обезбеђује Филе итерацију.

И на крају, у ову галерију додаћемо контролу Ознака која ће се реплицирати за сваки File и сваки Rank. Променићемо величину тако да попунимо цео простор и искористимо својство Fill да се обезбедимо боју овом формулом:

If( Mod( Rank.Value + File.Value, 2 ) = 1, Green, Beige )

Контрола ознака унутар две галерије која обезбеђује наизменичне боје за шаховску таблу.

Опратори Self и Parent

Постоје три начина да у формули референцирате контролу и њена својства:

Метод Опис
По називу контроле Свака контрола се може позивати по називу било где у апликацији.

На пример, Label1.Fill се односи на својство испуњавања контроле чији назив је Label1.
Само оператер Често је прикладно упутити неко друго својство исте контроле приликом писања формуле. Уместо да употребљавате апсолутну референцу по имену, лакше је и покретније да користите релативну референцу на себе. Оператор Self омогућава лак приступ својствима тренутне контроле.

На пример, Self.Fill се односи на боју попуне тренутне контроле.
Родитељски оператер Неке контроле садрже и друге контроле, попут контрола Screen и Gallery. Контрола која садржи друге контроле у себи назива се надређена. Попут оператора Self, оператор Parent пружа једноставну релативну референцу на контролу контејнера.

На пример, Parent.Fill се односи на својство попуне контроле која је контејнер за тренутну контролу.

Селф и Парент су оператори, а не својства на самим контролама. Референце Parent.Parent, Self.Parent или Parent.Self нису подржане.

Називи идентификатора

Називи променљивих, извора података, колона и других објеката могу садржати било који Уникод.

Користите једноструке наводнике око назива коју садрже размак или други посебни знак.
Користите два једнострука наводника заједно да бисте представили један једноструки наводник у називу. Називи који не садрже посебне знакове не захтевају једноструке наводнике.

Ево неких примера назива колона на које можете наићи у табели и начин на који су представљени у формули:

Назив колоне у бази података Референца колоне у формули
SimpleName SimpleName
NameWith123Numbers NameWith123Numbers
Назив са размацима 'Name with spaces'
Назив са "двоструким" наводницима 'Name with "double" quotes'
Назив са 'једноструким' наводницима 'Name with ''single'' quotes'
Назив са знаком @ 'Name with an @ at sign'

Двоструки наводници се користе да означите текстуалне низове.

Имена за приказ и логичка имена

Неки извори података као што су SharePoint и Microsoft Dataverse имају два различита назива која се односе на исту табелу или колону података:

  • Логичко име - Име које је гарантовано јединствено, не мења се након креирања, обично не дозвољава размаке или друге специјалне знакове и није локализовано на различите језике. Као резултат, име може бити криптично. Те називе користе професионални програмери. На пример, cra3a_customfield. Ова назив се такође може назвати име шеме или само име.

  • < ДИЦТ__име за приказ >Дисплаy наме - Име које је разумљиво и намењено да га виде крајњи корисници. Тај назив можда није јединствен, може се временом мењати, може садржавати размаке и било који Уникод знак и може бити локализован на различите језике. У складу са горњим примером, име за приказ може бити Прилагођено поље са размаком између речи.

Пошто су имена за приказ лакша за разумевање, апликације са подлогом ће их предложити као избор и неће предлагати логичка имена. Иако логичка имена нису предложена, ипак се могу користити ако их упишете индиректно.

На пример, замислите да сте додали Прилагођено поље у табелу у услузи Dataverse. Систем ће вам доделити логичко име које можете изменити само приликом креирања поља. Резултат би изгледао налик овоме:

Табела рачуна са доданим прилагођеним пољем, која приказује < ДИЦТ__име за приказ > Дисплаy наме </ДИЦТ__име за приказ >

Када креирате референцу на поље Пословни контакти, користиће се предлог 'Прилагођено поље', пошто је то име за приказ. Морају се користити једноструки наводници, јер ово име има размак:

Студијска трака формуле која приказује предлоге за називе поља налога са истакнутом < ДИЦТ__име за приказ > Дисплаy наме </ДИЦТ__име за приказ >

Након одабира предлога, на траци за формуле приказује се 'Прилагођено поље' и подаци се преузимају:

Студијска трака формуле која приказује употребу < ДИЦТ__име за приказ > Дисплаy наме </ДИЦТ__име за приказ >

Иако није предложено, могли бисмо користити и логичко име за ово поље. То ће резултирати преузимањем истих података. Појединачни наводници нису обавезни јер ово име не садржи размаке или посебне знакове:

Студијска трака формуле која приказује употребу логичког имена cr5e3_цустомфиелд за поље.

Иза кулиса, одржава се мапирање између имена за приказ која се виде у формулама и основних логичких имена. Пошто се логичка имена морају користити за интеракцију извором података, ово мапирање се користи за аутоматско конвертовање из тренутног имена за приказ у логичко име и то је оно што се види у мрежном саобраћају. Ово мапирање се такође користи за повратно конвертовање у логичка имена која се пребацују у нова имена за приказ, на пример, ако се име за приказ промени или креатор на другом језику уређује апликацију.

Белешка

Логичка имена се не преводе када се апликација премешта између окружења. За називе Dataverse системских табела и поља, ово не би требао представљати проблем, јер су логичка имена конзистентна у свим окружењима. Али било која прилагођена поља, попут cra3a_customfield у претходном примеру, може имати другачији префикс окружења (cra3a у овом случају). Пожељнија су имена за приказ, јер се могу подударити са именима за приказ у новом окружењу.

Разјашњавање назива

Пошто имена за приказ нису јединствена, исто име за приказ може се појавити више пута у истој табели. Када се то деси, логичко име ће бити додато на крај < ДИЦТ__име за приказ > Дисплаy наме у заградама за једно од више конфликтних имена. На основу горњег примера, ако је постојало друго поље са истим именом за приказ Прилагођено поље са логичким именом cra3a_customfieldalt, тада би предлози показали:

Студио формула бар који приказује употребу логичког имена cr5e3_цустомфиелдалт за раздвајање две верзије

Ниске вишезначних ознака имена додају се у другим ситуацијама у којима долази до неусаглашености имена, попут назива табела, избора и других Dataverse ставки.

Разјашњавање оператора

Неке функције креирају опсеге записа за приступање пољима табеле током обраде сваког записа, као што су Filter, AddColumns и Sum. Називи поља који су додати с опсегом записа замениће иста имена на другим местима у апликацији. Кад се то догоди, и даље можете приступати вредностима изван опсега записа помоћу оператора за разјашњавање @:

  • Да бисте приступили вредностима из угнежђених опсега записа, користите оператор @ са називом табеле којом управљате када користите овај образац:
    Табела[@ФиелдНаме]
  • Да бисте приступили глобалним вредностима, као што су извори података, колекције и променљиве контекста, користите образац [@ObjectName] (без ознаке табеле).

За више информација и примера, погледајте опсеге записа.