Deli z drugimi prek


Podatkovni tip netipiziranega objekta

Predmet brez vrste je vrsta podatkov v storitvi Power Fx, ki lahko vsebuje katero koli strukturo podatkov, zapleteno ali preprosto. Ni ga mogoče uporabiti neposredno in zahteva izrecno pretvorbo v vrsto podatkov. Do polj v zapisih v predmetu brez vrste je mogoče dostopati z zapisom s piko, obstoj polj pa se preveri le med delovanjem.

Predmet brez vrste je vrnjena vrsta določenih ponudnikov brez vrste. Trenutno samo funkcija ParseJSON() vrne predmet brez vrste.

Preproste vrste

Vrednosti spremenljivke vrste predmeta brez vrste ni mogoče uporabiti neposredno. Vedno jo morate pravilno vnesti z uporabo ustrezne vrste konstruktorja.

Naslednji primeri pretvorijo vrednost spremenljivke predmeta brez vrste, poimenovane UOValue.

Text(UOValue)
Value(UOValue)

Naslednja tabela navaja vrste podatkov in ustrezne funkcije za pretvorbo predmeta brez vrste v to vrsto podatkov.

Podatkovni tip Function Description
Logično Boolean() Pri pretvarjanju netipiziranega predmeta v logično vrednost mora osnovna vrednost predstavljati logično vrednost ali tip, ki se lahko samodejno pretvorjen (kot je niz "true").
Barva ColorValue() ali RGBA() Barve so lahko predstavljene v zapisu definicije barve s kaskadnega seznama slogov (CSS) kot niz ali kot posamezne komponente RGBA. Predmet brez vrste lahko pretvorite neposredno iz niza definicije barve s kaskadnega seznama slogov (CSS) z uporabo funkcije ColorValue() ali iz posameznih številk RGBA v barvo z uporabo funkcije RGBA().
Valuta, številka Value() Pri pretvorbi netipiziranega predmeta v število mora osnovna vrednost predstavljati število ali tip, ki se lahko samodejno pretvorjen (kot je niz "123.456").
Datum, DateTime, čas DateValue(), TimeValue() ali DateTimeValue() Vrste datum, čas in datetime je mogoče neposredno pretvoriti iz predmeta brez vrste v ustrezno vrsto, ko so predstavljene v obliki zapisa ISO 8601. Druge oblike zapisa je treba najprej pretvoriti v besedilo s funkcijo Text() in nato posredovati v funkcijo DateValue(), TimeValue() ali DateTimeValue( ), ki bo privzeto uporabila jezik nastavitev trenutnega uporabnika za interpretacijo datuma in časa.
GUID GUID() netipiziran objekt je mogoče neposredno pretvoriti v GUID, če osnovni objekt predstavlja GUID ali če predstavlja niz.
HyperLink, slika in predstavnost Text() Te vrste podatkov so besedilne vrste podatkov in jih je mogoče pretvoriti v besedilo in nato uporabiti v storitvi Power Fx.
Možnost, dve možnosti Switch() ali If() Vrsti Možnosti in dve možnosti sta predstavljeni kot lokalizirani nizi v storitvi Power Fx. Možnosti so podprte s številko in dvema možnostma kot logične vrednosti. Ni neposredne pretvorbe iz logične vrednosti, števila ali niza v možnost ali dve možnosti, ampak lahko funkcijo Switch() ali If() uporabite za logično, besedilno ali številčno vrednost za pravilno dodelitev vrednosti možnost ali dve možnosti.
Zapis Ni na voljo Ni neposredne pretvorbe iz predmeta brez vrste v strukturo zapisa, vendar je mogoče posamezna polja pridobiti iz predmeta brez vrste, da ustvarite nov zapis.
Sklic na zapis Ni na voljo Sklici na zapise so edinstveni za vire podatkov in nimajo pomembne ponazoritve v predmetih brez vrste.
Table Table() in ForAll() Predmet brez vrste lahko predstavlja polje, ki ga je mogoče pretvoriti v tabelo. Ti predmeti so lahko polja zapisov ali polja vrednosti, ki so dejansko tabele z enim stolpcem. ForAll() lahko uporabite za ustvarjanje tabele s popolnoma razvrščenimi zapisi. Za več informacij preglejte primere v nadaljevanju tega članka.
SMS-a Text() Besedilo je mogoče neposredno pretvoriti. Če predmet brez vrste predstavlja število, morate predmet brez vrste pred pretvorbo v besedilo najprej pretvoriti v število s funkcijo Value().

Vrste zapisov

Do polj v spremenljivki, ki predstavlja zapis predmeta brez vrste, lahko dostopate z običajnim zapisom s piko, ki se uporablja za zapise. Vendar pa obstoj polj ne bo preverjen do časa delovanja. Posledično tudi ni na voljo funkcij IntelliSense. Če polje ne obstaja ali ima temeljno vrednost null, bo dostop do polja vodil v vrednost Blank().

Vsako polje v zapisu je tudi vrsta predmeta brez vrste in mora biti pravilno razvrščeno. Polje je lahko zapis brez vrste preproste vrste. Če gre za zapis, lahko zapis s piko povežete v verigo. Če katero koli polje v verigi ne obstaja, se vrne vrednost Blank().

Naslednji primeri uporabljajo polja iz spremenljivke predmet brez vrste, poimenovane UORecord.

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

Če je ime polja sestavljeno iz neveljavnega imena identifikatorja, na primer, ko se imena polj začnejo s številko ali vsebujejo neveljavne znake, kot je vezaj, lahko imena polj postavite v enojne narekovaje:

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

Polja

Spremenljivka predmeta brez vrste lahko vsebuje polje. Čeprav je polje lahko polje zapisov ali polje preprostih vrst, bo pretvorba polja predmet brez vrste v tabelo z uporabo funkcije Table() vedno povzročila tabelo z enim stolpcem predmetov brez vrste. Pri funkcijah, kot sta ForAll() in Index() ni potrebno, da najprej ustvarite funkcijo Table() in uporabite polje z enim stolpcem Value.

Če želite na primer dobiti drugo število v polju predmet brez vrste, ki vsebuje številske vrednosti ( [1, 2, 3] ), lahko uporabite naslednjo formulo za pridobitev druge vrstice v tabeli in pretvorbo stolpca v število:

Value( Index( UOArray, 2 ) )

Če je bil predmet brez vrste najprej pretvorjen v Table(), je druga vrstica v rezultatu tabele z enim stolpcem stolpec Value, ki vsebuje predmet brez vrste:

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

Za polje zapisov, ki imajo besedilni stolpec z imenom Field, velja ista logika. Do predmeta brez vrste lahko dostopate neposredno, če pa uporabite funkcijo Table(), bo rezultat tabela z enim stolpcem predmeta brez vrste.

Do stolpca Field lahko dostopate neposredno iz predmeta brez vrste, ki ga vrne funkcija Index().

Text( Index( UORecordArray, 2 ).Field )

Ko uporabljate funkcijo Table(), najprej pridobite stolpec z enim stolpcem Value, da dobite predmet brez vrste, nato pa odprite stolpec Field:

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

Če želite pretvoriti polje zapisov v razvrščeno tabelo, lahko uporabite funkcijo ForAll() in pretvorite vsako posamezno polje.

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

Če je predmet brez vrste najprej pretvorjen v tabelo, bo nastala tabela predmeta brez vrste z enim stolpcem ponovno zahtevala, da za pridobitev polj uporabite stolpec Value.

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