Deli putem


Tipovi podataka

Belešku

Microsoft Power Fx je novo ime za jezik formula za aplikacije sa podlogom. Ovi članci su u izradi dok izdvajamo jezik iz aplikacija na platnu, integrišemo ga sa drugim Microsoft Power Platform proizvodima i činimo ga dostupnim u vidu otvorenog koda. Počnite sa Microsoft Power Fx pregledom za uvod u jezik.

Informacije teku kroz aplikaciju u malim, diskretnim vrednostima, veoma nalik ćelijama unakrsne tabele. Na primer, podaci u polju Rođendan i polju Godišnjica teku kroz vrednost Datum koja uključuje godinu, mesec i dan. Aplikacija zna kako da formatira ove vrednosti, ograniči unos onoga što je za njih pogodno i deli vrednosti sa bazom podataka. Rođendani se ljudima razlikuju od godišnjica, ali sistem tim podacima rukuje na potpuno isti način. U ovom slučaju, Datum je primer tipa podataka.

Ovaj članak daje detalje za tipove podataka koje aplikacije sa podlogom podržavaju. Kada se aplikacija poveže sa spoljnim izvorom podataka, svaki tip podataka u tom izvoru se mapira u tip podataka za aplikacije sa podlogom.

Tip podataka Opis Primeri
Logička vrednost Vrednost tačno ili netačno. Može se direktno koristiti u funkcijama If, Filter i drugim funkcijama bez poređenja. tačno
Boja Specifikacija boje, uključujući alfa kanal. Color.Red
ColorValue( "#102030" )
RGBA( 255, 128, 0, 0.5 )
Valuta Vrednost valute koja se čuva u broju s pomičnom zarezom. Vrednosti valuta jednake su brojčanim vrednostima sa opcijama formatiranja valuta. 123
4.56
Datum Datum bez vremena, u vremenskoj zoni korisnika aplikacije. Date( 2019, 5, 16 )
Datum i vreme Datum sa vremenom, u vremenskoj zoni korisnika aplikacije. DateTimeValue( "May 16, 2019 1:23:09 PM" )
Decimalni Broj sa visokom preciznošću, operacijama baze 10 i ograničenim opsegom. 123
Decimalni( "1.2345" )
GUID Globalno jedinstveni identifikator. GUID()
GUID( "123e4567-e89b-12d3-a456-426655440000" )
Hiperveza Tekstualna niska koja sadrži hipervezu. "https://powerapps.microsoft.com"
Image Tekstualna niska univerzalni identifikator resursa (URI) do slike u .jpeg, .png, .svg, .gif ili drugom uobičajenom formatu veb-slike. MyImage se dodaje kao resurs aplikacije
"https://northwindtraders.com/logo.jpg"
"appres://blobmanager/7b12ffa2..."
Mediji URI tekstualna niska video ili audio zapisa. MyVideo se dodaje kao resurs aplikacije
"https://northwindtraders.com/intro.mp4"
"appres://blobmanager/3ba411c..."
Broj ili plutanje Broj sa standardnom preciznošću, operacijama baze 2 i širokim opsegom. 123
8,903e121
1.234e200
Izbor Izbor iz niza opcija, podržanih brojem. Ovaj tip podataka kombinuje oznaku teksta koja može da se lokalizuje i koja ima numeričku vrednost. Oznaka se prikazuje u aplikaciji, a numerička vrednost se čuva i koristi za poređenje. ThisItem.OrderStatus
Zapis Zapis vrednosti podataka. Ovaj složeni tip podataka sadrži instance drugih tipova podataka koji su navedeni u ovoj temi. Još informacija: Rad sa tabelama. { Company: "Northwind Traders",
Staff: 35,
NonProfit: false }
Referenca zapisa Referenca na zapis u tabeli. Takve reference se često koriste kod polimorfnih pronalaženja. Još informacija: Rad sa referencama. First(Accounts).Owner
Table Tabela zapisa. Svi zapisi moraju imati ista imena za svoja polja sa istim tipovima podataka, a izostavljena polja se tretiraju kao prazna. Ovaj složeni tip podataka sadrži instance drugih tipova podataka koji su navedeni u ovoj temi. Još informacija: Rad sa tabelama. Table( { FirstName: "Sidney",
LastName: "Higa" },
{ FirstName: "Nancy",
LastName: "Anderson" } )
Text Niska Unikod teksta. "Zdravo svima"
Time Vreme bez datuma, u vremenskoj zoni korisnika aplikacije. Time( 11, 23, 45 )
Dve opcije Izbor iz niza od dve opcije, podržane logičkom vrednošću. Ovaj tip podataka kombinuje oznaku teksta koja može da se lokalizuje i koja ima logičku vrednost. Oznaka se prikazuje u aplikaciji, a logička vrednost se čuva i koristi za poređenje. ThisItem.Taxable
Netipizirani objekat Objekat nedeklarisanog tipa. Osnovni objekat može biti bilo kog postojećeg tipa i može se konvertovati u kompatibilne tipove pomoću funkcija kao što su Boolean(), Value(), Table() itd. Više informacija potražite u člancima Netipizirani objekat i Rad sa JSON-om. ParseJSON("{ ""Field"" : 1234 }").Field

Mnogi od ovih tipova podataka su slični i imaju isto osnovno predstavljanje, kao što se polje tipa hiperveza se tretira kao tekst. Dodatni tipovi podataka pružaju bolja podrazumevana iskustva u obrascima i drugim kontrolama.

Prazno

Svi tipovi podataka mogu imati vrednost prazno (drugim rečima, bez vrednosti). Izraz "null" se često koristi u bazama podataka za ovaj koncept.

Koristite funkciju Blank sa funkcijom Set ili Patch da biste podesili promenljivu ili polje na prazno. Na primer, Set( x, Blank() ) uklanja svaku vrednost u globalnoj promenljivoj x.

Testirajte praznu vrednost koristeći funkciju IsBlank. Zamenite moguće prazne vrednosti nepraznim vrednostima pomoću funkcije Coalesce.

Pošto svi tipovi podataka podržavaju prazno, tipovi podataka logička vrednost i dve opcije efektivno imaju tri moguće vrednosti.

Sve četiri ove vrste podataka zasnovane su na Unikod tekstualnoj niski.

Ugrađeni tekst

Ugrađene niske teksta u formuli su zatvorene u dvostrukim navodnicima. Koristite dva dvostruka navodnika zajedno da biste predstavili jedan jednostruki navodnik u tekstualnoj niski. Na primer, ako koristite sledeću formulu u svojstvu OnSelect kontrole dugme:

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

dobićete baner kada se pritisnete dugme, pri čemu su prvi i poslednji dvostruki navodnik izostavljeni (jer oni ograničavaju tekstualnu nisku), a ponovljeni dvostruki navodnici oko Zdravo svima! se zamenjuju jednostrukim navodnicima:

iskačuće obaveštenje sa porukom u kojoj je Džejn rekla

Oznake za jednostruke navodnike se koriste za nazive identifikatora koji sadrže posebne znakove i nemaju nikakvo posebno značenje unutar tekstualne niske.

Interpolacija niske

Koristite interpolaciju niske da biste ugradili formule unutar tekstualne niske. Ovo je često lakše raditi sa izlazom i vizualizovati ga nego koristiti funkciju Concatenate ili & operator.

Stavite prefiks tekstualne niske znakom za dolar $ i zatvorite formulu koja će biti ugrađena u vitičaste zagrade { }. Da biste uključili vitičastu zagradu u tekstualnu nisku, koristite ponovljene zagrade za vitičaste zagrade: {{ or }}. Interpolacija niske se može koristiti na svakom mestu gde se može koristiti standardna tekstualna niska.

Na primer, uzmite u obzir ovu formulu sa globalnim promenljivama Jabuke, postavljeno na 3, i kruške, postavljeno na 4:

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

Ova formula daje tekstualnu nisku Imamo 3 jabuke, 4 kruške, što daje ukupno 7 komada voća. Promenljive Jabuke i kruške se ubacuju u tekst zamenjujući vitičaste zagrade, zajedno sa rezultatom matematičke formule Jabuke + kruške. Razmaci i drugi znakovi oko vitičastih zagrada se čuvaju onako kako jesu.

Ugrađene formule mogu da sadrže sve funkcije ili operatore. Sve što je potrebno je da se rezultat formule može prisiliti na tekstualnu nisku. Na primer, ova formula će umetnuti Nadimak ako je naveden ili Ime ako nije, u pozdrav:

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

Ako je Nadimaj podešeno na „Džo“, onda ova formula proizvodi tekstualnu nisku Dobro došli Džo, sjajno je upoznati vas!. Ali ako je Nadimak ostao prazan a Ime je „Džozef“, onda ova formula umesto toga proizvodi Dragi Džozef, sjajno je upoznati vas!.

Interpolacija niske može da sadrži standardne tekstualne niske u ugrađenoj formuli. Na primer, ako ni Nadimak ni Ime nisu navedeni, još uvek možemo da obezbedimo reč Prijatelju kao zamenu:

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

Interpolacije niski se čak mogu ugnezditi. Uzmite u obzir ovaj primer gde se Ime, Srednje ime i Prezime kombinuju u pozdrav. Čak i ako su jedna ili dve od ovih vrednosti prazne, tačan broj razmaka će biti između delova imena. Ako nijedan od delova nije naveden, unutrašnja interpolacija niske će se skupiti u praznu nisku i biće zamenjena funkcijom Coalesce u „Prijatelju“.

$"Welcome {Coalesce( Trim( $"{First} {Middle} {Last}"}), "Friend" )}!"
Ime Sredina Poslednja rezultat
John Qunicy Doe Welcome John Quincy Doe!
John prazno Doe Welcome John Doe!
prazno prazno Doe Welcome Doe!
prazno prazno prazno Welcome Friend!

Nove linije

Ugrađene tekstualne niske mogu da sadrže nove linije. Na primer, razmotrite da podesite svojstvo Text kontrole Label na sledeći način:

"Line 1
Line 2
Line 3"

Gorenavedena formula rezultira u tri reda prikazana u kontroli oznake:

Ugrađena tekstualna niska i kontrola oznake prikazuju tri reda sa linijom 1, linijom 2 i linijom 3.

Nove linije su takođe podržane interpolacijom niske, kao što je prikazano u nastavku:

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

Gorenavedena formula rezultira istim izlazom:

Formula interpolacije niske i kontrola oznake prikazuju tri linije sa linijom 1, linijom 2 i linijom 3.

Resursi slika i medija

Putem menija Datoteka možete da dodajete slike, video i audio datoteke kao resurse aplikacija. Ime uvezene datoteke postaje ime resursa u aplikaciji. Na ovoj slici, logotip za Northwind Traders, koji se zove nwindlogo, dodat je u aplikaciju:

Resurs Northwinda.

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

Slika northwinda.

URI-ji za slike i druge medije

Možete da se detaljnije upoznate sa tim poslednjim primerom ako podesite svojstvo Text kontrole oznaka na nwindlogo. Oznaka prikazuje tekstualnu nisku:

Tekst

Aplikacije sa podlogom referenciraju svaku sliku ili drugu medijsku datoteku, bilo da je u oblaku ili je dodata kao resurs aplikacije, putem URI tekstualne niske.

Na primer, svojstvo Image kontrole slike prihvata ne samo resurse Aplikacija već i veze do slika na vebu, kao što je "https://northwindtraders.com/logo.jpg". Svojstvo takođe prihvata umetnute slike koje koriste šemu URI podataka, kao u ovom primeru:

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

Taj URI prikazuje umanjenu verziju dva ljubičasta romba:

Dupli dijamanti.

Možete prikazati najnoviju sliku snimljenu u kontroli Kamera ako svojstvo Image kontrole slike podesite na svojstvo Photo kontrole kamere. Aplikacija čuva sliku u memoriji i svojstvo Photo kontrole kamere vraća URI referencu na sliku. Na primer, možete da snimite sliku, a svojstvo Photo kamere može da vrati "appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1".

Koristite URI da biste referencirali sliku ili drugu medijsku datoteku smeštenu u bazu podataka. Na taj način, aplikacija ne preuzima stvarne podatke dok to zaista ne bude potrebno. Na primer, prilog u Microsoft Dataverse tabeli može vratiti "appres://datasources/Contacts/table/..." Kao u primeru sa kamerom, ovu sliku možete prikazati podešavanjem svojstva Image kontrole slike na ovu referencu, koja preuzima binarne podatke.

Kada sačuvate tip podataka medija, poput slike, u bazu podataka, aplikacija šalje stvarnu sliku ili podatke medija, a ne URI referencu.

Ograničenja veličine

Kao niske teksta i URI-ji, ovi tipovi podataka nemaju unapred zadato ograničenje dužine.

Binarni podaci na koje se odnose ove vrste podataka takođe nemaju unapred zadato ograničenje veličine. Na primer, slika snimljena pomoću kontrole kamere koja se sada referencira kao "appres://..." može da bude onoliko velika i visoke rezolucije koliko kamera u uređaju može da sakupi. Rezolucija, broj slika u sekundi i drugi atributi medijskih datoteka nisu ograničeni tipom podataka, ali posebne kontrole za reprodukciju i snimanje medija mogu imati sopstvena ograničenja.

Međutim, sve veličine podataka podležu količini dostupne memorije u aplikaciji. Pregledači na stonom računaru obično podržavaju više od 100 megabajta podataka. Međutim, količina dostupne memorije na uređaju kao što je telefon može biti daleko manja, obično u opsegu 30-70 megabajta. Da biste utvrdili da li će se vaša aplikacija pokrenuti unutar ovih ograničenja, testirajte uobičajene scenarije na svim uređajima na kojima bi trebalo da se pokrene.

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

Brojevi

Belešku

Power Apps samo podržava Float danas i to je tip svih brojeva. Decimalna podrška će uskoro biti dodata.

Power Fx podržava dve vrste brojeva: Decimalni i plutajući (sa sinonimima broj i valuta ).

Decimalni broj je najbolji za većinu poslovnih izračunavanja. On može precizno da predstavlja brojeve u bazi 10 što znači 0.1 da može biti tačno predstavljen i neće biti sklon greškama u zaokruživanju tokom izračunavanja. Ima dovoljno veliki raspon za svaku poslovnu potrebu, do 1028 sa do 28 cifara preciznosti. Decimalni broj je podrazumevani numerički tip podataka za većinu Power Fx domaćina koji se koristi ako se jednostavno piše 2*2.

Plutanje je najbolje za naučne proračune. Može predstavljati brojeve u mnogo većem opsegu, do 10308. Preciznost je ograničena na 15 decimalnih mesta, a matematika je zasnovana na osnovi 2 tako da ne može precizno da predstavlja neke uobičajene decimalne vrednosti. Float takođe ima veće performanse i omiljen je ako je to faktor i preciznost nije kritična.

Decimalni brojevi

Decimalni tip podataka najčešće koristi.NET decimalni tip podataka. Neki domaćini, kao što su Dataverse kolone formule koje se pokreću u programu SQL Serer, koriste sql Server decimalni tip podataka.

Decimalni broj je matematika onako kako ste učili u školi, koristeći osnovnih 10 cifara. To je veoma važno da biste izbegli greške u zaokruživanju iz veoma malih razlika koje mogu da se akumuliraju prilikom korišćenja matematike baze 2 (koju koristi Float).

Opseg je od pozitivnih 79,228,162,514,264,337,593,543,950,335 do negativnih 79,228,162,514,264,337,593,543,950,335. Znak za razdvajanje decimala može da se stavi bilo gde unutar ovih brojeva, obezbeđujući do 28 cifara preciznosti, a da i dalje bude precizno predstavljen. Na primer, 79,228,162,514,264.337593543950335 može biti tačno predstavljen, kao i 7.9228162514264337593543950335.

Brojevi plutajućih tka

Plutajući tip podataka, poznat i kao "Broj " ili " Valuta", koristi IEEE 754 standard sa dvostrukom preciznošću plutajuće tačke. Taj standard pruža veoma veliki raspon brojeva u kojima treba raditi, od –1,79769 x 10308 do 1,79769 x 10308. Najmanja vrednost koja se može predstaviti je 5 x 10–324.

Plutanje tačno može da predstavlja cele brojeve (ili cele brojeve) između –9,007,199,254,740,991 (–(253 – 1)) i 9,007,199,254,740,991 (2 53– 1), uključujući i njih. Ovaj opseg je veći od 32-bitnog (ili 4-bajtnog) celobrojnog tipa podataka koje najčešće koriste baze podataka. Međutim, aplikacije sa podlogom ne mogu predstavljati 64-bitne (ili 8-bajtne) celobrojne tipove podataka. Možda bi trebalo da uskladištite broj u tekstualno polje ili da upotrebite izračunatu kolonu da biste napravili kopiju broja u tekstualnom polju, tako da bude mapiran u tip podataka tekst u aplikaciji sa podlogom. Na ovaj način možete držati, prikazivati i unositi ove vrednosti, kao i upoređivati ih da biste utvrdili da li su jednake; međutim, na njima ne možete izvoditi numeričke proračune.

Aritmetika pokretnog zareza je približna, tako da ponekad može dati neočekivane rezultate na mnogim dokumentovanim primerima. Možete očekivati da formula 55 / 100 * 100 vrati tačno 55 i da (55 / 100 * 100) – 55 vrati tačno nulu. Međutim, druga formula vraća 7,1054 x 10–15, što je veoma mala vrednost, ali nije nula. Ta sitna razlika obično ne pravi problem, a aplikacija je zaokružuje kada prikazuje rezultat. Međutim, male razlike mogu se naslagati u narednim proračunima i dovesti do toga da daju pogrešan odgovor.

Sistemi baza podataka često skladište valute i izvršavaju proračune koristeći decimalnu matematiku, što nudi manji opseg, ali veću kontrolu nad preciznošću. Prilagođene aplikacije sa podlogom podrazumevano mapiraju valute u vrednosti sa pokretnim zarezom i nazad; stoga se rezultat može razlikovati od izračunavanja koja se obavljaju u prirodnom decimalnom tipu podataka. Ako će ova vrsta odstupanja uzrokovati probleme, možda bi trebalo da raditi s ovim vrednostima u vidu teksta, baš kao što to možete sa velikim celim brojevima opisanim ranije u ovom odeljku.

Podrazumevane vrednosti i konverzije

Belešku

Power Apps samo podržava Float danas i to je tip svih brojeva. Decimalna podrška će uskoro biti dodata.

Većina domaćina Power Fx podrazumevano koristi decimalni broj. Ovo utiče:

  • Literalni brojevi u formulama. Broj će 1.234 biti protumačen kao decimalna vrednost. Na primer, formula će protumačiti decimalni 1.234 * 2 i 1.234 kao decimalni 2 i dati decimalni rezultat.
  • Funkcija "Vrednost". Value( "1.234" ) će vratiti decimalnu vrednost. Na primer, formula funkcije Value( "1.234" ) * 2 " Vrednost " će protumačiti sadržaj tekstualne niske kao "1.234" decimalni broj.

Da biste radili sa plutajućim vrednostima, koristi se funkcija Float. Proširivanje gorenavedenog primera će Float( 1.234 ) konvertovati decimalni broj1.234 u plutajući . Plutanje se takođe može koristiti kao zamena za vrednost za konvertovanje niske koja sadrži broj plutajuće tačke Float( "1.234" ) kao što je plutajuća vrednost, što je potrebno ako broj ne može biti predstavljen kao decimalni broj.

U rezimeu:

Iskorišćenost Decimalni Pluta
Doslovni brojevi u formulama 1.234 Float( 1.234 )
Float( "1.234" )
Konverzija iz tekstualne niske Value( "1.234" )
Decimal( "1.234" )
Float( "1.234" )
Konverzija između numeričkih tipova Decimal( float ) Float( decimal )
Konverzija u tekstualnu nisku Text( decimal ) Text( float )

Mešanje numeričkih tipova

Plutajuće i decimalne vrednosti se mogu slobodno mešati. Kada se pomešaju, decimalne vrednosti se konvertuju u plutajuće vrednosti zbog većeg opsega. Pošto to može rezultirati gubitkom preciznosti, važno je da se njih dvoje ne mešaju besigranično. Pošto je decimalni broj podrazumevani literalni tip podataka i većina numeričkih funkcija će očuvati tip, relativno je lako izbeći premeštanje u "Plutajuće", a da to ne želite.

Na primer, razmotrite sledeće izračunavanje pomoću pac power-fx repl funkcije nakon instalacije Power Platform CLI. Pošto su oba broja decimalna , izračunavanje se obavlja u decimalnom broju, a rezultat zadržava punu preciznost:

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

Ako bi umesto toga drugi operand bio promenjen u Float onda bi cela računica bila urađena u Floatu i mali deo bi bio izgubljen:

>> 1.0000000000000000000000000001 * Float(2)
2

Datum, vreme i datum-vreme

Vremenske zone

Vrednosti datuma/vremena spadaju u ove kategorije:

  • Lokalno vreme korisnika: Ove vrednosti su uskladištene u formatu UTC (koordinisano univerzalno vreme), ali vremenska zona korisnika aplikacije utiče na to kako aplikacija prikazuje ove vrednosti i kako ih korisnik aplikacije navodi. Kao primer, isti trenutak se različito prikazuje korisniku u Kanadi nego što se prikazuje korisniku u Japanu.
  • Nezavisno od vremenske zone: Aplikacija prikazuje te vrednosti na isti način i korisnik aplikacije ih navodi na isti način, bez obzira na vremensku zonu. Isti trenutak se prikazuje na isti način korisniku u Kanadi nego kao i korisniku u Japanu. Autori aplikacija koji ne očekuju da se njihove aplikacije pokreću u različitim vremenskim zonama koriste te vrednosti jer su one sveukupno jednostavnije.

Ova tabela prikazuje nekoliko primera:

Tip datum/vreme Vrednost uskladištena u bazi podataka Vrednost je prikazana i unesena 7 sati zapadno od UTC Vrednost je prikazana i unesena 4 sata istočno od UTC
Lokalno vreme korisnika Nedelja,19.maj2019.
4:00
Subota,18.maj2019.
21:00
Nedelja,19.maj2019.
8:00
Nezavisno od vremenske zone Nedelja,19.maj2019.
4:00
Nedelja,19.maj2019.
4:00
Nedelja,19.maj2019.
4:00

Za korisnički lokalni datum/vreme, aplikacije sa podlogom koriste vremensku zonu pregledača ili uređaja, ali aplikacije zasnovane na modelu koriste korisničku postavku u usluzi Dataverse. Ove postavke se obično poklapaju, ali rezultati će se razlikovati ukoliko se te postavke razlikuju.

Koristite funkcije DateAdd i TimeZoneInformation za konvertovanje lokalnog vremena u UTC i nazad. Pogledajte primere na kraju dokumentacije za ove funkcije.

Numerički ekvivalenti

Aplikacije sa podlogom sadrže i izračunavaju sve vrednosti datuma/vremena, da li je lokalno vreme korisnika ili nezavisno od vremenske zone u UTC. Aplikacija prevodi vrednosti na osnovu vremenske zone korisnika aplikacije kada ih prikazuje i kada ih korisnik specificira.

Kada aplikacija sa podlogom pročita vrednost nezavisnu od vremenske zone iz izvora podataka ili upisuje takvu vrednost u izvor podataka, aplikacija automatski prilagođava vrednost da kompenzuje vremensku zonu korisnika aplikacije. Aplikacija tada tretira vrednost kao UTC vrednost, u skladu sa svim ostalim vrednostima datuma/vremena u aplikaciji. Zbog ove kompenzacije, originalna vrednost nezavisno od vremenske zone se prikazuje kada aplikacija prilagodi UTC vrednost za vremensku zonu korisnika aplikacije.

Ovo ponašanje možete bliže posmatrati koristeći funkciju Value za pristup osnovnoj numeričkoj vrednosti za vrednost datuma/vremena. Ova funkcija vraća vrednost datuma/vremena kao broj milisekundi od 1. januara 1970. 00:00:00.000 UTC.

Budući da se svaka vrednost datuma/vremena održava u UTC, formula Value( Date( 1970, 1, 1 ) ) neće vratiti nulu u većini delova sveta, jer funkcija Date vraća datum u UTC. Na primer, formula bi vratila 28.800.000 u vremensku zonu koja je pomerena od UTC za osam sati. Taj broj odražava broj milisekundi u osam sati.

Vraćajući se našem malopređašnjem primeru:

Tip datum/vreme Vrednost uskladištena u bazi podataka Vrednost je prikazana i unesena 7 sati zapadno od UTC Funkcija Value vraća
Lokalno vreme korisnika Nedelja,19.maj2019.
4:00
Subota,18.maj2019.
21:00
1,558,238,400,000
(Nedelja,19.maj2019.
4:00 UTC)
Nezavisno od vremenske zone Nedelja,19.maj2019.
4:00
Nedelja,19.maj2019.
4:00
1,558,263,600,000
(Nedelja,19.maj2019.
11:00 UTC)

Konvertovanje Unix vremena

Unix vremena odražavaju broj sekundi od 1. januara, 1970 00:00:00 UTC. Budući da aplikacije sa podlogom koriste milisekunde umesto sekundi, možete ih konvertovati množenjem ili deljenjem sa 1000.

Na primer, Unix vreme prikazuje 9. septembar 2001. u 01:46:40 UTC kao 1.000.000.000. Da biste prikazali vrednost datuma/vremena u aplikaciji sa podlogom, pomnožite taj broj sa 1000 da biste ga pretvorili u milisekunde, a zatim ga koristite u funkciji Text. Formula Text( 1000000000 * 1000, DateTimeFormat.UTC ) vraća nisku 2001-09-09T01:46:40.000Z.

Međutim, ta funkcija vraća Subota, 8. septembar 2001. 18:46:40 ako koristite format DateTimeFormat.LongDateTime24 u vremenskoj zoni koja je pomaknuta za –7 sati od UTC (7 sati zapadno od UTC). Ovaj rezultat pokazuje vrednost tipa datum-vreme pravilno na osnovu lokalne vremenske zone.

Da biste ga konvertovali u Unix vreme, podelite rezultat funkcije Value sa 1000:
RoundDown( Value( UnixTime ) / 1000, 0 )

Ako vam treba Unix vreme u vrednosti Datum vrednost za dalja izračunavanja ili prikaz unutar usluge Power Apps, koristite ovu formulu:
DateAdd( Date( 1970,1,1 ), UnixTime, Seconds )

SQL Server

SQL Server ima Datetime, Datetime2 i druge tipove podataka za datum/vreme koji ne uključuju pomak vremenske zone i ne naznačuju u kojoj se vremenskoj zoni nalaze. Aplikacije sa podlogom pretpostavljaju da su te vrednosti uskladištene u UTC i tretiraju ih kao lokalno vreme korisnika. Ako su vrednosti zamišljene kao nezavisne od vremenske zone, ispravite na UTC prevode koristeći funkciju TimeZoneOffset.

Aplikacije sa podlogom koriste obuhvaćene informacije o vremenskoj zoni u polja tipa Datetimeoffset pri konvertovanju vrednosti u interno UTC predstavljanje u aplikaciji. Aplikacije uvek koriste UTC kao vremensku zonu (nulti pomak vremenske zone) kada zapisuju podatke.

Aplikacije sa podlogom čitaju i zapisuju vrednosti tipa podataka vreme u sistemu SQL Server kao tekstualne niske u ISO 8601 formatu trajanja. Na primer, morate da raščlanite ovaj format niske i da upotrebite funkciju Time da konvertujete tekstualnu nisku "PT2H1M39S" na vrednost tipa vreme:

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 podataka o datumu i vremenu

Tipovi podataka Datum, Vreme i Datum i vreme imaju različita imena, ali svi imaju iste podatke o datumima i vremenima.

Vrednost tipa datum može da sadrži podatke o vremenu u sebi, što je obično ponoć. Vrednost tipa vreme može da sadrži podatke o datumu, što je obično 1. januar 1970. Dataverse takođe čuva vremenske informacije sa poljem tipa samo datum, ali podrazumevano prikazuje samo podatke o datumu. Slično tome, aplikacije sa podlogom ponekad razlikuju ove vrste podataka da bi se odredili podrazumevani formati i kontrole.

Ne preporučujemo vam da dodajete i oduzimate vrednosti direktno, jer vremenska zona i druge konverzije mogu izazvati zbunjujuće rezultate. Koristite funkciju Value da konvertujete vrednosti datuma/vremena u milisekunde i uzmete u obzir vremensku zonu korisnika aplikacije ili koristite funkcije DateAdd i DateDiff za dodavanje ili oduzimanje od jedne od ovih vrednosti.

Izbori i Da/Ne

Tipovi podataka za izbor i dve opcije pružaju dva ili više izbora koja korisnik aplikacije može da bira. Na primer, izbor Status porudžbine može ponuditi opcije Novo, Isporučeno, Fakturisano i Zatvoreno. Tip podataka sa dve opcije nudi samo dva izbora.

Oba ova tipa podataka pokazuju svoje oznake u kontekstu tekstualne niske. Na primer, kontrola oznake prikazuje jednu od opcija statusa naloga ako je svojstvo Text kontrole postavljeno na formulu koja upućuje na taj izbor. Oznake opcija mogu se lokalizovati za korisnike aplikacija na različitim lokacijama.

Kada korisnik aplikacije odabere opciju i sačuva tu promenu, aplikacija prenosi podatke u bazu podataka, koja podatke čuva u predstavljanju koje je nezavisno od jezika. Opcija u izboru se prenosi i čuva kao broj, a opcija u tipu podataka sa dve opcije se prenosi i čuva kao logička vrednost.

Oznake su date samo u svrhu prikaza. Ne možete izvršiti direktna poređenja sa oznakama, jer su one specifične za jezik. Umesto toga, svaki izbor ima nabrajanje koje radi sa osnovnim brojem ili logičkom vrednošću. Na primer, 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 tabele dele), ime nabrajanja skupa opcija podudara se sa imenom globalnog izbora. Za lokalne izbore (koji se prikazuju u tabeli), naziv može sadržati naziv tabele. Ovo ponašanje izbegava sukobe ako više tabela ima izbore koji imaju isto ime. Na primer, tabela Poslovni kontakti možda ima izbor Status porudžbine, a njegovo ime bi moglo biti Status porudžbine (poslovni kontakti). To ime sadrži jedan ili više razmaka i zagrade, tako da ga morate okružiti jednim navodnikom ako ga referencirate u formuli.

Pored toga, vrednosti dve opcije se takođe mogu ponašati kao logičke vrednosti. Na primer, vrednost sa dve opcije po imenu Status poreza možda ima oznake Oporezivo i Neoporezivo, koje odgovaraju vrednostima tačno i netačno, istim redom. Kao demonstraciju, možete koristiti ovu formulu:

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

Možete koristiti i ovu ekvivalentnu formulu:

If( ThisItem.Taxable, ...