Vrste podataka

Informacije teče kroz Power Fx u malim, samostalnim vrijednostima, kao što su ćelije proračunske tablice. Primjerice, podaci u polju Rođendan i polju Godišnjica teče kroz kao vrijednost datuma koja obuhvaća godinu, mjesec i dan. Power Fx oblikuje te vrijednosti, ograničava unos na odgovarajuće vrijednosti i dijeli vrijednosti s bazom podataka. Rođendani i godišnjice mogu se razlikovati od osoba, ali sustav ih rukuje na isti način. U ovom slučaju Datum je primjer vrsta podataka.

U ovom se članku objašnjava svaka vrsta podataka u dodatku Power Fx, kako funkcioniraju i kako se mapiraju na vanjske izvore podataka.

Vrsta podataka Opis Primjeri
Booleova Vrijednost true ili false. Možete ga koristiti izravno u funkcijama If, Filter i drugim funkcijama bez usporedbe. istinit
Izbor Izbor iz niza mogućnosti, poduprto brojem. Ova vrsta podataka kombinira lokaliziranu tekstnu oznaku s numeričkom vrijednošću. Oznaka se pojavljuje u aplikaciji, a brojčana vrijednost pohranjuje se i koristi za usporedbe. Funkcija Type podržava tu vrstu podataka ako koristite instancu polja Izbora po nazivu. ThisItem.OrderStatus
Boja Specifikacija boja koja obuhvaća alfa-kanal. Boja.Crvena
ColorValue( "#102030" )
RGBA( 255, 128, 0, 0,5 )
Valuta Vrijednost valute pohranjena u broju s pomičnim zarezom. Vrijednosti valuta jednake su brojčanim vrijednostima s mogućnostima oblikovanja valuta. Funkcija Type ne podržava vrstu podataka Valuta . 123
4.56
Datum Datum bez vremena u vremenskoj zoni korisnika aplikacije. Datum( 2019, 5, 16 )
DatumVrijeme Datum s vremenom u vremenskoj zoni korisnika aplikacije. DateTimeValue( "16. svibnja, 2019 1:23:09 PM" )
Decimala Broj s visokom preciznošću, operacijama s bazom 10 i ograničenim rasponom. 123
Decimalni ( "1.2345" )
Dinamično (prethodno UntypedObject) Vrsta vrijednosti dinamična je i može se razlikovati prilikom izvođenja. Dinamična vrijednost može biti bilo koja postojeća vrsta i može se pretvoriti u kompatibilne vrste pomoću funkcija kao što su Boolean(), Value(), Table()itd. Dodatne informacije potražite u člancima Dinamične vrijednosti i Rad s JSON-om. ParseJSON("{ ""Polje"": 1234 }"). Polje
Plutati Broj sa standardnom preciznošću, bazom 2 operacija i širokim rasponom. 123
8.903e121
1.234e-200
GUID Globalno jedinstveni identifikator. GUID()
GUID( "123e4567-e89b-12d3-a456-426655440000" )
Hiperveza Tekstni niz koji sadrži hipervezu. ";https://powerapps.microsoft.com"
Slika Tekstni niz univerzalnog identifikatora resursa (URI) za sliku u obliku .jpeg, .png, .svg, .gifili nekom drugom uobičajenom obliku web-slike. Funkcija Type ne podržava vrstu podataka Slika. MyImage dodan kao resurs aplikacije
";https://northwindtraders.com/logo.jpg"
"appres://blobmanager/7b12ffa2..."
Mediji URI tekstni niz za snimak videozapisa ili audiozapisa. Funkcija Type ne podržava vrstu podataka Medijski sadržaji. MyVideo dodan kao resurs aplikacije
";https://northwindtraders.com/intro.mp4"
"appres://blobmanager/3ba411c..."
Broj Alias za Decimal (većina Power Fx hostova) ili Float (aplikacije radnog područja). Ako u situaciji možete koristiti bilo koji broj, koristite broj radi maksimalne kompatibilnosti. 123
0.0123
1e4
Zapis Zapis vrijednosti podataka. Ta složena vrsta podataka sadrži instance drugih vrsta podataka navedenih u ovom članku. Dodatne informacije potražite u članku Rad s tablicama. Funkcija Type podržava tu vrstu podataka ako koristite instancu zapisa. { Tvrtka: "Northwind Traders",
Osoblje: 35,
NonProfit: netočno }
Upućivanje na zapis Referenca na zapis u tablici. Te se reference često koriste s polimorfnim pretraživanjima. Dodatne informacije potražite u članku Rad s referencama. Funkcija Type ne podržava tu vrstu podataka. Prvo (računi). Vlasnik
Stol Tablica zapisa. Svi zapisi moraju imati iste nazive polja i vrste podataka, a izostavljena polja smatraju se praznima. Ta složena vrsta podataka sadrži instance drugih vrsta podataka navedenih u ovom članku. Dodatne informacije potražite u članku Rad s tablicama. Funkcija Type podržava tu vrstu podataka ako koristite instancu tablice. Tablica( { Ime: "Sidney",
Prezime: "Higa" },
{ Ime: "Nancy",
Prezime: "Anderson" } )
Tekstualna poruka Tekstni niz Unicode. "Zdravo, svijete"
Vrijeme Vrijeme bez datuma u vremenskoj zoni korisnika aplikacije. Vrijeme( 11, 23, 45 )
Praznina Koristi se samo korisnički definiranim funkcijama ponašanja, što znači da funkcija nema vrstu povrata. Funkcija Type ne podržava tu vrstu podataka. Iako funkcija nema povratnu vrstu ili vrijednost, uvijek može vratiti pogrešku. Hi(): void = { Notify( "Pozdrav!" ) }
Da/Ne Izbor iz skupa dviju opcija, poduprtih Booleovom vrijednošću. Ova vrsta podataka kombinira lokaliziranu tekstnu oznaku s Booleovom vrijednošću. Oznaka se pojavljuje u aplikaciji, a Booleova vrijednost pohranjuje se i koristi za usporedbe. Funkcija Type podržava tu vrstu podataka ako koristite instancu polja Da/Ne po nazivu. Ova stavka.Oporezivo

Mnoge od tih vrsta podataka slične su i imaju isti temeljni prikaz, kao što je polje Hiperveza koje se tretira kao tekst. Dodatne vrste podataka nude bolja zadana iskustva u obrascima i drugim kontrolama.

Blank

Sve vrste podataka mogu imati vrijednost prazne ( bez vrijednosti). Izraz "null" često se koristi u bazama podataka za ovaj koncept.

Koristite funkciju Blank s funkcijom Set ili Patch da biste postavili varijablu ili polje na prazno. Primjerice, Set( x, Blank() ) uklanja vrijednost u globalnoj varijabli x.

Testirajte praznu vrijednost pomoću funkcije IsBlank . Zamijenite moguće vrijednosti blank vrijednostima koje nisu blank pomoću funkcije Coalesce.

Budući da sve vrste podataka podržavaju praznu, vrste podataka Booleovii Dvije mogućnosti imaju tri moguće vrijednosti.

Sve ove četiri vrste podataka temelje se na tekstnom nizu Unicode.

Ugrađeni tekst

Ugrađeni tekstni nizovi u formuli zatvoreni su u dvostruke navodnike. Upotrijebite dva dvostruka navodnika zajedno da predstavite jedan dvostruki citat u tekstnom nizu. Na primjer, koristeći sljedeću formulu u svojstvu OnSelect kontrole Button:

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

Kada pritisnete gumb, rezultat će biti natpis u kojem se izostavljeni prvi i zadnji dvostruki navodnici (kako se razgraniče tekstni niz), a ponavljani dvostruki navodnici oko stavke Pozdrav, svijete! zamjenjuju se jednostrukim dvostrukim navodnikom:

skočna obavijest s porukom Jane je rekla

Jednostruki navodnici koriste se za nazive identifikatora koji obuhvaćaju posebne znakove i nemaju nikavo posebno značenje unutar tekstualnog niza.

Interpolacija niza

Koristite interpolaciju niza za ugrađivanje formula unutar tekstualnog niza. Ovaj pristup je često lakši za rad i vizualizaciju izlaza nego korištenje funkcije Concatenate ili & operator.

Kao prefiks tekstualnog niza stavite znak dolara $ i zatvorite formulu koja će se ugraditi vitičastim zagradama { }. Da biste uključili vitičastu zagradu u tekstualni niz, koristite ponovljene vitičaste zagrade: {{ ili }}. Interpolacija niza može se koristiti svugdje gdje se može koristiti standardni tekstualni niz.

Na primjer, razmotrite ovu formulu s globalnim varijablama jabukama postavljenima na 3 i bananama postavljenima na 4:

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

Formula vraća tekstualni niz Imamo 3 jabuke, 4 banana, što je ukupno 7 komada voća. Varijable jabuke i banane umeću se u tekst koji zamjenjuje vitičaste zagrade zajedno s rezultatom matematičke formule jabuke + banane. Razmaci i drugi znakovi oko vitičastih zagrada ostaju takvi kakvi jesu.

Ugrađene formule mogu uključivati bilo koje funkcije ili operatore. Sve što je potrebno jest to da se rezultat formule može prisilno postaviti na tekstni niz. Na primjer, ova formula umeće nadimak ako je naveden ili Ime ako nije, u pozdrav:

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

Ako je Nadimak postavljen na "Joe", tada ta formula da je tekstualni niz Dobro došao, Joe, drago mi je što se upoznajemo!. Ali ako je Nadimakprazan i Ime je "Joseph", tada ta formula da Dragi Joseph, drago mi je što se upoznajemo!.

Interpolacija niza može uključivati standardne tekstualne nizove u ugrađenoj formuli. Na primjer, ako ni Nadimak ni Ime nisu navedeni, još uvijek bismo mogli navesti "Prijatelj" kao zamjenu:

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

Interpolacije nizova mogu čak biti ugniježđene. Pogledajte primjer u kojem su Ime, Srednje ime i Prezime kombinirani u pozdrav. Čak i ako su jedna ili dvije od tih vrijednosti prazne , između dijelova naziva održava se točan broj razmaka. Ako nijedan dio nije naveden, unutarnja interpolacija niza smanjit će se u prazan niz i zamijenit će je funkcija Coalesce s "Friend".

$"Welcome {Coalesce( Trim( $"{First} {Middle} {Last}"}), "Friend" )}!"
Prvo Sredina Posljednji Rezultat
John Qunicy Doe Welcome John Quincy Doe!
John prazno Doe Welcome John Doe!
prazno prazno Doe Welcome Doe!
prazno prazno prazno Welcome Friend!

Novi redovi

Ugrađeni tekstualni nizovi mogu sadržavati nove retke. Na primjer, postavite svojstvo Tekst kontrole Oznaka na sljedeće:

"Line 1
Line 2
Line 3"

Ova formula rezultira trima crtama prikazanima u kontroli natpisa:

Ugrađeni tekstualni niz i kontrola natpisa koja prikazuje tri retka s retkom 1, redom 2 i retkom 3.

Novi redovi su također podržani interpolacijom nizova:

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

Što rezultira istim rezultatom:

Formula za interpolaciju niza i kontrola natpisa koja prikazuje tri retka s retkom 1, retkom 2 i retkom 3.

Slikovni i medijski resursi

U izborniku Datoteka možete dodati sliku, videozapis i datoteke audiozapisa kao resurse aplikacije. Naziv uvezene datoteke postaje naziv resursa u aplikaciji. U ovoj je grafici u aplikaciju dodan logotip Northwind Traders, koji se zove nwindlogo:

Resurs Northwind.

Da biste koristiti ovaj resurs u aplikaciji, navedite ga u svojstvu Slika kontrole Slika:

Slika sjevernog vjetra.

URI-ji za slike i druge medije

Možete tražiti dalje u posljednjem primjeru postavljanjem svojstva Tekst kontrole Oznaka na nwindlogo. Oznaka pokazuje tekstni niz:

Tekst sjevernog vjetra.

Aplikacije radnog područja povezuju svaku sliku ili drugu medijsku datoteku, bilo da je u oblaku ili je dodana kao resurs aplikacije, tekstnim nizom URI.

Na primjer, svojstvo Slika kontrole slike prihvaća ne samo resurse aplikacije već i veze na slike na webu kao što je "https://northwindtraders.com/logo.jpg". Svojstvo također prihvaća umetnute slike koje koriste shema URI podataka, kao u ovom primjeru:

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

Da URI prikazuje uvećanu verziju dva ljubičasta dijamanta:

Dvostruki dijamanti.

Možete pokazati najnoviju sliku snimljenu u kontroli Kamera ako postavite svojstvo Slika kontrole slike na svojstvo Fotografija kontrole kamere. Aplikacija sadrži sliku u memoriji, a svojstvo Photo kontrole kamere vraća URI referencu na sliku. Na primjer, možete snimiti sliku, a svojstvo kamere Photo vratiti "appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1".

Koristite URI za upućivanje na sliku ili drugu medijsku datoteku pohranjenu u bazi podataka. Tako aplikacija neće dohvatiti stvarne podatke sve dok nisu potrebni. Na primjer, privitak u tablici Microsoft Dataverse mogao bi vratiti "appres://datasources/Contacts/table/..." kao u primjeru fotoaparata, ovu sliku možete prikazati podešavanjem svojstvo Slika kontrole slike na ovu referencu koja dohvaća binarne podatke.

Kad spremate vrstu medijskog podatka kao što je slika u bazu podataka, aplikacija šalje stvarnu sliku ili medijske podatke, a ne URI referencu.

Ograničenja veličine

Kao tekstni nizovi i URI-ji, ove vrste podataka nemaju unaprijed postavljeno ograničenje glede njihove dužine.

Binarni podatci na koje se odnose ove vrste podataka također nemaju unaprijed postavljeno ograničenje glede veličine. Na primjer, slika snimljena pomoću kontrole kamere koja se naziva "appres://..." može biti velika i visoke razlučivosti koliko kamera uređaja može prikupiti. Razlučivost, broj slika u sekundi i drugi atributi medijskih datoteka nisu ograničeni vrstom podataka, ali posebne kontrole za reprodukciju i snimanje medija mogu imati svoja ograničenja.

Ipak, sve veličine podataka podliježu količini raspoložive memorije u aplikaciji. Preglednici koji rade na stolnom računalu obično podržavaju više od 100 megabajta podataka. Međutim, količina raspoložive memorije na uređaju kao što je telefon može biti daleko manja, obično u rasponu od 30 do 70 megabajta. Da biste utvrdili radi li vaša aplikacija unutar tih ograničenja, testirajte uobičajene scenarije na svim uređajima na kojima bi se trebala pokrenuti.

Kao najbolja praksa držite podatke u memoriji samo onoliko dugo koliko je potrebno. Prenesite slike u bazu podataka što je prije moguće; preuzimajte slike samo kada ih korisnik aplikacije zatraži.

Brojevi

Napomena

Power Apps podržava samo float danas i to je vrsta svih brojeva. Uskoro će biti dodana decimalna podrška.

Power Fx podržava dvije vrste brojeva: decimalni i float (sa sinonimima broj i valuta ).

Decimalna je najbolja za većinu poslovnih izračuna. Može točno predstaviti brojeve u bazi 10, što znači da se mogu 0.1 točno predstaviti i izbjeći će pogreške zaokruživanja tijekom izračuna. Ima dovoljno velik raspon za sve poslovne potrebe, do 1028 s preciznošću do 28 znamenki. Decimalni je zadani numerički tip podataka za većinu Power Fx hostova, koji se koristi ako se jednostavno piše 2*2.

Float je najbolji za znanstvene izračune. Može predstavljati brojeve u većem rasponu, do 10308. Preciznost je ograničena na 15 decimalnih mjesta, a matematika je utemeljena na bazi 2 tako da ne može precizno predstavljati neke uobičajene decimalne vrijednosti. Float također ima veće performanse i koristan je ako je to faktor i preciznost nije ključan.

Decimalni brojevi

Vrsta podataka Decimalno najčešće koristi .NET decimalni tip podataka. Neka glavna računala, kao što su stupci formule Dataverse koji se pokreću u sustavu SQL Server, koriste decimalnu vrstu podataka sustava SQL Server.

Decimal radi matematiku na način na koji ste učili u školi, koristeći bazu 10 znamenki, važno kako bi se izbjegle pogreške zaokruživanja iz vrlo malih razlika koje se mogu akumulirati kada se koristi matematika s bazom 2 (kako je koristi Float).

Raspon je od pozitivnog 79,228,162,514,264,337,593,543,950,335 do negativnog 79,228,162,514,264,337,593,543,950,335. Decimalni razdjelnik može se postaviti bilo gdje unutar ovih brojeva, pružajući do 28 znamenki preciznosti, a i dalje biti precizno predstavljen. Na primjer, 79,228,162,514,264.337593543950335 može biti točno predstavljen, kao i 7.9228162514264337593543950335.

Brojevi s pomičnim zarezom

Vrsta podataka Float , poznata i kao Broj ili Valuta, koristi IEEE 754 standard s pomičnim zarezom s dvostrukom preciznošću. Ovaj standard pruža vrlo veliki raspon brojeva u kojima treba raditi, od –1,79769 x 10308 do 1,79769 x 10308. Najmanja vrijednost koja se može predstaviti je 5 x 10–324.

Float može točno predstavljati cijele brojeve (ili cijele brojeve) između –9,007,199,254,740,991 (–(253 – 1)) i 9,007,199,254,740,991 (253 – 1), uključivo. Ovaj raspon je veći od 32-bitnih (ili 4-bajtnih) cjelobrojnih vrsta podataka koje baze podataka obično koriste. Međutim, aplikacije radne površine ne mogu predstavljati 64-bitne (ili 8-bajtne) cjelobrojne vrste podataka. Možda ćete htjeti pohraniti broj u tekstno polje ili upotrijebiti izračunati stupac da biste napravili kopiju broja u tekstnom polju, tako da se mapira u vrstu podataka Tekst u aplikaciji radnog područja. Na taj način možete zadržati, prikazati i unijeti te vrijednosti te ih uspoređivati da biste utvrdili jesu li jednake; međutim, u ovom obrascu na njima ne možete izvoditi numeričke izračune.

Aritmetika s pomičnom točkom je približna, pa ponekad može dati neočekivane rezultate na mnogim dokumentiranim primjerima. Možete očekivati da formula 55 / 100 * 100 vrati točno 55 a (55 / 100 * 100) - 55 vrati točno nula. Međutim, zadnja formula vraća 7,1054 x 10–15, što je vrlo malo, ali nije nula. Ta sitna razlika obično ne stvara problem, a aplikacija to zaokružuje kad prikazuje rezultat. Međutim, male razlike mogu se složiti u kasnijim izračunima i čini se da daju pogrešan odgovor.

Sustavi baza podataka često pohranjuju valute i izvode izračune koristeći decimalnu matematiku, što nudi manji raspon, ali veću kontrolu nad preciznošću. Aplikacije radnog područja prema zadanome preslikavaju valute unutar i izvan krajnje vrijednosti; stoga se rezultat može razlikovati od izračuna koji se izvode u izvornoj decimalnoj vrsti podataka. Ovisno o preciznim potrebama aplikacije, s tim ćete vrijednostima možda htjeti raditi kao tekst, kao što je prethodno opisano za velike cijele brojeve.

Zadane postavke i konverzije

Napomena

Power Apps podržava samo float danas i to je vrsta svih brojeva. Uskoro će biti dodana decimalna podrška.

Većina Power Fx hostova prema zadanim postavkama koristi Decimal . Imati ovu zadanu postavku znači:

  • Doslovni brojevi u formulama. Broj 1.234 se tumači kao decimalna vrijednost. Na primjer, formula tumači 1.234 * 2 i 1.234 kao decimalno i 2 vraća decimalni rezultat.
  • Funkcija vrijednosti. Value( "1.234" ) vraća decimalnu vrijednost. Na primjer, u formuli Value( "1.234" ) * 2 funkcija Value tumači sadržaj tekstnog niza "1.234" kao decimalni .

Za rad s vrijednostima Float koristi se funkcija Float . Proširenje našeg primjera, Float( 1.234 ) pretvara Decimal1.234 u Float. Float se također može koristiti kao zamjena za Value za pretvaranje niza koji sadrži broj s pomičnim zarezom, kao što Float( "1.234" ) je Float vrijednost, što je potrebno ako se broj ne može predstaviti kao Decimal.

Ukratko:

Korištenje Decimala Plutati
Doslovni brojevi u formulama 1.234 Float( 1.234 )
Float( "1.234" )
Pretvorba iz tekstnog niza Value( "1.234" )
Decimal( "1.234" )
Float( "1.234" )
Pretvorba između numeričkih tipova Decimal( float ) Float( decimal )
Pretvorba u tekstualni niz Text( decimal ) Text( float )

Miješanje numeričkih tipova

Float i decimalne vrijednosti mogu se slobodno miješati. Kada se miješaju, decimalne vrijednosti pretvaraju se u vrijednosti s plovkom zbog većeg raspona. Budući da pretvorba može dovesti do gubitka preciznosti, važno je ne miješati dvije nepotrebno. Budući da je decimala zadana vrsta podataka, a većina brojčanih funkcija čuva tu vrstu, relativno je jednostavno izbjeći premještanje na Plutanje bez isušivanje.

Na primjer, razmotrite sljedeći izračun koji koristite pac power-fx repl nakon instalacije CLI-ja Power Platform . Budući da su oba broja decimalna , izračun se vrši u decimalnom obliku, a rezultat zadržava punu preciznost:

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

Ako bi se umjesto toga drugi operand promijenio u Float , tada bi se cijeli izračun obavio u Floatu, a mali dio bi se izgubio:

>> 1.0000000000000000000000000001 * Float(2)
2

Date, Time i DateTime

Vremenske zone

Vrijednosti datum/vrijeme spadaju u ove kategorije:

  • Lokalno korisnik: te su vrijednosti pohranjene u UTC-u (koordinirano univerzalno vrijeme), ali vremenska zona korisnika aplikacije utječe na to kako aplikacija prikazuje te vrijednosti i kako ih korisnik aplikacije specificira. Primjerice, isti trenutak prikazuje se drugačije korisniku u Kanadi od korisnika u Japanu.
  • Neovisno o vremenskoj zoni: aplikacija prikazuje te vrijednosti na isti način, a korisnik aplikacije ih određuje na isti način, bez obzira na vremensku zonu. Isti trenutak prikazuje se na isti način korisniku u Kanadi kao i korisniku u Japanu. Autori aplikacija koji ne očekuju da se njihove aplikacije izvode u različitim vremenskim zonama koriste ove vrijednosti jer su sveukupno jednostavnije.

Ova tablica pokazuje neke primjere:

Vrsta Datum/vrijeme. Vrijednost pohranjena u bazi podataka Vrijednost prikazana i unesena 7 sati zapadno od UTC Vrijednost prikazana i unesena 4 sati istočno od UTC
Lokalni korisnik Nedjelja,19.svibnja2019.
4:00
Subota,18.svibnja2019.
21:00
Nedjelja,19.svibnja2019.
8:00
Neovisno o vremenskoj zoni Nedjelja,19.svibnja2019.
4:00
Nedjelja,19.svibnja2019.
4:00
Nedjelja,19.svibnja2019.
4:00

Za datum/vrijeme za Lokalno vrijeme korisnika, aplikacije radnog područja koriste vremensku zonu preglednika ili uređaja, ali aplikacije stvorene prema modelu koriste korisničku postavku u Dataverse. Te se postavke obično podudaraju, ali se rezultati razlikuju ako se te postavke razlikuju.

Koristite funkcije DateAdd i Informacijeovremenskojzoni za pretvaranje lokalnog vremena korisnika na UTC i natrag. Pogledajte primjere na kraju dokumentacije za ove funkcije.

Numerički ekvivalenti

Aplikacije radnog područja uključuju i izračunavaju sve vrijednosti za datum/vrijeme, bez obzira na Lokalno vrijeme korisnika ili Neovisno o vremenoj zoni u UTC. Aplikacija prevodi vrijednosti na temelju vremenske zone korisnika aplikacije kada ih prikazuje i kada ih korisnik navodi.

Kada aplikacija radnog područja očitava vrijednost Neovisno o vremenskoj zoni iz izvora podataka ili upiše takvu vrijednost u izvor podataka, aplikacija automatski prilagođava vrijednost da nadoknadi vremensku zonu korisnika aplikacije. Aplikacija tada tretira vrijednost kao UTC vrijednost, u skladu sa svim ostalim vrijednostima za datum/vrijeme u aplikaciji. Zbog ove nadoknade, pojavljuje se izvorna vrijednost Neovisno o vremenskoj zoni kada aplikacija prilagodi UTC vrijednost za vremensku zonu korisnika aplikacije.

Ovo ponašanje možete pobliže promatrati pomoću funkcije Value za pristup izvornoj brojčanoj vrijednosti za vrijednost datum/vrijeme. Ova funkcija vraća vrijednost datum/vrijeme kao broj milisekundi od 1. siječnja, 1970. 00:00:00.000 UTC.

S obzirom na to da se svaka vrijednosti datum/vrijeme održava u UTC, formula Value( Date( 1970, 1, 1 ) ) neće vratiti nulu u većini dijelova svijeta jer funkcija Date vraća datum u UTC. Na primjer, formula bi vratila 28.800.000 u vremensku zonu koja je od UTC pomaknuta za osam sati. Taj broj odražava broj milisekundi u osam sati.

Vraćajući se na naš primjer:

Vrsta Datum/vrijeme. Vrijednost pohranjena u bazi podataka Vrijednost prikazana i unesena 7 sati zapadno od UTC Funkcija vrijednosti vraća
Lokalni korisnik Nedjelja,19.svibnja2019.
4:00
Subota,18.svibnja2019.
21:00
1,558,238,400,000
(Nedjelja,19.svibnja,2019.
4:00 AM UTC)
Neovisno o vremenskoj zoni Nedjelja,19.svibnja2019.
4:00
Nedjelja,19.svibnja2019.
4:00
1,558,263,600,000
(Nedjelja,19.svibnja,2019.
12:00 AM UTC

Pretvaranje Unix vremena

Unix vremena odražavaju broj sekundi od 1. siječnja, 1970. 00:00:00 UTC. S obzirom na to da aplikacije radne površine koriste milisekunde umjesto sekundi, možete ih pretvoriti množenjem ili dijeljenjem s 1.000.

Primjerice, Unix vrijeme pokazuje 9. rujna, 2001. u 01:46:40 UTC kao 1,000,000,000. Da biste pokazali vrijednosti datum/vrijeme u aplikaciji radnog područja, pomnožite taj broj s 1.000 da biste ga pretvorili u milisekunde, a zatim ga upotrijebite u funkciji Text. Formula Text( 1000000000 * 1000, DateTimeFormat.UTC ) vraća niz 2001-09-09T01:46:40.000Z.

Međutim, ta funkcija vraća Subota, 8. rujna, 2001. 18:46:40 ako koristite format Formatdatumvrijeme.Dugačakdatumvrijeme24 u vrmenskoj zoni koja je pomaknuta za -7 sati od UTC (7 sati zapadno od UTC). Ovaj rezultat pokazuje točnu vrijednost DateTime na temelju lokalne vremenske zone.

Da biste pretvorili u Unix vrijeme, podijelite rezultat iz Value sa 1,000:
RoundDown( Value( UnixTime ) / 1000, 0 )

Ako vam treba Unix vrijeme u vrijednosti Datum za daljnje izračune ili prikaz unutar Power Apps, koristite ovu formulu:
DateAdd( Datum( 1970,1,1 ), UnixTime, Sekunde )

SQL Server

SQL Server ima DateTime, DateTime2, i druge vrste podataka datum/vrijeme koji ne uključuju pomak vremenske zone i ne navode u kojoj se vremenskoj zoni nalaze. Aplikacije radnog područja pretpostavljaju da su ove vrijednosti pohranjene u UTC i tretiraju ih kao Lokalno vrijeme korisnika. Ako vrijednosti trebaju biti neovisne o vremenskoj zoni, ispravite za UTC prijevode pomoću funkcije TimeZoneOffset.

Aplikacije radnog područja koriste obuhvaćene informacije o vremenskoj zoni u poljima Pomakzadatumvrijeme prilikom pretvaranja vrijednosti na unutarnji UTC prikaz aplikacije. Aplikacije uvijek koriste UTC kao vremensku zonu (nulti pomak vremenske zone) kada upisuju podatke.

Aplikacije radnog područja čitaju i pišu vrijednosti vrste podataka Time u SQL Server kao tekstni niz u ISO 8601 format trajanja. Na primjer, morate raščlaniti ovaj format niza i koristiti funkciju Time za pretvaranje tekstnog niza "PT2H1M39S" u vrijednost Time:

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)

Miješanje informacija o datumu i vremenu

Datum, vrijeme i datumVrijeme imaju različite nazive, ali svi sadrže iste podatke o datumima i vremenima.

Vrijednost Date može uključivati informacije o vremenu, što je obično ponoć. Vrijednost Time može obuhvaćati informacije o datumu, što je obično 1. siječnja, 1970. godine. Dataverse također pohranjuje informacije o vremenu s poljem Samo datum ali prema zadanome, pokazuje samo informacije o datumu. Slično tome, aplikacije radnog područja ponekad razlikuju ove vrste podataka za određivanje zadanih formata i kontrola.

Ne preporučuje se dodavanje i oduzimanje vrijednosti datuma i vremena jer vremenska zona i druge pretvorbe mogu prouzročiti zbunjujuće rezultate. Koristite funkciju Value da biste pretvorili vrijednosti datum/vrijeme u milisekunde i uzmite u obzir vremensku zonu korisnika aplikacije ili koristite funkcije DateAdd i DateDiff da biste dodali ili oduzeli jednu od ovih vrijednosti.

Izbori i Da/Ne

Odabiri i vrste podataka s dvije mogućnosti nude dvije ili više mogućnosti koje korisnik aplikacije može odabrati. Na primjer, izbor Stanje narudžbe može ponuditi izbore Novo, Otpremljeno, Fakturirano i Zatvoreno. Vrsta podataka s dvije mogućnosti nudi samo dvije mogućnosti.

Obje vrste podataka prikazuju svoje oznake kao tekst. Na primjer, kontrola oznake prikazuje jednu od mogućnosti statusa narudžbe ako je svojstvo Teksta kontrole postavljeno na formulu koja upućuje na taj izbor. Oznake mogućnosti moguće je lokalizirati za korisnike aplikacija na različitim mjestima.

Kada korisnik aplikacije odabire mogućnost i spremi promjenu, aplikacija šalje podatke u bazu podataka, čime se pohranjuju na način koji je neovisan o jeziku. Mogućnost po izboru šalje se i pohranjuje kao broj, a mogućnost u vrsti podataka s dvije mogućnosti šalje se i pohranjuje kao booleova vrijednost.

Natpisi su samo za prikaz. Oznake nije moguće izravno usporediti jer su specifične za jezik. Umjesto toga, svaki izbor ima nabrajanje koje radi s osnovnim brojem ili Booleovom vrijednošću. Na primjer, ne možete koristiti ovu formulu:

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

Ali možete koristiti ovu formulu:

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

Za globalne izbore (koje tablice dijele) naziv nabrajanja skupa mogućnosti podudara se s nazivom globalnog izbora. Za lokalne odabire (koji su u dosegu tablice) naziv može sadržavati naziv tablice. Takvo ponašanje izbjegava sukobe ako više tablica ima izbor s istim nazivom. Na primjer, tablica Računi može imati izbor Stanje narudžbe, a njegov bi naziv mogao biti Status narudžbe (Računi). Taj naziv sadrži razmake i zagrade, pa ga morate okružiti jednostrukim navodnicima ako ga referencirate u formuli.

Vrijednosti s dvije mogućnosti ponašaju se i kao booleove vrijednosti. Vrijednost s dvije mogućnosti pod nazivom TaxStatus, primjerice, može sadržavati oznake Koje se mogu opo taxable i Koje nisu porezne, što odgovara vrijednosti true i false. Da biste to prikazali, koristite ovu formulu:

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

Možete koristiti i ovu formulu:

If( ThisItem.Taxable, ...