Power Fx YAML формуласының грамматикасы
Ескертпе
Microsoft Power Fx — бұл кенеп бағдарламаларына арналған формула тілінің жаңа атауы. Бұл мақалалармен жұмыс әлі де жалғасуда, өйткені біз кенеп бағдарламаларынан тілді шығарамыз, оны басқа Microsoft Power Platform өнімдерімен біріктіреміз және оны ашық код ретінде қолжетімді етеміз. Тілге кіріспе үшін Microsoft Power Fx шолуымен бастаңыз.
Microsoft Power Fx бағдарламасында Excel бағдарламасына негізделген өрнектерге арналған грамматика жақсы қалыптасқан. Алайда Power Apps бағдарламасын және пайдаланушы интерфейстері формулаға арналған атауды өрнекке байланыстыруды қамтамасыз ететін басқа хосттарда пайдаланған кезде, формуланы байланыстыруды мәтін ретінде өңдеудің стандартты жолы жоқ.
Біз бұл байланыстырудың тілі ретінде салалық стандартты YAML тілін таңдадық. Осы жерде YAML формуласымен жұмыс істеуге арналған көптеген өңдегіштер, құралдар және кітапханалар бар. Бұл мақалада формулаларды YAML формуласында көрсету жолымыз сипатталады.
Қазіргі уақытта тек YAML ішкі жиынына қолдау көрсетеміз. Осы мақалада сипатталған құрылымдарға ғана қолдау көрсетіледі.
Мұнда кенеп бағдарламасын анықтайтын барлық нәрсе көрсетілмеген; қосымша ақпарат құрал шығаратын және тұтынатын басқа файлдар арқылы өтеді.
Жетекші тең белгісі
Ең алдымен барлық өрнектер жетекші тең белгісімен басталуы керек =
:
Visible: =true
X: =34
Text: |
="Hello, " &
"World"
=
белгісін үш себеп бойынша пайдаланамыз:
- Бұл өрнекті ұяшыққа байланыстыру үшін жетекші
=
белгісін пайдаланатын Excel бағдарламасына сәйкес келеді. - Бұл формула тілінің синтаксисінен тиімді түрде болдырмайды, сондықтан YAML оны талдауға тырыспайды. Әдетте, YAML
text: 1:00
минут және секунд ретінде санға түрлендіру арқылы өңдейді.=
кірістіру арқылы YAML өзінің жасырын теру ережелерін қолданбайды және формулаларға кері әсер етпейді.=
белгісін қолдану көп жағдайларды қамтиды, бірақ бәрін емес және сол ерекшеліктер келесі бөлімде сипатталған, Бір жолды формулалар. - Болашақта біз бір файлдағы екі формулаға да (
=
белгісімен басталады) және формулалар емес (=
белгісі жоқ) қолдау көрсетеміз, яғни Excel бағдарламасы сияқты. Біз мұны YAML және YAML емес Microsoft Power Platform бастапқы файлдарында орындай аламыз. Кез келген жерде формулаға қолдау көрсетіледі, басқы=
белгісі Power Apps формула өрнегін басқа статикалық шкала мәнінен ажыратады.
Бір жолды формулалар
Бір жолды формулалар келесі пішінде жазылады:
Атау:
SPACE
=
Өрнек
Қос нүкте мен теңдік белгі арасындағы кеңістік YAML тіліне сәйкес келуі қажет. Теңдік белгісі YAML өрнегінің әдеттегі түсіндірмесін бұзады, бұл жолдың қалған бөлігін Power Fx ретінде түсіндіруге мүмкіндік береді. Мысалы:
Text1: ="Hello, World"
Text2: ="Hello " & ", " & "World"
Number1: =34
Boolean1: =true
Time1: =1:34
#
сан белгісі және :
қос нүкте бір жолды формулалардың кез келген жеріне, тіпті олар тырнақшаға алынған мәтіндік жолда немесе идентификатор атауында болса да рұқсат етілмейді. Сандық белгіні немесе қос нүктені қолдану үшін формуланы көп жолды формула түрінде көрсету керек. Сандық белгі YAML тілінде түсініктеме ретінде, ал қос нүкте YAML тілінде жаңа атау картасы ретінде түсіндіріледі. Бір жолды түсіндірмеге түсіндірме қосу үшін //
деп басталатын Power Fx жол түсіндірмесін пайдаланыңыз.
Бір тырнақшалы және C тәрізді кері сызықтармен қалыпты YAML қолданысына қолдау көрсетілмейді; орнына көп жолды формуланы қолданыңыз. Бұл үйлесімділік үшін және Power Apps Studio және YAML бастапқы файлдарындағы формула жолағының арасындағы кесу/қоюды жеңілдетуге арналған.
Рұқсат етілген атаулар мен өрнектің құрылымын кенеп бағдарламалардың операторлары мен идентификаторлары құжаттамасынан қараңыз.
Көп жолды формулалар
Формулалар YAML блогының скалярлық индикаторларын қолдану арқылы бірнеше жолды қамтуы мүмкін:
Атау:
SPACE
( |
немесе |+
немесе |-
) =
Өрнек сызығы Өрнек-жол ...
Блоктың бөлігі болып табылатын барлық жолдар бірінші жол деңгейінен кем дегенде бір бос орынға шегінуі керек.
Мысалы:
Text1: |
="Hello, World"
Text2: |
="Hello" &
"," &
"World"
Импорттау кезінде YAML көп жолды скалярлық белгілерінің барлық пішіндері қабылданады, соның ішінде, мысалы >+
. Алайда, бос кеңістіктің дұрыс сақталуын қамтамасыз ету үшін тек |
, |+
немесе |-
жасалады.
Құрамдас данасы
Құрамдас YAML нысанының белгіленуін қолдану арқылы жасалады. Нысанның түрі сол жақтағы YAML тегінің бөлігі ретінде As
операторының көмегімен орнатылады. Контейнер басқару элементтері үшін нысандарды кірістіруге болады.
АтауыAs
Компонент-түрі [ .
Компонент-Үлгі ] :
( Күнә gle-Line-Formula немесе Көпжолды-Формула немесе Нысан-данасы ) ...
Блоктың бөлігі болып табылатын барлық жолдар бірінші жол деңгейінен кем дегенде бір бос орынға шегінуі керек.
Мысалы:
Gallery1 As Gallery.horizontalGallery:
Fill: = Color.White
Label1 As Label:
Text: ="Hello, World"
X: =20
Y: =40
Fill: |
=If( Lower( Left( Self.Text, 6 ) ) = "error:",
Color.Red,
Color.Black
)
Component-Type кез келген кенеп құрамдас бөлігі немесе басқару элементі болуы мүмкін. Нөмір сияқты негіз түрлеріне қолдау көрсетілмейді.
Component- Template Галерея сияқты әртүрлі үлгілері бар құрамдастарға арналған қосымша спецификатор. Құрамдастардың барлығында үлгілер болмайды.
Егер Аты өрісі арнайы таңбаларды қамтыса және бір тырнақшаға алынған болса, қос нүктенің сол жағындағы барлық тіркес алынын тасталады. Бұны келесі жолдардың бірі арқылы орындауға болады:
- Бүкіл сол жақ бөлікті жабу үшін бір тырнақшаны пайдаланыңыз, бұл ағымдағы бір тырнақшаны екі рет пайдалануды талап етеді:
'''A name with a space'' As Gallery':
- Бүкіл сол жақ бөлікті жабу үшін қос тырнақшаны пайдаланыңыз, бірақ атауында қос тырнақша жоқ екеніне көз жеткізіңіз:
"'A name with a space' As Gallery":
Құрамдас анықтамасы
Сәйкесінше құрамдастар қолдау көрсетілетін негізгі түрлердің бір данасын жасау арқылы анықталады. Негіз түрлерін тікелей енгізу мүмкін емес. Нысан анықтамасында сипаттарды негізгі түрінді ұсынатынға қосуға болады.
Қолдау көрсетілетін негізгі түрлер: CanvasComponent
Қарапайым сипат анықтамасы
Құрамдастар орналастырылған бағдарламамен байланыс орнату үшін сипаттарды пайдаланады.
Атауы:
( Бір жолды өрнек немесе Көпжолды өрнек )
Формула түрі өрнек түрі арқылы тұспалданады.
Кіріс сипаттар үшін өрнек құрамдас нақтыланған кезде бағдарламаға енгізілетін әдепкі мәнді ұсынады. Жасаушы бұл өрнекті өз қалауынша өзгерте алады, бірақ түрін өзгерте алмайды.
Шығыс сипаттар үшін өрнек орындалатын есептеуді ұсынады. Жасаушы бұл өрнекті өзгерте алмайды, ол құрамдаста жинақталған.
Қазіргі уақытта барлық сипаттар тек деректер ағыны болып табылады және жанама әсерлерді қамтуы мүмкін емес.
Қазіргі уақытта сипат туралы қосымша метадеректер мұнда анықталмаған, бірақ оның орнына ол .msapp
файлының басқа файлдарында, мысалы сипаттың сипаттамасында анықталған.
Мысалы:
DateRangePicker As CanvasComponent:
DefaultStart: |-
=// input property, customizable default for the component instance
Now()
DefaultEnd: |-
=// input property, customizable default for the component instance
DateAdd( Now(), 1, Days )
SelectedStart: =DatePicker1.SelectedDate // output property
SelectedEnd: =DatePicker2.SelectedDate // output property
YAML үйлесімділігі
YAML пікірлері
#
сан белгісімен бөлінген YAML жолының түсініктемелері бастапқы пішімде еш жерде сақталмайды. Оның орнына, формула ішінде түсініктемелерді //
таңбаларымен бөліңіз немесе түсініктемелерді /*
және */
белгісімен бұғаттаңыз. Қосымша ақпарат: Түсініктемелер
Жалпы ақаулықтарға арналған қателер
Power Fx және YAML грамматикасы үйлеспейтін немесе пайдаланушы үшін түсініксіз болуы мүмкін бірнеше жер бар. Бұл жағдайларда қате көрсетіледі.
Мысалы, келесі жағдайларда:
Text: ="Hello #PowerApps"
Record: ={ a: 1, b: 2 }
#
сандық белгісін YAML түсініктеме ретінде қабылдайды, тіпті ол Excel мәтіндік жол деп санайтын өріске кірістірілсе де (қос тырнақшаға алынған). Шатастырмау үшін бұл жағдай импорттау кезінде қате шығарады. Оның орнына YAML көп жолды пішінін қолдануға болады.
record
арналған мән жағдайында, YAML a:
және b:
мәндерін басқа ат картасын байланыстыру деп қарастырады. YAML бірдей атау картасын қайта пайдалануға мүмкіндік береді, ал соңғысы алдыңғы анықтамалардың бәрін жоққа шығарады. Бұл төмен кодты жасаушы үшін түсініксіз болып және сипат формуласын жоғалтуға әкелуі мүмкін болғандықтан, бірдей ат екі рет кездессе, қате көрсетіледі.