Vrste podatkov

Informacije se pretakajo skozi Power Fx v majhnih, diskretnih vrednostih, kot so celice preglednice. Podatki v poljih »Rojstni dan« in »Obletnica« se na primer pretekajo kot vrednost »Datum«, ki vključuje leto, mesec in dan. Power Fx oblikuje te vrednosti, omeji vnose na to, kar je primerno za posamezno vrednost, in da vrednosti v skupno rabo z zbirko podatkov. Rojstni dnevi in obletnice se lahko razlikujejo glede na ljudi, vendar jih sistem obravnava na enak način. V tem primeru je Datum primer vrste podatkov.

V tem članku so razloženi posamezni podatkovni tipi v dodatku Power Fx, kako delujejo in kako se preslikajo v zunanje vire podatkov.

Podatkovni tip Description Primeri
Boolean Vrednost true ali false. Uporabite ga lahko neposredno v funkcijah If, Filter in drugih funkcijah brez primerjave. res
Izbira Izbira iz nabora možnosti, podprta s številko. Ta vrsta podatkov združuje besedilno oznako, ki jo je mogoče lokalizirati, s številčno vrednostjo. Oznaka je prikazana v aplikaciji, številčna vrednost pa se shrani in uporabi za primerjave. Funkcija Type podpira ta podatkovni tip, če uporabite primerek polja »Izbira « po imenu. ThisItem.OrderStatus
barva Specifikacija barve, ki vključuje kanal alfa. Barva. Rdeča
ColorValue ("#102030")
RGBA (255, 128, 0, 0,5)
Valuta Vrednost valute, shranjena v številu s plavajočo vejico. Vrednosti valut so iste kot vrednosti številk z možnostmi oblikovanja valute. Funkcija Type ne podpira podatkovnega tipa » Valuta«. 123
4.56
Datum Datum brez ure v časovnem pasu uporabnika aplikacije. Datum (2019, 5, 16)
Datum in čas Datum s časom v časovnem pasu uporabnika aplikacije. DateTimeValue( "16. maj, 2019 1:23:09 popoldan" )
decimalno Število z visoko natančnostjo, operacijami z osnovo 10 in omejenim obsegom. 123
Decimalno ("1,2345")
Dynamic ( formerly UntypedObject) Vrsta vrednosti je dinamična in se lahko med izvajanjem razlikuje. Dinamična vrednost je lahko katera koli obstoječa vrsta in jo je mogoče pretvoriti v združljive vrste s funkcijami, kot so Boolean(), Value(), Table()itd. Če želite več informacij, glejte Dinamične vrednostiin Delo s funkcijo JSON. ParseJSON("{ ""Polje"" : 1234 }").Polje
Lebdi Število s standardno natančnostjo, operacijami z osnovo 2 in širokim razponom. 123
8.903e121
1.234e-200
GUID Globalni enolični identifikator. GUID()
GUID( "123e4567-e89b-12d3-a456-426655440000")
Hiperpovezava Besedilni niz, ki vsebuje hiperpovezavo. "";https://powerapps.microsoft.com"
Slika Besedilni niz URI za sliko v obliki zapisa .jpeg, .png, .svg, .gifali drugi skupni obliki zapisa spletne slike. Funkcija Type ne podpira podatkovnega tipa »Slika«. MyImage dodan kot vir aplikacije
"";https://northwindtraders.com/logo.jpg"
"appres://blobmanager/7b12ffa2..."
Mediji Besedilni niz URI-ja za video ali zvočni posnetek. Funkcija Type ne podpira podatkovnega tipa » Predstavnost«. MyVideo dodan kot vir aplikacije
"";https://northwindtraders.com/intro.mp4"
"appres://blobmanager/3ba411c..."
številka Vzdevek za Decimal (večina Power Fx gostiteljev) ali Float (aplikacije Canvas). Če lahko v situaciji uporabite poljubno število, uporabite možnost Število za največjo združljivost. 123
0,0123
1e4
Zapis Zapis vrednosti podatkov. Ta sestavljeni podatkovni tip vsebuje primerke drugih vrst podatkov, navedenih v tem članku. Če želite več informacij, glejte Delo s tabelami. Funkcija Type podpira ta podatkovni tip, če uporabite primerek zapisa. { Podjetje: "Northwind Traders",
Osebje: 35,
Neprofitna organizacija: false }
Referenčni zapis Sklic na zapis v tabeli. Ti sklici se pogosto uporabljajo pri mnogomorfnih iskanih funkcijah. Če želite več informacij, glejte Delo s sklici. Funkcija Type ne podpira tega podatkovnega tipa. Prvi (Računi). Lastnik
Tabela Tabela zapisov. Vsi zapisi morajo imeti enaka imena polj in podatkovne tipe, izpuščena polja pa so obravnavana kot prazna. Ta sestavljeni podatkovni tip vsebuje primerke drugih vrst podatkov, navedenih v tem članku. Če želite več informacij, glejte Delo s tabelami. Funkcija Type podpira ta podatkovni tip, če uporabite primerek tabele. Tabela( { Ime: "Sidney",
Priimek: "Higa" },
{ Ime: "Nancy",
Priimek: "Anderson" } )
Besedilo Besedilni niz Unicode. "Pozdravljen, svet"
Čas Čas brez datuma v časovnem pasu uporabnika aplikacije. Čas (11, 23, 45)
Praznina Uporablja se le z vedenjem, ki ga je določil uporabnik, kar pomeni, da funkcija nima vrnjene vrste. Funkcija Type ne podpira tega podatkovnega tipa. Čeprav funkcija nima vrnjene vrste ali vrednosti, lahko vedno vrne napako. Hi(): Void = { Notify( "Pozdravljeni!" ) }
da/ne Izbira iz nabora dveh možnosti, podprta z logično vrednostjo. Ta vrsta podatkov združuje besedilno oznako, ki jo je mogoče lokalizirati, z logično vrednostjo. Oznaka je prikazana v aplikaciji, logična vrednost pa se shrani in uporabi za primerjave. Funkcija Type podpira ta podatkovni tip, če uporabite primerek polja »Da/ne« po imenu. Ta predmet. Obdavčljivo

Številni od teh vrst podatkov so podobni in imajo enako temeljno predstavitev, kot je polje hiperpovezave , ki se obravnava kot besedilo. Dodatni podatkovni tipi omogočajo boljše privzete izkušnje v obrazcih in drugih kontrolnikih.

Prazno

Vsi podatkovni tipi imajo lahko vrednost prazno (brez vrednosti). Za ta koncept se v zbirkah podatkov pogosto uporablja izraz »null«.

Uporabite funkcijo Blank s funkcijoSet ali Patch, da nastavite spremenljivko ali polje na prazno. Na primer Set( x, Blank() ) odstrani vrednost v globalni spremenljivki x.

Preskus prazne vrednosti s funkcijo IsBlank . Zamenjajte morebitne prazne vrednosti z nepraznimi vrednostmi z uporabo funkcije Coalesce.

Ker vsi podatkovni tipi podpirajo prazne, imajo podatkovni tipi »Logična vrednost« in »Dve možnosti« tri možne vrednosti.

Vse te štiri vrste podatkov temeljijo na besedilnem nizu Unicode.

Vdelano besedilo

Nizi vdelanega besedila v formuli so obdani z dvojnimi narekovaji. Uporabite dva dvojna narekovaja skupaj, da bosta predstavljala eno dvojni narekovaj v besedilnem nizu. Na primer, z uporabo naslednje formule v lastnosti OnSelect kontrolnika Button:

Notify( "Jane said ""Hello, World!""" )

Prikaže trak, ko pritisnete gumb, pri katerem izpustite prvi in zadnji dvojni narekovaj (ker ločita besedilni niz) in ponovljene dvojne narekovaje okoli živega sveta! nadomestijo z enim dvojnim narekovajem:

Pojavno obvestilo s sporočilom »Jane said

Enojni narekovaji se uporabljajo za imena identifikatorjev, ki vsebujejo posebne znake in v besedilnem nizu nimajo posebnega pomena.

Interpolacija nizov

Za vdelavo formul v besedilni niz lahko uporabite interpolacijo nizov. S tem pristopom je pogosto lažje delati in vizualizirati izhod kot z uporabo Concatenate funkcije ali & operatorja.

Pred besedilni niz dodajte znak za dolar $ in formulo, ki jo želite vdelati, obdajte z zavitimi oklepaji { }. Če želite v besedilni niz vključiti zaviti oklepaj, uporabite dvojni zaviti oklepaj: {{ ali }}. Interpolacijo nizov lahko uporabite povsod, kjer je mogoče uporabiti standardni besedilni niz.

Recimo, da je v tej formuli globalna spremenljivka Apples nastavljena na vrednost 3, globalna spremenljivka Bananas pa na vrednost 4:

$"We have {Apples} apples, {Bananas} bananas, yielding {Apples+Bananas} fruit total."

Ta formula vrne besedilni niz We have 3 apples, 4 bananas, yielding 7 fruit total (Imamo 3 jabolka, 4 banane, skupaj 7 sadežev). Spremenljivki Apples (Jabolka) in Bananas (Banane) se vstavita v besedilo in s tem zamenjata zavite oklepaje, prav tako se vstavi rezultat matematične formule Apples+Bananas (Jabolka+Banane). Presledki in drugi znaki okoli zavitih oklepajev se ohranijo.

Vdelane formule lahko vključujejo poljubne funkcije ali operatorje. Zahtevano je le to, da lahko rezultat formule vsilite besedilnim nizom. Na primer, ta formula v pozdrav vstavi Vzdevek , če je naveden, ali Ime če ni:

$"Welcome {Coalesce( NickName, FirstName )}, it's great to meet you!"

Če je spremenljivka NickName nastavljena na »Joe«, bo formula vrnila naslednji besedilni niz: Welcome Joe, it's great to meet you! (Pozdravljen, Joe, lepo, da sva se spoznala!). Če pa je spremenljivka NickName (Vzdevek) prazna in spremenljivka FirstName (Ime) vsebuje vrednost »Joseph«, bo ta formula ustvarila besedilni niz Dear Joseph, great to meet you! (Dragi Joseph, lepo da sva se spoznala!).

Pri interpolaciji nizov je mogoče v vdelano formulo vključiti standardne besedilne nize. Če na primer ni navedena niti spremenljivka NickName niti spremenljivka FirstName, ju lahko nadomestimo s spremenljivko "Friend":

$"Welcome {Coalesce( NickName, FirstName, "Friend" )}!"

Interpolacije nizov je mogoče tudi ugnezditi. Oglejmo si ta primer, pri katerem se v pozdravu kombinirajo spremenljivke First (Ime), Middle (Srednje ime) in Last (Priimek). Tudi če sta ena ali dve od teh vrednosti prazni, se med deli imena ohrani pravilno število presledkov. Če ni na voljo nobenega od teh delov imena, se bo interpolacija notranjega niza strnila v prazen niz in funkcija Coalesce jo bo zamenjala s spremenljivko "Friend".

$"Welcome {Coalesce( Trim( $"{First} {Middle} {Last}"}), "Friend" )}!"
Ime Na sredino Zadnja Rezultat
John Qunicy Doe Welcome John Quincy Doe!
John prazno Doe Welcome John Doe!
prazno prazno Doe Welcome Doe!
prazno prazno prazno Welcome Friend!

Prelomi vrstic

Vdelani besedilni nizi lahko vsebujejo prelome vrstic. Denimo, da je lastnost Text (Besedilo) kontrolnika Label (Oznaka) nastavljena takole:

"Line 1
Line 2
Line 3"

Rezultat te formule so tri vrstice, prikazane v kontrolniku oznake:

Vdelan besedilni niz in nadzor oznake, ki prikazuje tri vrstice z vrstico 1, vrstico 2 in vrstico 3.

Nove vrstice so podprte tudi z interpolacijo nizov:

$"Line {1}
Line {1+1}
Line {1+1+1}"

Rezultat je enak:

Interpolacijska formula niza in kontrolnik oznake, ki prikazuje tri vrstice z vrstico 1, vrstico 2 in vrstico 3.

Slikovni in predstavnostni viri

Prek menija Datoteka lahko dodate slikovne, video in avdio datoteke kot vire aplikacije. Ime uvožene datoteke postane ime vira v aplikaciji. Na tej grafiki je bil v aplikacijo dodan logotip Northwind Traders, ki se imenuje nwindlogo:

Vir Northwind.

Za uporabo tega vira v aplikaciji določite vir v lastnosti Image kontrolnika Image:

Slika severnega vetra.

URI-ji za slike in druge predstavnosti

Zadnji primer lahko pogledamo podrobneje, tako da nastavimo lastnost Text kontrolnika Label na nwindlogo. Oznaka prikazuje besedilni niz:

Besedilo Northwind.

Aplikacije s platnom se sklicujejo na vsako sliko ali drugo predstavnostno datoteko, najsi je v oblaki ali dodana kot vir aplikacije, z besedilnim nizom URI.

Na primer, lastnost Image (Slika) kontrolnika slike poleg virov aplikacije sprejme tudi povezave do slik v spletu, kot na primer "https://northwindtraders.com/logo.jpg". Lastnost sprejema tudi slike v vrstici, ki uporabljajo shemo URI podatkov, kot v tem primeru:

"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAFAQMAAACtnVQoAAAABlBMVEUAAAB0J3UMNU6VAAAAAXRSTlMAQObYZgAAABRJREFUCNdjUGJgCGVg6GgAkkA2AA8/AffqCEBsAAAAAElFTkSuQmCC"

Ta URI prikazuje povečano različico dveh vijoličnih diamantov:

Dvojni diamanti.

Prikažete lahko najnovejšo sliko, zajeto s kontrolnikom Camera, če nastavite lastnost Image slikovnega kontrolnika na lastnost Photo kontrolnika kamere. Aplikacija ohrani sliko v pomnilniku in lastnost Photo kontrolnika kamere vrne sklic URI na sliko. Na primer, lahko posnamete fotografijo in lastnost Photo kamere bi lahko vrnila "appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1".

URI uporabite za sklicevanje na sliko ali drugo predstavnostno datoteko, shranjeno v zbirki podatkov. Na ta način aplikacija ne pridobi dejanskih podatkov, dokler niso potrebni. Na primer priloga v tabeli Microsoft Dataverse lahko vrne »appres://datasources/Contacts/table/...« Kot v primeru kamere lahko tudi sliko prikažete tako, da nastavite lastnost Slika kontrolnika slike na ta sklic, ki pridobi binarne podatke.

KO shranite vrsto predstavnostnih podatkov, kot je slika, v zbirko podatkov, aplikacija pošlje dejansko sliko ali predstavnostne podatke, ne pa sklica URI.

Omejitve velikosti

Kot besedilni nizi in URI-ji te vrste podatkov nimajo prednastavljene omejitve dolžine.

Binarni podatki, na katere se nanašajo te vrste podatkov, tudi nimajo prednastavljenih omejitev glede velikosti. Na primer, slika, zajeta s kontrolnikom kamere, ki je navedena kot »appres://...« je lahko tako velika in visoka ločljivost, kot jo zmore kamera naprave. Ločljivost, hitrost sličic in drugi atributi predstavnostnih datotek niso omejeni na vrsto podatkov, specifični kontrolniki za predvajanje in zajemanje predstavnosti pa lahko imajo svoje omejitve.

Vse velikosti podatkov pa so odvisne od količine razpoložljivega pomnilnika v aplikaciji. Brskalniki, ki se izvajajo v namiznem računalniku, običajno podpirajo več kot 100 MB podatkov. A v napravi, kot je telefon, je lahko količina razpoložljivega pomnilnika precej nižja, običajno v razponu 30–70 MB. Če želite ugotoviti, ali vaša aplikacija deluje znotraj teh omejitev, preizkusite običajne scenarije na vseh napravah, v katerih naj bi se izvajala.

Priporočamo, da podatke zadržite v pomnilniku, tako dolgo, kot je potrebno. Takoj ko je mogoče, naložite slike v zbirko podatkov; slike prenesite samo, ko jih uporabnik aplikacije zahteva.

številke

opomba,

Power Apps podpira le plavajoče danes in je vrsta vseh številk. Podpora za decimal bo kmalu dodana.

Power Fx podpira dve vrsti števil: Decimal in Float (s sinonimi Number in Valuta).

Decimalno je najboljše za večino poslovnih izračunov. Natančno lahko predstavi števila z osnovo 10, kar pomeni, da 0.1 je mogoče natančno predstaviti in se med izračuni izogne ​​napakam pri zaokroževanju. Ima dovolj velik razpon za vse poslovne potrebe, do 1028 z do 28 ciframi natančnosti. Decimal je privzeti številski podatkovni tip za večino Power Fx gostiteljev, ki se uporablja, če preprosto pišete 2*2.

Lebdenje je najboljše za znanstvene izračune. Predstavlja lahko števila v večjem obsegu, do 10308. Natančnost je omejena na 15 decimalnih mest, matematika pa temelji na osnovi 2, zato ne more natančno predstavljati nekaterih pogostih decimalnih vrednosti. Funkcija Float ima tudi višjo učinkovitost delovanja in ima prednost, če to ni nujno dejavnik in natančnost.

Decimalna števila

Podatkovni tip Decimal najpogosteje uporablja .NET decimalni podatkovni tip. Nekateri gostitelji, na primer stolpci s formulo Dataverse, ki se izvajajo v strežniku SQL Server, uporabljajo decimalni podatkovni tip strežnika SQL Server.

Decimal izračunava tako, kot ste se učili v šoli, z uporabo 10-mestne osnove, kar je pomembno, da se izognete napakam pri zaokroževanju zaradi zelo majhnih razlik, ki se lahko kopičijo pri uporabi matematike z osnovo 2 (kot jo uporablja Lebdeči).

Razpon je od pozitivnega 79,228,162,514,264,337,593,543,950,335 do negativnega 79,228,162,514,264,337,593,543,950,335. Decimalno ločilo lahko postavite kamor koli znotraj teh števil, kar zagotavlja do 28 števk natančnosti in je še vedno natančno predstavljeno. Na primer, 79,228,162,514,264.337593543950335 je lahko natančno predstavljen, kot tudi 7.9228162514264337593543950335.

Številke s plavajočo vejico

Podatkovni tip Float , znan tudi kot Number ali Currency, uporablja IEEE 754 plavajočo vejico dvojne natančnosti standard. Ta standard zagotavlja velik razpon številk za delo, od –1,79769 x 10308 do 1,79769 x 10308. Najmanjša vrednost, ki je lahko zastopana, je 5 x 10–324.

Float lahko natančno predstavlja cela števila (ali cela števila) med –9,007,199,254,740,991 (–(253 – 1)) in 9,007,199,254,740,991 (253 – 1), vključno. Ta obseg je večji od 32-bitnih (ali 4-bajtnih) vrst podatkov celih števil, ki jih zbirke podatkov splošno uporabljajo. Toda aplikacije delovnega območje ne morejo prikazovati 64-bitnih (ali 8-bajtnih) vrst podatkov celih števil. Morda boste želeli shraniti številko v besedilno polje ali uporabiti izračunani stolpec, da naredite kopijo številke v besedilnem polju, tako da se preslika v Besedilne podatke vnesite aplikacijo za platno. Na ta način lahko te vrednosti zadržite, prikažete in vnesete ter jih medsebojno primerjate, da ugotovite, ali so enake; vendar na tak način ne morete zanje izvajati numeričnih izračunov.

Aritmetika s plavajočo vejico je približek, zato lahko občasno poda nepričakovane rezultate z veliko dokumentiranimi primeri. Lahko bi pričakovali, da formula 55 / 100 * 100 vrne točno 55 in (55 / 100 * 100) - 55 vrne točno nič. Toda slednja formula vrne 7,1054 x 10–15, kar je zelo malo, ni pa nič. Ta majhna razlika običajno ne povzroča težave in aplikacijo jo odstrani z zaokroževanjem, ko je prikazan rezultat. Toda majhne razlike se lahko v nadaljnjih izračunih povečujejo in na videz dajejo napačen odgovor.

Sistemi zbirk podatkov pogosto shranjujejo valute in izvajajo izračune z uporabo desetiške matematike, ki ponuja manjši razpon, a večji nadzor nad natančnostjo. Privzeto aplikacije s platnom preslikajo valute v in iz vrednosti s plavajočo vejico; zato se lahko rezultat razlikuje od izračunov, ki so izvedeni v izvorni vrsti decimalnih podatkov. Glede na potrebe po natančnosti aplikacije boste morda želeli te vrednosti uporabiti kot besedilo, kot je opisano za velika cela števila.

Privzete vrednosti in konverzije

opomba,

Power Apps podpira le plavajoče danes in je vrsta vseh številk. Podpora za decimal bo kmalu dodana.

Večina Power Fx gostiteljev privzeto uporablja Decimal . Imeti to privzeto pomeni:

  • Dobesedna števila v formulah. Število 1.234 se interpretira kot Decimalno vrednost. Na primer, formula 1.234 * 2 interpretira 1.234 in 2 kot Decimal in vrne a Decimalni rezultat.
  • Funkcija vrednosti. Value( "1.234" ) vrne Decimalno vrednost. Na primer, v formuli Value( "1.234" ) * 2 funkcija Vrednost interpretira vsebino besedilnega niza "1.234" kot Decimalno.

Za delo z vrednostmi Float se uporablja funkcija Float . Če razširimo naš primer, Float( 1.234 ) pretvori Decimal1.234 v Float. Plavajočo lahko uporabite tudi kot zamenjavo za Vrednost za pretvorbo niza, ki vsebuje število s plavajočo vejico, kot je Float( "1.234" ) v a Float vrednost, ki je potrebna, če števila ni mogoče predstaviti kot a Decimalno.

Če povzamemo:

Uporaba decimalno Lebdi
Dobesedna števila v formulah 1.234 Float( 1.234 )
Float( "1.234" )
Pretvorba iz besedilnega niza Value( "1.234" )
Decimal( "1.234" )
Float( "1.234" )
Pretvorba med številskimi vrstami Decimal( float ) Float( decimal )
Pretvorba v besedilni niz Text( decimal ) Text( float )

Mešanje številskih tipov

Plavajoče in Decimalne vrednosti je mogoče poljubno mešati. Pri mešanju se decimalne vrednosti pretvorijo v plavajoče vrednosti zaradi večjega obsega. Ker lahko ta pretvorba povzroči izgubo natančnosti, je pomembno, da ju ne mešate brez potrebe. Ker je Decimal privzeti dobesedni podatkovni tip, večina številskih funkcij pa ohrani vrsto, se lahko razmeroma preprosto izognete premikanju v plavajoče, ne da bi ga hoteli.

Na primer, upoštevajte naslednji izračun z uporabo pac power-fx repl po namestitvi Power Platform CLI. Ker sta obe števili decimalni, se izračun izvede v decimalnem rezultatu pa ostane popolna natančnost:

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

Če bi namesto tega drugi operand spremenili v Float , bi bil celoten izračun izveden v Float, in majhen delček bi bil izgubljen:

>> 1.0000000000000000000000000001 * Float(2)
2

Datum, čas in DateTime

Časovni pasovi

Vrednosti datuma/časa spadajo v te kategorije:

  • Lokalni uporabnik: Te vrednosti so shranjene v UTC (Univerzalni koordinirani čas), vendar časovni pas uporabnika aplikacije vpliva na to, kako aplikacija prikazuje te vrednosti in kako jih določi uporabnik aplikacije. Primer je, da je isti trenutek prikazan drugače uporabniku v Kanadi, kot uporabniku na Japonskem.
  • Neodvisno od časovnega pasu: Aplikacija prikazuje te vrednosti na enak način in uporabnik aplikacije jih določi na enak način, ne glede na časovni pas. Isti trenutek je prikazan na isti način uporabniku v Kanadi in uporabniku na Japonskem. Ustvarjalci aplikacij, ki ne pričakujejo, da se bodo njihove aplikacije izvajale v različnih časovnih pasovih, uporabljajo te vrednosti, ker so na splošno preprostejše.

Ta tabela prikazuje nekaj primerov:

Vrsta datuma/časa Vrednost, shranjena v zbirki podatkov Vrednost, prikazana in vnesena 7 ur zahodno od UTC Vrednost, prikazana in vnesena 4 ure vzhodno od UTC
Lokalni uporabnik Nedelja,19.maj2019
4:00
Sobota,18.maj2019
21:00
Nedelja,19.maj2019
8:00
Neodvisno od časovnega pasu Nedelja,19.maj2019
4:00
Nedelja,19.maj2019
4:00
Nedelja,19.maj2019
4:00

Za datume/čase Lokalno pri uporabniku aplikacije s platnom uporabljajo časovni pas brskalnika ali naprave, aplikacije, ki temeljijo na modelu, pa uporabljajo nastavitve uporabnika v storitvi Dataverse. Te nastavitve se običajno ujemajo, vendar se rezultati razlikujejo, če se te nastavitve razlikujejo.

Uporabite funkciji DateAdd in TimeZoneInformation za pretvorbo lokalnega časa v UTC in spet nazaj. Glejte primere na koncu dokumentacije za ti funkciji.

Številski ekvivalenti

Aplikacije s platnom držijo in izračunajo vse vrednosti datuma/časa, bodisi Lokalno pri uporabniku ali Neodvisno od časovnega pasu v UTC. Aplikacija prevede vrednosti na podlagi časovnega pasu uporabnika aplikacije, ko jih prikaže in ko jih uporabnik aplikacije določi.

Ko aplikacija s platnom odčita vrednost Neodvisno od časovnega pasu iz vira podatkov ali zapiše tako vrednost v vir podatkov, aplikacija samodejno prilagodi vrednost, da izravna časovni pas uporabnika aplikacije. Aplikacija nato obravnava vrednost kot vrednost UTC, skladno z vsemi drugimi vrednostmi datuma/časa v aplikaciji. Zaradi te izravnave je prikazana izvorna vrednost Neodvisno od časovnega pasu, ko uporabnik prilagodi vrednost UTC za časovni pas uporabnika aplikacije.

To vedenje lahko podrobneje opazujete, tako da uporabite funkcijo Value za dostop do temeljne številčne vrednosti za vrednost datuma/časa. Ta funkcija vrne vrednost datuma/časa kot število milisekund od 1. januarja 1970, 00:00:00.000 UTC.

Ker je vsaka vrednost datuma/časa zadržana v UTC, formula Value( Date( 1970, 1, 1 ) ) ne bo vrnila nič v večini predelov sveta, ker funkcija Date vrne datum v UTC. Na primer, formula bi vrnila 28.800.000 v časovnem pasu, ki je odmaknjen od UTC za osem ur. To število odraža število milisekund v osmih urah.

Če se vrnemo k našemu primeru:

Vrsta datuma/časa Vrednost, shranjena v zbirki podatkov Vrednost, prikazana in vnesena 7 ur zahodno od UTC Vrednost funkcija vrne
Lokalni uporabnik Nedelja,19.maj2019
4:00
Sobota,18.maj2019
21:00
1,558,238,400,000
(Nedelja,19.maj2019,
4:00 UTC)
Neodvisno od časovnega pasu Nedelja,19.maj2019
4:00
Nedelja,19.maj2019
4:00
1,558,263,600,000
(Nedelja,19.maj2019,
11:00 UTC)

Pretvorba časov Unix

Časi Unix odražajo število sekund od 1. januarja 1970, 00:00:00 UTC. Ker aplikacije s platnom uporabljajo milisekunde namesto sekund, lahko med njima pretvarjate tako, da vrednost pomnožite ali delite s 1000.

Na primer, čas Unix prikazuje 9. september 2001, ob 01:46:40 UTC kot 1.000.000.000. Za prikaz te vrednosti datuma/časa v aplikaciji s platnom, pomnožite tisto številko s 1000, da jo pretvorite v milisekunde, nato pa jo uporabite v funkciji Text. Formula Text( 1000000000 * 1000, DateTimeFormat.UTC ) vrne niz 2001-09-09T01:46:40.000Z.

Toda funkcija vrne Sobota, 8. september, 2001 18:46:40, če uporabite obliko zapisa DateTimeFormat.LongDateTime24 v časovnem pasu, ki je -7 ur odmaknjen od UTC (7 zahodno od UTC). Ta rezultat prikaže vrednost DateTime pravilno na podlagi lokalnega časovnega pasu.

Za pretvorbo v čas Unix, delite rezultat iz možnosti Vrednost s 1000:
RoundDown(Vrednost(UnixTime) / 1000, 0)

Če potrebujete čas Unix v vrednosti Date za nadaljnje izračune ali prikaz v storitvi Power Apps, uporabite to formulo:
DateAdd(Datum(1970,1,1), UnixTime, Sekunde)

SQL Server

SQL Server ima Datetime, Datetime2 in druge podatke datuma/časa, ki ne vključujejo odmika časovnega pasu in ne navajajo, v katerem časovnem pasu so. Aplikacije s platnom domnevajo, da so te vrednosti shranjene v UTC, in jih obravnavajo kot Lokalno pri uporabniku. Če naj bi bile vrednosti neodvisne od časovnega pasu, popravite prevode UTC z uporabo funkcije TimeZoneOffset.

Aplikacije s platnom uporabljajo vključene informacije časovnega pasu v poljih Datetimeoffset, ko pretvarjajo ponazoritev UTC znotraj aplikacije. Aplikacije vedno uporabljajo UTC kot časovni pas (ničelni odmik časovnega pasu), ko zapisujejo podatke.

Aplikacije s platnom berejo in zapisujejo vrednosti vrste podatkov Čas v strežniku SQL Server kot besedilne nize v obliki zapisa trajanja ISO 8601. Na primer, morate razčleniti to obliko zapisa niza in uporabiti funkcijo Time za pretvorbo besedilnega niza "PT2H1M39S" v vrednost Čas:

With(
    Match( "PT2H1M39S", "PT(?:(?<hours>\d+)H)?(?:(?<minutes>\d+)M)?(?:(?<seconds>\d+)S)?" ),
    Time( Value( hours ), Value( minutes ), Value( seconds ) )
)
// Result: 2:01 AM (as shown in a label control, use the Text function to see the seconds)

Mešanje informacij datuma in časa

Datum, Čas in DatumUra imajo različna imena, vendar imajo vsi iste informacije o datumih in urah.

Vrednost Datum lahko vključuje informacije o času, ki je običajno polnoč. Vrednost Čas lahko vsebuje informacije o datumu, ki je običajno 1. januar 1970. Dataverse prav tako shranjuje informacije o času s poljem Samo datum, toda privzeto prikazuje samo informacije o datumu. Podobno aplikacije s platnom včasih razlikujejo med tema vrstama podatkov, da bi določile privzete oblike zapisa in kontrolnike.

Neposredno seštevanje in odštevanje vrednosti datuma in časa ni priporočeno, ker bi lahko časovni pas in druge pretvorbe povzročili nejasne rezultate. Uporabite bodisi funkcijo Value, da najprej pretvorite vrednosti datuma/časa v milisekunde in upoštevate časovni pas uporabnika aplikacije, ali uporabite funkciji DateAdd in DateDiff, da prištejete ali odštejete od ene od teh vrednosti.

Izbire in Da/ne

Možnosti in podatkovni tipi z dvema možnostma omogočajo, da uporabnik aplikacije izbere dve ali več možnosti. Na primer izbira možnosti Stanje naročila lahko vodi v možnost izbire Novo, Poslano, Fakturirano in Zaprto. Podatkovni tip z dvema možnostma ponuja le dve možnosti.

Obe vrsti podatkov prikazujeta oznake kot besedilo. Na primer, kontrolnik oznake prikazuje eno od možnosti stanja naročila, če je lastnost kontrolnika Besedilo nastavljena na formulo, ki se sklicuje na to izbiro. Oznake možnosti je mogoče lokalizirati za uporabnike aplikacij na različnih mestih.

Ko uporabnik aplikacije izbere možnost in shrani spremembo, aplikacija pošlje podatke v zbirko podatkov, ki jih shrani na način, ki ni odvisna od jezika. Možnost v izboru je poslana in shranjena kot številka, možnost v podatkovnem tipu z dvema možnostma pa je poslana in shranjena kot logična vrednost.

Oznake so samo za prikaz. Nalepk ni mogoče neposredno primerjati, ker so značilne za določen jezik. Namesto tega ima vsaka izbira oštevilčenje, ki deluje z osnovno številko ali logično vrednostjo. Te formule na primer ne morete uporabiti:

If( ThisItem.OrderStatus = "Active", ...

Lahko pa uporabite to formulo:

If( ThisItem.OrderStatus = OrderStatus.Active, ...

Za globalne izbire (katere tabele si delijo) se ime oštevilčenja nabora možnosti ujema z imenom globalne izbire. Pri lokalnih izbirah (ki so v obsegu tabele) lahko ime vsebuje ime tabele. S tem se izognete sporom, če ima več tabel izbire z istim imenom. Na primer tabela Računi ima lahko možnost izbire OrderStatus, njeno ime pa je morda OrderStatus (računi). To ime ima presledke in oklepaje, zato ga morate obdati z enojnimi narekovaji, če se sklicujete nanje v formuli.

Vrednosti z dvema možnostma delujejo tudi kot logične vrednosti. Vrednost z dvema možnostma z imenom TaxStatus ima lahko na primer oznake »Obdavčljivo« in »Neobčutljivo«, ki ustrezata »true« in »false«. Če želite to prikazati, uporabite to formulo:

If( ThisItem.Taxable = TaxStatus.Taxable, ...

Uporabite lahko tudi to formulo:

If( ThisItem.Taxable, ...