Делите путем


< ДИЦТ__нетипизирани објекат >Унтyпед објецт тип података

< ДИЦТ__нетипизирани објекат >Унтyпед објецт је тип података који Power Fx може да садржи било коју структуру података, сложену или једноставну. Не може се директно користити и захтева експлицитну конверзију у тип података. Пољима у записима у нетипизираном објекту може се приступити помоћу тачкасте нотације, а постојање поља се проверава само у време извршавања.

< ДИЦТ__нетипизирани објекат >Унтyпед објецт је врста повратка одређених неоткуцаних провајдера. Тренутно само функција ParseJSON() враћа нетипизиран објекат.

Једноставни типови

Вредност променљиве типа нетипизирани објекат не може се користити директно. Увек морате правилно да га откуцате помоћу одговарајућег конструктора типа.

Следећи примери конвертују вредност променљиве нетипизираног објекта под називом UOValue.

Text(UOValue)
Value(UOValue)

Следећа табела наводи типове података и одговарајуће функције за конвертовање нетипизираног објекта у тај тип података.

Тип података Function Опис
Логичка вредност Боолеан() Приликом претварања < ДИЦТ__нетипизирани објекат > Унтyпед објецт у боолеан , основна вредност мора да представља боолеан или тип који се може аутоматски конвертовати (као што је низ "труе").
Боја ЦолорВалуе () или РГБА() Боје могу бити представљене у каскадном опису дефиниције стила (CSS) као ниска или као појединачне RGBA компоненте. Нетипизиран објекат се може конвертовати директно из ниске дефиниције каскадног листа стилова (CSS) помоћу функције ColorValue() или од појединачних RGBA бројева у боју помоћу функције RGBA().
Валута, број Вредност() Приликом претварања < ДИЦТ__нетипизирани објекат > Унтyпед објецт на број , основна вредност мора да представља број или тип који се може аутоматски конвертовати (као што је низ "123.456").
Датум, датум-време, време ДатеВалуе(), ТимеВалуе() или ДатеТимеВалуе() Датум, време и датум-време могу се директно конвертовати из нетипизираног објекта у одговарајући тип, када су представљени у ISO 8601 формату. Друге формате прво морате конвертовати у текст помоћу функције Text(), а затим проследите у функцију DateValue(), TimeValue() или DateTimeValue() која ће подразумевано користити језик поставки тренутног корисника за интерпретацију датума и времена.
GUID ГУИД() Ан < ДИЦТ__нетипизирани објекат > Унтyпед објецт може бити директно конвертован у ГУИД ако основни објекат представља ГУИД, или ако представља стринг.
Хипервеза, слика, медији Текст() Ови типови података су текстуални типови података и могу се конвертовати у текст, а затим користити у услузи Power Fx.
Избор, Две опције Прекидач () или ако () Избори и две опције су представљени као локализоване жице у Power Fx. Избори су подржани бројем и две опције као боолеанс. Нема директне конверзије из логичке вредности, броја или ниске у избор или две опције, али функције Switch() или If() могу да се користе на логичкој, текстуалној или бројчаној вредности да би се исправно доделила вредност избора или две опције.
Запис Није примењиво Не постоји директна конверзија из нетипизираног објекта у структуру записа, али се појединачна поља могу преузети из нетипизираног објекта да би се креирао нови запис.
Референца записа Није примењиво Референце записа су јединствене за изворе података и немају смислену заступљеност у нетипизираним објектима.
Table Табела() и ФорАлл() Нетипизиран објекат може да представља низ који се може конвертовати у табелу. Ти објекти могу бити низови записа или низови вредности које су практично табеле са једном колоном. ФорАлл () може се користити за креирање табеле са потпуно откуцаним записима. За више информација, погледајте примере даље у овом чланку.
Текст Текст() Текст се може директно конвертовати. Ако нетипизирани објекат представља број, потребно је да пре конвертовања у текст конвертујете нетипизирани објекат у број користећи функцију Value().

Врсте записа

Пољима у променљивој која представља запис нетипизираног објекта можете да приступите користећи обичну тачкасту нотацију која се користи за записе. Међутим, постојање поља неће бити потврђено до извршавања. Као резултат тога, такође нема функције Intellisense. Ако поље не постоји или има основну вредност null, приступ ће резултирати вредношћу Blank().

Свако поље у запису је такође типа нетипизирани објекат и потребно га је исправно откуцати. Поље може бити нетипизиран запис једноставног типа. У случају да је то запис, можете да уланчате тачкасту нотацију. Ако неко поље у ланцу не постоји, враћа се Blank().

Следећи примери користе поља из променљиве нетипизираног објекта под називом UORecord.

Text(UORecord.StringField)
Value(UORecord.Field.ChildField)

У случају да се име поља састоји од неважећег имена идентификатора, на пример, када имена поља почињу бројем или садрже неважеће знакове као што је цртица, имена поља можете да ставите у једноструке наводнике:

untyped.'01'
untyped.'my-field'

Низови

Променљива нетипизираног објекта може да садржи низ. Иако низ може да буде низ записа или низ једноставних типова, конвертовање низа нетипизираног објекта у табелу помоћу функције Table() увек ће резултирати табелом са једном колоном нетипизираних објеката. Функције као што су ForAll() и Index() не захтевају да прво креирате Table() и као резултат тога не захтевају коришћење поља са једном колоном Value,

На пример, да бисте добили други број у низу нетипизираног објекта који садржи вредности бројева ([1, 2, 3]), можете користити следећу формулу за преузимање другог реда у табели и конвертовање колоне у број:

Value( Index( UOArray, 2 ) )

Ако је нетипизирани објекат прво конвертован у Table(), други ред у табели са једном колоном резултата је колона Value, која садржи нетипизиран објекат:

Value( Index( Table( UOArray ), 2 ).Value )

За низ записа који имају позвану текстуалну колону под називом Field, примењује се иста логика. Нетипизираном објекту се може приступити директно или ако ће коришћење функције Table() резултирати табелом са једном колоном нетипизираног објекта.

Колони Field се може приступити директно из нетипизираног објекта који је вратила функција Index().

Text( Index( UORecordArray, 2 ).Field )

Када користите функцију Table(), прво преузмите колону Value са једном колоном да бисте добили нетипизиран објекат, а затим приступите колони Field:

Text( Index( Table( UORecordArray ), 2 ).Value.Field )

Да бисте конвертовали низ записа у типизирану табелу, можете да користите функцију ForAll() и конвертујете свако појединачно поље.

ForAll( UORecordArray, { FirstField: Value(ThisRecord.FirstField), SecondField: Text(ThisRecord.SecondField) } )

Ако се нетипизирани објекат прво конвертује у табелу, опет, резултујућа табела са једном колоном нетипизираног објекта ће захтевати да користите колону Value да бисте добили поља.

ForAll( Table(UORecordArray), { FirstField: Value(ThisRecord.Value.FirstField), SecondField: Text(ThisRecord.Value.SecondField) } )