Dijeli putem


Vrste podataka

Informacije teku Power Fx u malim, diskretnim vrijednostima, vrlo slično ćelijama proračunske tablice. Na primjer, podatci u polju Rođendan i Obljetnica bi se izvodili kao vrijednost Data koja uključuje godinu, mjesec i dan. Power Fx zna kako oblikovati te vrijednosti, ograničiti unos na ono što je prikladno za svaku od njih i podijeliti vrijednosti s bazom podataka. Rođendani se razlikuju od obljetnica do ljudi, ali sustav s njima postupa na potpuno isti način. U ovom slučaju Datum je primjer vrsta podataka.

Ovaj članak sadrži pojedinosti o vrstama podataka koje Power Fx podržavaju. Kada se poveže Power Fx s vanjskim izvorom podataka, svaka vrsta podataka u tom izvoru mapira se na vrstu podataka u Power Fx.

Vrsta podataka Opis Primjeri
Booleova Vrijednost true ili false. Može se koristiti izravno u 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. Ovu vrstu podataka podržava funkcija Type ako se instanca polja Izbor koristi po nazivu. ThisItem.OrderStatus
Boja Specifikacija boje, uključujući alfa kanal. Boja.Crvena
ColorValue( "#102030" )
RGBA( 255, 128, 0, 0.5 )
Valuta Vrijednost valute koja je pohranjena u broju s pomičnom zarezom. Vrijednosti valuta jednake su brojčanim vrijednostima s mogućnostima oblikovanja valuta. Vrsta podataka Valuta nije podržana od strane funkcije Vrsta . 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, bazom 10 operacija i ograničenim dometom. 123
Decimalni ( "1.2345" )
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 Universal Resource Identifier (URI) tekstni niz za sliku u .jpeg, .png, .svg, .gif ili drugom uobičajenom formatu web-slike. Vrsta podataka slike nije podržana funkcijom Vrsta . MyImage dodan kao resurs aplikacije
"https://northwindtraders.com/logo.jpg"
"appres://blobmanager/7b12ffa2..."
Mediji URI tekstni niz za snimak videozapisa ili audiozapisa. Vrsta podataka Medij nije podržana funkcijom Vrsta . 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 se bilo koja vrsta broja može koristiti za određenu situaciju, upotrijebite broj za maksimalnu kompatibilnost. 123
0.0123
1e4
Zapis Zapis vrijednosti podataka. Ova složena vrsta podataka sadrži primjerice drugih vrsti podataka koje su navedene u ovoj temi. Više informacija: Rad s tablicama. Ovu vrstu podataka podržava funkcija Type ako se koristi instanca zapisa . { Tvrtka: "Northwind Traders",
Osoblje: 35,
NonProfit: netočno }
Upućivanje na zapis Referenca na zapis u tablici. Takva upućivanja često se koriste kod polimorfnih pregleda. Više informacija: Rad s upućivanjima. Funkcija Type ne podržava ovu vrstu podataka. Prvo (računi). Vlasnik
Stol Tablica zapisa. Svi zapisi moraju imati iste nazive za svoja polja s istim vrstama podataka, a izostavljena polja tretiraju se kao prazna. Ova složena vrsta podataka sadrži primjerice drugih vrsti podataka koje su navedene u ovoj temi. Više informacija: Rad s tablicama. Ovu vrstu podataka podržava funkcija Type ako se koristi instanca 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 )
Netipizirano Objekt nedeklariranog tipa. Temeljni objekt može biti bilo koji postojeći tip i može se pretvoriti u kompatibilne tipove pomoću funkcija kao što su Boolean(), Value(), Table() itd. Dodatne informacije potražite u odjeljcima Netipizirani objekt i Rad s JSON-om. ParseJSON("{ ""Polje"": 1234 }"). Polje
Praznina Koristi se samo od strane ponašanja korisnički definiranih funkcija, označava da funkcija nema povratni tip. Funkcija Type ne podržava ovu vrstu podataka. Iako funkcija nema vraćenu 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. Ovu vrstu podataka podržava funkcija Type ako se instanca polja Da/Ne koristi po nazivu. Ova stavka.Oporezivo

Mnoge od ovih vrsta podataka su slične i imaju isto pozadinsko predstavljanje, kao što je polje Hyperlink koje se tretira kao Text. Dodatne vrste podataka pružaju bolja zadana iskustva u obrascima i drugim kontrolama.

Blank

Sve vrste podataka mogu imati vrijednost blank (drugim riječima, 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. Na primjer, Set( x, Blank() ) uklanja vrijednost u globalnoj varijabli x.

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

Zbog toga što sve vrste podataka podržavaju blank, vrste podataka Boolean i Two option praktički 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!""" )

rezultira natpisom kada se pritisne gumb, kad su prvi i zadnji dvostruki navodnici izostavljeni (jer oni ograničavaju tekstualni niz) i ponovljeni dvostruki navodnici oko Pozdrav, svijete! zamjenjuju se jednim 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 je da se rezultat formule može prisiliti na tekstualni 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 danas podržava samo Float 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 se temelji na bazi 2 pa ne može precizno predstaviti neke uobičajene decimalne vrijednosti. Float također ima veće performanse i favoriziran je ako je to faktor i preciznost nije kritična.

Decimalni brojevi

Vrsta podataka Decimalno najčešće koristi .NET decimalni tip podataka. Neki hostovi, kao što Dataverse su stupci formule koji se pokreću u sustavu SQL Serer, 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 potrebama vaše aplikacije, možda ćete htjeti raditi s tim vrijednostima kao s tekstom, baš kao što je ranije opisano za velike cijele brojeve.

Zadane postavke i konverzije

Napomena

Power Apps danas podržava samo Float 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 ova pretvorba može rezultirati gubitkom preciznosti, važno je ne miješati to dvoje nepotrebno. Budući da je Decimal zadani doslovni tip podataka i većina numeričkih funkcija čuva tip, relativno je lako izbjeći prelazak na Float bez želje.

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. Ove se postavke obično podudaraju, ali rezultati će se razlikovati 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.svibnja,2019.
4:00
Subota,18.svibnja,2019.
21:00
1,558,238,400,000
(Nedjelja,19.svibnja,2019.
4:00 AM UTC)
Neovisno o vremenskoj zoni Nedjelja,19.svibnja,2019.
4:00
Nedjelja,19.svibnja,2019.
4:00
1,558,263,600,000
(Nedjelja,19.svibnja,2019.
11: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

Izbori i vrste podataka s dvije mogućnosti pružaju dva ili više izbora za odabir korisnika aplikacije. Na primjer, izbor Stanje narudžbe može ponuditi izbore Novo, Otpremljeno, Fakturirano i Zatvoreno. Vrsta podataka dvije opcije nudi samo dva izbora.

Obje ove vrste podataka pokazuju svoje oznake u kontekstnom tekstnom nizu. 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 se lokalizirati za korisnike aplikacija na različitim lokacijama.

Kad korisnik aplikacije odabere mogućnost i spremi tu promjenu, aplikacija podatke šalje u bazu podataka, koja pohranjuje te podatke u reprezentaciji koja je neovisna o jeziku. Mogućnost u izboru prenosi se i pohranjuje kao broj, a mogućnost u vrsti podataka s dvije mogućnosti prenosi se i pohranjuje kao Booleova vrijednost.

Oznake služe samo za potrebe prikaza. Ne možete provesti direktne usporedbe s oznakama jer su one 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 izbore (koji su ograničeni na tablicu), naziv može sadržavati naziv tablice. Ovo ponašanje izbjegava sukobe ako više tablica ima izbore 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). To ime sadrži jedan ili više razmaka i zagrade, pa ga morate okružiti jednim navodnicima ako ga upućujete u formuli.

Osim toga, vrijednosti s dvije mogućnosti mogu se ponašati kao Booleove vrijednosti. Na primjer, vrijednost s dvije mogućnosti pod nazivom Poreznistatus možda ima oznake Oporezivo i Neoporezivo, koje sukladno tome odgovaraju true i false. Za prikaz možete koristiti ovu formulu:

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

Možete koristiti i ovu ekvivalentnu formulu:

If( ThisItem.Taxable, ...