opomba,
Dostop do te strani zahteva pooblastilo. Poskusite se vpisati alispremeniti imenike.
Dostop do te strani zahteva pooblastilo. Poskusite lahko spremeniti imenike.
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.
Besedilo, hiperpovezava, slika in predstavnost
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:
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:
Nove vrstice so podprte tudi z interpolacijo nizov:
$"Line {1}
Line {1+1}
Line {1+1+1}"
Rezultat je enak:
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:
Za uporabo tega vira v aplikaciji določite vir v lastnosti Image kontrolnika Image:
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:
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:
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.234se interpretira kot Decimalno vrednost. Na primer, formula1.234 * 2interpretira1.234in2kot Decimal in vrne a Decimalni rezultat. - Funkcija vrednosti.
Value( "1.234" )vrne Decimalno vrednost. Na primer, v formuliValue( "1.234" ) * 2funkcija 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, ...