Kopīgot, izmantojot


Netipizēts objekts datu tips

netipizēts objekts ir datu tips Power Fx , kurā var būt jebkura datu struktūra, sarežģīta vai vienkārša. To nevar izmantot tieši, un ir nepieciešama izteikta pārvēršana par datu tipu. Ierakstiem, kas veikti netipa objektā var piekļūt, izmantojot punktu notāciju, un lauku ierakstos laukos var piekļūt tikai izpildlaikā.

netipizēts objekts ir konkrētu neierakstītu pakalpojumu sniedzēju atgriešanas veids. Pašlaik tikai funkcija ParseJSON () atgriež netipētu objektu.

Vienkāršie tipi

Netipēta objekta mainīgo vērtību nevar izmantot tiešā veidā. Jums vienmēr ir pareizi tas jāievada, izmantojot atbilstošo tipa konstruktoru.

Tālāk sniegtajos piemēros tiek pārvērsta netipēta objekta mainīgā vērtība, kas saucasUOValue.

Text(UOValue)
Value(UOValue)

Tālāk sniegtajā tabulā ir uzskaitīti datu tipi un atbilstošās funkcijas, lai pārvērstu netipa objektu par šo datu tipu.

Datu tips Function Apraksts
Boolean Būla() Konvertējot netipizēts objekts uz Būla, pamatā esošajai vērtībai ir jāattēlo Būla vai tips, ko var automātiski konvertēt (piemēram, virkne "patiess").
Krāsa ColorValue() vai RGBA() Krāsas var būt attēlotas Kaskādes tipa stila lapas (CSS) krāsu definīcijas notācijā kā virkne vai kā atsevišķi RGBA komponenti. Netipēto objektu var pārvērst pa tiešo no Stila lapu kaskadēšanas (CSS) krāsu definīcijas virknes, izmantojot ColorValue() funkciju vai no individuāla RGBA skaitļa krāsās, izmantojot RGBA() funkciju.
Valūta, skaitlis Vērtība() Konvertējot netipizēts objekts uz skaitli, pamatā esošajai vērtībai ir jāattēlo skaitlis vai tips, ko var automātiski konvertēt (piemēram, virkne "123,456").
Date, DateTime, Time DateValue(), TimeValue() vai DateTimeValue() Datumu, laiku un datetime var tieši pārvērst no netipēta objekta uz to attiecīgo tipu, ja tas ir norādīts ISO 8601 formātā. Citus formātus vispirms jākonvertē par tekstu, izmantojot funkciju Text() un pēc tam jāpārsūta uz funkciju DateValue(), TimeValue() vai DateTimeValue(), kas pēc noklusējuma izmantos pašreizējo lietotāja iestatījumus, lai nolasītu datumu un laiku.
GUID GUID() An netipizēts objekts var tieši konvertēt par GUID, ja pamatā esošais objekts apzīmē GUID vai ja tas attēlo virkni.
HyperLink, Attēls, multivide Teksts() Šie datu tipi ir teksta datu tipi, un tos var pārvērst par tekstu un pēc tam izmantot Power Fx.
Izvēle, divas opcijas Switch() vai If() Izvēles iespējas un divas opcijas tiek parādītas kā lokalizētas virknes Power Fx. Izvēles iespējas tiek atbalstītas ar skaitli un divām iespējām kā būla. No izvēles vai divām opcijām nav iespējams tiešā veidā konvertēt būlu, skaitli vai virkni, taču Switch() vai If() funkcijas var izmantot būla, teksta vai skaitļu vērtībai, lai pareizi piešķirtu izvēles vai divu opciju vērtību.
Ieraksts Nav datu No neievadīta objekta netiek veikta tieša pārvēršana par ieraksta struktūru, bet atsevišķus laukus var izgūt no neievadīta objekta, lai veidotu jaunu ierakstu.
Ieraksta atsauce Nav datu Ierakstu atsauces ir unikālas ar datu avotiem, un tās nav jēgpilnas netipētos objektos.
Entītija Tabula() un ForAll() Netipēts objekts var būt masīvs, ko var pārvērst par tabulu. Šie objekti var būt ierakstu masīvi vai vērtību masīvi, kas faktiski ir atsevišķu kolonnu tabulas. ForAll() var izmantot, lai izveidotu tabulu ar pilnībā ierakstītiem ierakstiem. Skatiet piemērus, kas zemāk sniegti šajā rakstā, lai uzzinātu vairāk.
Īsziņu Teksts() Tekstu var tieši pārvērst. Ja netipēts objekts ir skaitlis, jums šis netipētais objekts vispirms ir jāpārvērš skaitlī, izmantojot Value() funkciju, pirms pārvēršanas uz tekstu.

Ierakstu tipi

Laukiem var piekļūt mainīgajam, kas replicē netipētu objekta ierakstu, izmantojot ierakstiem regulāru punktu notāciju. Tomēr lauku esamību, nevar pārbaudīt, kamēr netiks izpildlaikā. Tā rezultātā nav pieejami arī intellisense pakalpojumi. Ja lauks neeksistē vai tā pamatā ir null vērtība, piekļuve tai rezultēsies Blank() vērtībā.

Katrs ieraksta lauks ir arī netipēts objekts, kas ir pienācīgi jāievada. Lauks var būt vienkārša tipa netipēts ieraksts. Ja tas ir ieraksts, varat pievienot punktu notāciju. Ja jebkāds no ķēdes laukiem nepastāv, tiks atgriezta vērtība Blank().

Tālāk sniegtajos piemēros tiek izmantoti lauki no netipēta objekta mainīgās vērtības, kas saucasUORecord.

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

Ja lauka nosaukums sastāv no nederīga identifikatora nosaukuma, piemēram, ja lauku nosaukumi sākas ar skaitli vai satur nederīgas rakstzīmes, piemēram, zilums, lauku nosaukumus var ievietot vienpēdiņās:

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

Masīvi

Netipizēta objekta mainīgais var ietvert masīvu. Kaut arī masīvs var būt ierakstu masīvs vai vienkāršu tipu masīvs, netipizēta objekta masīva konvertēšana tabulā, izmantojot Table() funkciju, vienmēr veidos vienas kolonnas tabulu ar netipizētu objektu. Tādām funkcijām kā ForAll() un Index() nav vajadzīgs, lai jūs vispirms izveidojat funkciju Table(), tādēļ nav ari vajadzīgs izmantot vienas kolonnas lauku Value,

Piemēram, lai netipizēta objekta masīvā, kurš saturs skaitļu vērtības ([1, 2, 3]) iegūtu otro skaitli, var izmantot šādu formulu, lai atgrieztu otro tabulas rindu un kolonnu pārvērstu par skaitli:

Value( Index( UOArray, 2 ) )

Ja vispirms netipizēts objekts tika pārvērsts par Table(), otrā rinda izveidotajā vienas kolonnas tabulā ir Value kolonna, kura satur netipizētu objektu:

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

Masīvam, kurā ir teksta kolonna, kas saucas Field, piemērojama tā pati metode. Netipizētam objektam var piekļūt tiešā veidā vai, ja jūs lietojat Table() funkciju, tad būs izveidota vienas kolonnas tabula ar netipizētu objektu.

Kolonnai Field no netipizēta objekta var piekļūt tiešā veidā, kad to atgriež Index() funkcija.

Text( Index( UORecordArray, 2 ).Field )

Izmantojot Table() funkciju, vispirms atgrieziet vienas kolonnas Value kolonnu, lai tiktu pie netipizēta objekta, pēc tam piekļūstiet Field kolonnai:

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

Lai pārvērstu ierakstu masīvu par ierakstītu tabulu, varat izmantot funkciju ForAll() un pārvērst katru atsevišķo lauku.

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

Ja netipizētais objekts vispirms tiek pārvērsts par tabulu, tādējādi atkal veidojot netipizēta objekta vienas kolonnas tabulu, jums lauku iegūšanai būs vajadzīga Value kolonna.

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