Zdieľať cez


Typy údajov

Informácie prechádzajú Power Fx v malých, diskrétnych hodnotách, veľmi podobných bunkám tabuľky. Napríklad údaje v poli Narodeniny a Výročie by pretekali cez hodnotu Dátum, ktorá obsahuje rok, mesiac a deň. Power Fx vie, ako formátovať tieto hodnoty, obmedziť vstup na to, čo je pre každú z nich vhodné, a zdieľať hodnoty s databázou. Narodeniny sa líšia od výročia pre ľudí, ale systém s nimi zaobchádza rovnako. V tomto prípade, Dátum je príkladom typu údajov.

Tento článok poskytuje podrobnosti o typoch údajov, ktoré Power Fx podporuje. Keď sa Power Fx pripojí k externému zdroju údajov, každý typ údajov v tomto zdroji sa namapuje na typ údajov v Power Fx.

Typ údajov Description Príklady
Boolean Hodnota pravda alebo nepravda. Môže byť použitá priamo vo funkciách If, Filter a v ďalších funkciách funkcie bez porovnávania. pravda
Výber Výber z množiny možností podložených číslom. Tento typ údajov kombinuje lokalizovateľné textové označenie s číselnou hodnotou. Označenie sa objaví v aplikácii a číselná hodnota sa uloží a použije na porovnanie. Tento typ údajov je podporovaný funkciou Typ , ak je inštancia poľa Výber použitá ako názov. ThisItem.OrderStatus
Farba Špecifikácia farby vrátane alfa kanála. Farba.Červená
ColorValue( "#102030")
RGBA ( 255, 128, 0, 0,5 )
mena Hodnota meny uložená ako číslo s pohyblivou desatinnou čiarkou. Hodnoty mien sú rovnaké ako číselné hodnoty s možnosťou formátovania meny. Dátový typ Mena nie je podporovaný funkciou Typ . 123
4.56
Dátum Dátum bez času v časovom pásme používateľa aplikácie. Dátum (5, 16 2019)
DateTime Dátum s časom v časovom pásme používateľa aplikácie. DateTimeValue( "16. máj, 2019 1:23:09 PM" )
Desatinné Číslo s vysokou presnosťou, základnými 10 operáciami a obmedzeným dosahom. 123
Desatinné ("1,2345")
Plávať Číslo so štandardnou presnosťou, základnými operáciami 2 a širokým rozsahom. 123
8.903e121
1,234e-200
GUID A Globálny jedinečný identifikátor. GUID()
GUID( "123e4567-e89b-12d3-a456-426655440000" )
Hypertextový odkaz Textový reťazec, ktorý obsahuje hypertextový odkaz. "https://powerapps.microsoft.com"
Obrázok Textový reťazec Jednoznačný identifikátor zdroja (URI) k obrázku vo formáte .jpeg, .png, .svg, .gif alebo v inom bežnom formáte web-image. Dátový typ Obrázok nie je podporovaný funkciou Typ . MyImage bol pridaný ako zdroj aplikácie
"https://northwindtraders.com/logo.jpg"
"appres://blobmanager/7b12ffa2..."
Médiá Textový reťazec URI pre video alebo zvukový záznam. Dátový typ Médiá nie je podporovaný funkciou Typ . MyVideo pridané ako zdroj aplikácie
"https://northwindtraders.com/intro.mp4"
"appres://blobmanager/3ba411c..."
číslo Alias ​​pre Decimal (väčšina Power Fx hostiteľov) alebo Float (aplikácie Canvas). Ak je možné pre danú situáciu použiť ktorúkoľvek z variant čísel, pre maximálnu kompatibilitu použite Číslo . 123
0,0123
1e4
Záznam Záznam hodnôt údajov. Tento zložený typ údajov obsahuje inštancie iných typov údajov, ktoré sú uvedené v tejto téme. Ďalšie informácie: Práca s tabuľkami. Tento typ údajov je podporovaný funkciou Typ , ak sa použije inštancia a Záznam . { Spoločnosť: "Northwind Traders",
Personál: 35,
NonProfit: nepravda }
Odkaz na záznam Odkaz na záznam v tabuľke. Takéto odkazy sa často používajú pri polymorfných vyhľadávaniach. Ďalšie informácie: Práca s odkazmi. Tento typ údajov nie je podporovaný funkciou Typ . Prvý (Účty). Vlastník
Tabuľka Tabuľka záznamov. Všetky záznamy musia mať rovnaké názvy pre svoje polia s rovnakými typmi údajov a vynechané polia sa považujú za prázdne. Tento zložený typ údajov obsahuje inštancie iných typov údajov, ktoré sú uvedené v tejto téme. Ďalšie informácie: Práca s tabuľkami. Tento dátový typ je podporovaný funkciou Typ , ak sa použije inštancia a Tabuľka . Tabuľka( { Meno: "Sidney",
LastName: "Higa" },
{ FirstName: "Nancy",
LastName: "Anderson" } )
Text Textový reťazec Unicode. "Ahoj svet"
Čas Čas bez dátumu v časovom pásme používateľa aplikácie. Čas ( 11, 23, 45 )
Netypované Objekt nedeklarovaného typu. Základným objektom môže byť akýkoľvek existujúci typ a možno ho previesť na kompatibilné typy pomocou funkcií ako Boolean(), Value(), Tabuľka() atď. Ďalšie informácie pozrite si netypový objekt a Práca s JSON. ParseJSON("{ ""Pole"" : 1234 }").Pole
Void Používa sa iba na funkcie definované používateľom, znamená to, že funkcia nemá návratový typ. Tento typ údajov nie je podporovaný funkciou Typ . Aj keď funkcia nemá návratový typ alebo hodnotu, vždy môže vrátiť chybu. Ahoj(): Void = { Upozorniť( "Ahoj!" ) }
Áno/Nie Výber z množiny dvoch možností podložených boolovskou hodnotou. Tento typ údajov kombinuje lokalizovateľné textové označenie s boolovskou hodnotou. Označenie sa objaví v aplikácii a boolovská hodnota sa uloží a použije na porovnanie. Tento typ údajov je podporovaný funkciou Typ , ak sa názov používa inštancia poľa Áno/Nie . TátoPoložka.Zdaniteľné

Mnohé z týchto typov údajov sú podobné a majú rovnaké základné zobrazenie, ako napríklad pole hypertextový odkaz sa považuje za Text. Ďalšie typy údajov poskytujú lepšie predvolené prostredie vo formulároch a iných ovládacích prvkoch.

Blank

Všetky typy údajov môžu mať hodnotu prázdny (inými slovami, žiadna hodnota). Termín „null“ sa často používa v databázach pre tento koncept.

Použite funkciu Blank s funkciou Set alebo Patch na nastavenie premennej alebo poľa na prázdne. Napríklad Set( x, Blank() ) odstráni akúkoľvek hodnotu z globálnej premennej x.

Test hodnoty prázdne použitím funkcie IsBlank. Vymeňte možné hodnoty prázdne neprázdnymi hodnotami pomocou funkcie Coalesce.

Pretože všetky typy údajov podporujú hodnotu prázdne, typy údajov Boolovský a Dve možnosti majú efektívne tri možné hodnoty.

Všetky štyri z týchto typov údajov sú založené na textovom reťazci Unicode.

Vložený text

Vložené textové reťazce vo vzorci sú uzavreté v dvojitých úvodzovkách. Použite dve dvojité úvodzovky, aby predstavovali jednu dvojitú citáciu v textovom reťazci. Napríklad pomocou nasledujúceho vzorca vo vlastnosti OnSelect ovládacieho prvku Tlačidlo:

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

výsledkom je banner, keď sa stlačí tlačidlo, kde sa vynechá prvá a posledná dvojitá úvodzovka (pretože oddeľujú textový reťazec) a opakované dvojité úvodzovky okolo Ahoj, svet! budú nahradené jednou dvojitou úvodzovkou:

kontextové upozornenie so správou Jane povedala: „Ahoj, svet.“

Jednoduché úvodzovky sa používajú pre mená identifikátorov, ktoré obsahujú špeciálne znaky a nemajú špeciálny význam v textovom reťazci.

Interpolácia reťazca

Použite interpoláciu reťazca na vloženie vzorcov do textového reťazca. Tento prístup je často jednoduchší na prácu a vizualizáciu výstupu ako pomocou funkcie Concatenate alebo operátora & .

Pred textový reťazec uveďte znak dolára $ a uzatvorte vzorec, ktorý sa má vložiť, do zložených zátvoriek {} . Ak chcete do textového reťazca zahrnúť zloženú zátvorku, použite opakované zložené zátvorky: {{ alebo }}. Interpolácia reťazca sa dá použiť všade, kde je možné použiť štandardný textový reťazec.

Zvážte napríklad tento vzorec s globálnymi premennými Jablká nastavenými na 3 a Banány nastavenými na 4:

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

Tento vzorec vráti textový reťazec Máme 3 jablká, 4 banány, spolu 7 plodov. Premenné Jablká a Banány sa vložia do textu namiesto zložených zátvoriek spolu s výsledkom matematického vzorca Jablká + Banány. Medzery a iné znaky okolo zložených zátvoriek sa zachovajú tak, ako sú.

Vložené vzorce môžu obsahovať ľubovoľné funkcie alebo operátory. Všetko, čo je potrebné, je, aby sa výsledok vzorca mohol preniesť do textového reťazca. Tento vzorec napríklad vloží Prezývku , ak je zadaná, alebo Meno , ak nie, do pozdravu:

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

Ak je Prezývka nastavená na „Joe“, potom tento vzorec vytvorí textový reťazec Vitaj Joe, rád ťa spoznávam!. Ak je však Prezývkaprázdna a Meno je „Joseph“, potom tento vzorec vytvorí namiesto toho Milý Joseph, rád ťa spoznávam!.

Interpolácia reťazca môže vo vloženom vzorci zahŕňať štandardné textové reťazce. Ak napríklad neboli zadané ani Prezývka ani Meno, mohli by sme ako náhradu použiť „Priateľ“:

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

Interpolácie reťazcov môžu byť dokonca vnorené. Zoberte si tento príklad, v ktorom sú Meno, Prostredné meno a Priezvisko skombinované do pozdravu. Aj keď jedna alebo dve z týchto hodnôt sú prázdne, medzi časťami názvu sa zachová správny počet medzier. Ak nie je poskytnutá žiadna z častí, vnútorná interpolácia reťazca sa zrúti na prázdny reťazec a bude nahradená funkciou Coalesce za „Priateľ“.

$"Welcome {Coalesce( Trim( $"{First} {Middle} {Last}"}), "Friend" )}!"
Prvé Stred Posledná Result
John Qunicy Doe Welcome John Quincy Doe!
John prázdna Doe Welcome John Doe!
prázdna prázdna Doe Welcome Doe!
prázdna prázdna prázdna Welcome Friend!

Nové riadky

Vložené textové reťazce môžu obsahovať nové riadky. Zvážte napríklad nastavenie vlastnosti Text ovládacieho prvku Označenie na nasledujúcu hodnotu:

"Line 1
Line 2
Line 3"

Výsledkom tohto vzorca sú tri riadky zobrazené v ovládacom prvku označenia:

Vložený textový reťazec a ovládací prvok označenia zobrazujúci tri riadky s riadkom 1, riadkom 2 a riadkom 3.

Nové riadky sú tiež podporované s interpoláciou reťazcov:

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

Výsledkom je rovnaký výstup:

Vzorec na interpoláciu reťazca a ovládací prvok označenia zobrazujúci tri riadky s riadkom 1, riadkom 2 a riadkom 3.

Zdroje obrázkov a médií

V ponuke Súbor môžete ako zdroje aplikácií pridať obrázkové, video a zvukové súbory. Názov importovaného súboru sa stane názvom zdroja v aplikácii. Na tomto obrázku bolo do aplikácie pridané logo Northwind Traders s názvom nwindlogo:

Zdroj Northwind.

Ak chcete tento zdroj použiť v aplikácii, zadajte ho do vlastnosti Image ovládacieho prvku Obrázok:

Obrázok Northwind.

URI pre obrázky a iné médiá

Do posledného príkladu sa môžete ponoriť trochu hlbšie nastavením vlastnosti Text ovládacieho prvku Označenie na nwindlogo. Označenie zobrazuje textový reťazec:

Text Northwind.

Aplikácie Canvas odkazujú na každý obrazový alebo iný mediálny súbor, či už je v cloude alebo je pridaný ako zdroj aplikácie, pomocou textového reťazca URI.

Napríklad vlastnosť Image ovládacieho prvku Obrázok akceptuje nielen zdroje aplikácie, ale aj odkazy na obrázky na webe, ako napríklad „https://northwindtraders.com/logo.jpg"“;. Táto vlastnosť akceptuje aj vložené obrázky, ktoré používajú schému údajov URI, ako v tomto príklade:

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

Tento identifikátor URI zobrazuje zväčšenú verziu dvoch fialových diamantov:

Dvojité diamanty.

Môžete zobraziť posledný obrázok nasnímaný v ovládacom prvku Fotoaparát, ak nastavíte vlastnosť Image ovládacieho prvku Obrázok na vlastnosť Photo ovládacieho prvku Fotoaparát. Aplikácia drží obrázok v pamäti a vlastnosť Photo ovládacieho prvku fotoaparátu vracia odkaz URI na obrázok. Napríklad môžete nasnímať fotografiu a vlastnosť Photo fotoaparátu by mala vrátiť "appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1".

Identifikátor URI sa používa na odkazovanie na obrázok alebo iný mediálny súbor uložený v databáze. Týmto spôsobom aplikácia nezíska skutočné údaje, kým to nebude potrebné. Napríklad príloha v tabuľke Microsoft Dataverse môže vrátiť „appres://datasources/Contacts/table/...“ Rovnako ako v príklade fotoaparátu, aj tento obrázok môžete zobraziť nastavením vlastnosti Obrázok ovládacieho prvku obrázka na tento odkaz, ktorá načíta binárne údaje.

Keď ukladáte typ mediálnych údajov, napríklad obrázok, do databázy, aplikácia odošle aktuálny obrázok alebo mediálne údaje, nie odkaz URI.

Obmedzenia veľkosti

Ako textové reťazce a identifikátory URI nemajú tieto typy údajov vopred nastavený limit na ich dĺžku.

Binárne údaje, na ktoré tieto typy údajov odkazujú, tiež nemajú žiadne vopred stanovené obmedzenia veľkosti. Napríklad obrázok nasnímaný pomocou ovládacieho prvku kamery, ktorý je označený ako "appres://..." môže byť taký veľký a s vysokým rozlíšením, ako dokáže kamera zariadenia. Rozlíšenie, obnovovacia frekvencia a ďalšie atribúty mediálnych súborov nie sú obmedzené typom údajov, ale špecifické ovládacie prvky na prehrávanie a zachytávanie médií môžu mať svoje obmedzenia.

Všetky veľkosti údajov však závisia od množstva dostupnej pamäte v aplikácii. Prehliadače spustené v stolnom počítači zvyčajne podporujú viac ako 100 megabajtov údajov. Množstvo dostupnej pamäte na zariadení, ako je napríklad telefón, však môže byť oveľa nižšie, zvyčajne v rozsahu 30 – 70 megabajtov. Ak chcete zistiť, či vaša aplikácia beží v rámci týchto limitov, otestujte bežné scenáre na všetkých zariadeniach, na ktorých by mala bežať.

Ako najlepšiu prax uchovávajte údaje v pamäti iba tak dlho, ako je to potrebné. Nahrajte obrázky do databázy čo najskôr; sťahujte obrázky iba vtedy, keď o ne používateľ aplikácie požiada.

Čísla

Poznámka

Power Apps podporuje iba Float dnes a je to typ všetkých čísel. Čoskoro bude pridaná podpora pre desiatkové .

Power Fx podporuje dva druhy čísel: Desatinné a Pohyblivé (so synonymami Číslo a Mena).

Desatinné je najvhodnejšie pre väčšinu obchodných výpočtov. Dokáže presne reprezentovať čísla so základom 10, čo znamená, že 0.1 môže byť presne znázornené a zabráni chybám pri zaokrúhľovaní počas výpočtov. Má dostatočne veľký rozsah pre akékoľvek obchodné potreby, až 1028 s presnosťou až 28 číslic. Desatinné je predvolený číselný typ údajov pre väčšinu Power Fx hostiteľov, ktorý sa používa, ak sa jednoducho píše 2*2.

Float je najvhodnejší na vedecké výpočty. Môže reprezentovať čísla vo väčšom rozsahu, až do 10308. Presnosť je obmedzená na 15 desatinných miest a matematika je založená na základe 2, takže nemôže presne reprezentovať niektoré bežné desatinné hodnoty. Float má tiež vyšší výkon a je uprednostňovaný, ak je to faktor a presnosť nie je kritická.

Desatinné čísla

Dátový typ Decimal najčastejšie používa .NET desiatkový dátový typ. Niektorí hostitelia, ako napríklad Dataverse stĺpce vzorcov, ktoré sú spustené v SQL Serer, používajú desiatkový typ údajov servera SQL Server.

Desatinné počítava tak, ako ste sa učili v škole, s použitím základných 10 číslic, čo je dôležité, aby ste sa vyhli zaokrúhľovacím chybám z veľmi malých rozdielov, ktoré sa môžu nahromadiť pri použití matematiky so základom 2 (ako ho používa Float).

Rozsah je od kladnej 79,228,162,514,264,337,593,543,950,335 do zápornej 79,228,162,514,264,337,593,543,950,335. Desatinný oddeľovač je možné umiestniť kdekoľvek v rámci týchto čísel, pričom poskytuje presnosť až 28 číslic, pričom je stále presne znázornený. Napríklad 79,228,162,514,264.337593543950335 môže byť presne reprezentované, rovnako ako 7.9228162514264337593543950335.

Čísla s pohyblivou rádovou čiarkou

Dátový typ Float , známy aj ako Číslo alebo Mena, používa IEEE 754 s pohyblivou rádovou čiarkou s dvojitou presnosťou štandard. Táto norma poskytuje veľmi veľký počet čísel, s ktorými sa dá pracovať, od –1,79769 × 10308 do 1,79769 × 10308. Najmenšia hodnota, ktorú možno zobraziť, je 5 × 10–324.

Float môže presne reprezentovať celé čísla (alebo celé čísla) medzi –9,007,199,254,740,991 (–(253 – 1)) a 9,007,199,254,740,991 (253 – 1), vrátane. Tento rozsah je väčší ako 32-bitové (alebo 4-bajtové) celočíselné typy údajov, ktoré databázy bežne používajú. Aplikácie plátna však nemôžu znázorniť 64-bitové (alebo 8-bajtové) celočíselné typy údajov. Možno budete chcieť uložiť číslo do textového poľa alebo použiť vypočítaný stĺpec na vytvorenie kópie čísla v textovom poli, aby sa namapovalo na Text údaje zadajte aplikáciu plátno. Týmto spôsobom môžete tieto hodnoty zadržať, zobraziť, zadať a porovnať ich, aby ste zistili, či sú rovnaké; v tejto podobe však s nimi nemôžete vykonávať číselné výpočty.

Aritmetika s pohyblivou rádovou čiarkou je približná, takže pri mnohých zdokumentovaných príkladoch môže niekedy poskytnúť neočakávané výsledky. Môžete očakávať, že vzorec 55/100 × 100 vráti presne 55 a (55/100 × 100) – 55 vráti presne nulu. Druhý vzorec však vracia 7,1054 × 10–15, čo je veľmi malé, ale nie nulové. Tento malý rozdiel zvyčajne nespôsobuje problém a aplikácia ho pri zobrazení výsledku zaokrúhľuje. Malé rozdiely sa však môžu v následných výpočtoch znásobiť a zdanlivo poskytnúť nesprávnu odpoveď.

Databázové systémy často ukladajú meny a vykonávajú výpočty pomocou desatinnej matematiky, ktorá ponúka menší rozsah, ale väčšiu kontrolu nad presnosťou. V predvolenom nastavení aplikácie canvas mapujú meny na vstupe aj výstupe na hodnoty s pohyblivou desatinnou čiarkou; výsledok sa preto môže líšiť od výpočtov, ktoré sa vykonávajú v natívnom desatinnom dátovom type. V závislosti od potrieb presnosti vašej aplikácie možno budete chcieť pracovať s týmito hodnotami ako Text, ako je popísané vyššie pre veľké celé čísla.

Predvolené nastavenia a konverzie

Poznámka

Power Apps podporuje iba Float dnes a je to typ všetkých čísel. Čoskoro bude pridaná podpora pre desiatkové .

Väčšina Power Fx hostiteľov používa v predvolenom nastavení desiatkové číslo . Toto predvolené nastavenie znamená:

  • Doslovné čísla vo vzorcoch. Číslo 1.234 je interpretované ako Desatinná hodnota. Napríklad vzorec 1.234 * 2 interpretuje 1.234 a 2 ako desiatkové a vráti a Desatinný výsledok.
  • Hodnotová funkcia. Value( "1.234" ) vráti Desatinnú hodnotu. Napríklad vo vzorci Value( "1.234" ) * 2 funkcia Hodnota interpretuje obsah textového reťazca "1.234" ako Desatinné.

Na prácu s Float hodnotami sa používa funkcia Float . Rozšírením nášho príkladu, Float( 1.234 ) konvertuje desatinné1.234 na Float. Float môže byť tiež použitý ako náhrada za Hodnota na konverziu reťazca obsahujúceho číslo s pohyblivou rádovou čiarkou, ako napríklad Float( "1.234" ) na a Float hodnota, ktorá sa vyžaduje, ak číslo nemožno reprezentovať ako a Desatinné.

V súhrne:

Využitie Desatinné Plávať
Doslovné čísla vo vzorcoch 1.234 Float( 1.234 )
Float( "1.234" )
Konverzia z textového reťazca Value( "1.234" )
Decimal( "1.234" )
Float( "1.234" )
Konverzia medzi číselnými typmi Decimal( float ) Float( decimal )
Konverzia na textový reťazec Text( decimal ) Text( float )

Miešanie číselných typov

Float a Decimálne hodnoty je možné ľubovoľne miešať. Pri zmiešaní sa Desatinné hodnoty prevedú na Pohyblivé hodnoty kvôli väčšiemu rozsahu. Keďže táto konverzia môže viesť k strate presnosti, je dôležité tieto dve veci zbytočne nemiešať. Keďže Decimal je predvolený doslovný dátový typ a väčšina numerických funkcií zachováva typ, je pomerne jednoduché vyhnúť sa prechodu na Float bez toho, aby som si to prial.

Zvážte napríklad nasledujúci výpočet pomocou pac power-fx repl po inštalácii Power Platform CLI. Keďže obe čísla sú desatinné, výpočet sa vykonáva v desiatkovej sústave a výsledok si zachováva plnú presnosť:

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

Ak by sa namiesto toho druhý operand zmenil na Float , potom by sa celý výpočet vykonal v Float a malá zlomková časť by sa stratila:

>> 1.0000000000000000000000000001 * Float(2)
2

Date, Time a DateTime

Časové pásma

Hodnoty dátum/čas patria do týchto kategórií:

  • Miestny používateľ: Tieto hodnoty sú uložené v UTC (koordinovaný svetový čas), ale časové pásmo používateľa aplikácie ovplyvňuje, ako aplikácia zobrazuje tieto hodnoty a ako ich používateľ aplikácie špecifikuje. Napríklad ten istý okamih sa objaví inak pre používateľa v Kanade ako pre používateľa v Japonsku.
  • Nezávislé od časového pásma: Aplikácia zobrazuje tieto hodnoty rovnakým spôsobom a používateľ aplikácie ich určuje rovnakým spôsobom bez ohľadu na časové pásmo. Ten istý okamih sa zobrazí rovnakým spôsobom pre používateľa v Kanade ako pre používateľa v Japonsku. Autori aplikácií, ktorí neočakávajú spustenie svojich aplikácií v rôznych časových pásmach, používajú tieto hodnoty, pretože sú celkovo jednoduchšie.

V tejto tabuľke sú uvedené niektoré príklady:

Typ dátum/čas Hodnota uložená v databáze Hodnota zobrazená a zadaná 7 hodín západne od UTC Hodnota zobrazená a zadaná 4 hodiny východne od UTC
Miestny používateľ Nedeľa,máj19,2019
4:00
Sobota,máj18,2019
21:00
Nedeľa,máj19,2019
8:00
Nezávislé na časovom pásme Nedeľa,máj19,2019
4:00
Nedeľa,máj19,2019
4:00
Nedeľa,máj19,2019
4:00

Pre dátum/čas Miestne nastavenie používateľa používajú aplikácie plátna časové pásmo prehliadača alebo zariadenia, ale aplikácie s podporou modelov používajú nastavenie používateľa v Dataverse. Tieto nastavenia sa zvyčajne zhodujú, ale výsledky sa budú líšiť, ak sa tieto nastavenia líšia.

Použite funkcie DateAdd a TimeZoneInformation na prevod miestneho času na UTC a späť. Pozrite si príklady týchto funkcií na konci dokumentácie.

Numerické ekvivalenty

Aplikácie plátna uchovávajú a vypočítavajú všetky hodnoty dátumu a času, či už Miestne nastavenie používateľa alebo Nezávislé od časového pásma v UTC. Aplikácia prekladá hodnoty na základe časového pásma používateľa aplikácie, keď ich zobrazuje a kedy ich používateľ špecifikuje.

Keď aplikácia plátna číta hodnotu Nezávislé od časového pásma zo zdroja údajov alebo zapíše takúto hodnotu do zdroja údajov, aplikácia automaticky upraví hodnotu tak, aby kompenzovala časové pásmo používateľa aplikácie. Aplikácia potom zaobchádza s hodnotou ako s hodnotou UTC, ktorá je konzistentná so všetkými ostatnými hodnotami dátumu a času v aplikácii. Z dôvodu tejto kompenzácie sa originálna hodnota Nezávislé od časového pásma objaví, keď aplikácia upraví hodnotu UTC pre časové pásmo používateľa aplikácie.

Toto správanie môžete pozornejšie sledovať pomocou funkcie Value na prístup k základnej číselnej hodnote pre hodnotu dátumu a času. Táto funkcia vráti hodnotu dátumu a času ako počet milisekúnd od 1. januára, 1970 00:00:00.000 UTC.

Pretože každá hodnota dátumu a času sa uchováva v UTC, vzorec Value( Date( 1970, 1, 1 ) ) vo väčšine častí sveta nevráti nulu, pretože funkcia Date vráti dátum v UTC. Vzorec by napríklad vrátil 28 800 000 v časovom pásme, ktoré je posunuté od UTC o osem hodín. Toto číslo odráža počet milisekúnd za osem hodín.

Vráťme sa k nášmu príkladu:

Typ Date/Time Hodnota uložená v databáze Hodnota zobrazená a zadaná 7 hodín západne od UTC Vráti funkcia Value
Miestny používateľ Nedeľa,máj19,2019
4:00
Sobota,máj18,2019
21:00
1,558,238,400,000
(Nedeľa,máj19,2019
4:00 AM UTC)
Nezávislé na časovom pásme Nedeľa,máj19,2019
4:00
Nedeľa,máj19,2019
4:00
1,558,263,600,000
(Nedeľa,máj19,2019
11:00 AM UTC)

Konverzia unixových časov

Unixové časy vyjadrujú počet sekúnd od 1. januára 1970 00:00:00 UTC. Pretože aplikácie plátna používajú milisekundy namiesto sekúnd, môžete medzi nimi konvertovať vynásobením alebo delením číslom 1000.

Napríklad unixový čas ukazuje 9. septembra 2001 o 01:46:40 UTC ako 1 000 000 000. Ak chcete v aplikácii plátna zobraziť túto hodnotu dátumu a času, vynásobte toto číslo číslom 1000, aby ste ju prepočítali na milisekundy, a potom ju použite vo funkcii Text. Vzorec Text( 1000000000 * 1000, DateTimeFormat.UTC ) vráti reťazec 2001-09-09T01:46:40.000Z.

Táto funkcia sa však vracia Sobota, september 8, 2001 18:46:40, ak používate formát DateTimeFormat.LongDateTime24 v časovom pásme, ktoré je posunuté o -7 hodín od UTC (7 hodín západne od UTC). Tento výsledok ukazuje hodnotu DateTime správne na základe miestneho časového pásma.

Ak chcete previesť na unixový čas, vydeľte výsledok z funkcie Value číslom 1000:
Zaokrúhlenie nadol (hodnota (UnixTime) / 1000, 0)

Ak potrebujete unixový čas v hodnote Date pre ďalšie výpočty alebo zobrazenie v rámci Power Apps, použite tento vzorec:
DateAdd (Dátum (1970,1,1), UnixTime, sekundy)

SQL Server

SQL Server má údajové typy pre dátum/čas Datetime, Datetime2 a ďalšie, ktoré neobsahujú posun časového pásma a neuvádzajú, v ktorom časovom pásme sa nachádzajú. Aplikácie plátna predpokladajú, že tieto hodnoty sú uložené v UTC a zaobchádzajú s nimi ako s Miestne nastavenie používateľa. Ak majú byť hodnoty nezávislé od časového pásma, korigujte preklady UTC pomocou funkcie TimeZoneOffset.

Aplikácie plátna používajú zahrnuté informácie o časovom pásme v poliach Datetimeoffset pri prevode hodnoty na interné zobrazenie UTC aplikácie. Aplikácie vždy používajú UTC ako časové pásmo (nulového posunutie časového pásma), keď zapisujú údaje.

Aplikácie plátna čítajú a zapisujú hodnoty typu údajov Time v SQL serveri ako textové reťazce vo formáte doby trvania podľa normy ISO 8601. Napríklad musíte analyzovať tento formát reťazca a použiť funkciu Time na prevod textového reťazca "PT2H1M39S" na hodnotu 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)

Kombinácia informácií o dátume a čase

Dátum, Čas a DátumČas majú rôzne názvy, ale všetky majú rovnaké informácie o dátumoch a časoch.

Hodnota Date môže obsahovať časové informácie, ktoré sú zvyčajne o polnoci. Hodnota Time môže niesť informácie o dátume, čo je zvyčajne 1. január 1970. Dataverse ukladá tiež časové informácie pomocou poľa Iba dátum, ale predvolene zobrazuje iba informácie o dátume. Podobne aj aplikácie plátna niekedy rozlišujú medzi týmito typmi údajov, aby určili predvolené formáty a ovládacie prvky.

Priame pridanie a odčítanie hodnôt dátumu a času sa neodporúča, pretože časové pásmo a iné konverzie môžu spôsobiť mätúce výsledky. Buď použite funkciu Value, ktorá najskôr skonvertuje hodnoty dátumu a času na milisekundy a zohľadní časové pásmo používateľa aplikácie, alebo použite funkcie DateAdda DateDiff na pridanie alebo odčítanie jednej z týchto hodnôt.

Voľby a Áno/Nie.

Možnosti a dátové typy s dvoma možnosťami poskytujú používateľovi aplikácie dve alebo viac možností výberu. Napríklad voľba Stav objednávky môže ponúknuť možnosti Nové, Odoslané, Fakturované a Zatvorené. Typ údajov s dvoma možnosťami ponúka iba dve možnosti.

Oba tieto typy údajov zobrazujú svoje označenia v kontexte textového reťazca. Ovládací prvok označenia napríklad zobrazuje jednu z možností stavu objednávky, ak je vlastnosť Text ovládacieho prvku nastavená na vzorec, ktorý odkazuje na túto voľbu. Označenia možností môžu byť lokalizované pre používateľov aplikácií na rôznych miestach.

Keď používateľ aplikácie vyberie možnosť a uloží túto zmenu, aplikácia prenesie údaje do databázy, ktorá ich uloží do reprezentácie nezávislej od jazyka. Voľba vo voľbe sa prenáša a ukladá ako číslo a voľba v type údajov s dvoma možnosťami sa prenáša a ukladá ako booleovská hodnota.

Označenia slúžia iba na účely zobrazenia. Nemôžete vykonávať priame porovnania s označeniami, pretože sú špecifické pre určitý jazyk. Namiesto toho má každá voľba enumeráciu, ktorá pracuje s podkladovým číslom alebo booleovskou hodnotou. Napríklad nemôžete použiť tento vzorec:

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

Ale môžete použiť tento vzorec:

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

Pre globálne voľby (ktoré tabuľky zdieľajú) sa názov enumerácie množiny možností zhoduje s názvom globálnej voľby. V prípade miestnych volieb (ktoré sú rozsahom obmedzené na tabuľku) môže názov obsahovať názov tabuľky. Toto správanie zabráni konfliktom, ak má viacero tabuliek možnosti, ktoré majú rovnaký názov. Napríklad tabuľka Obchodné vzťahy môže obsahovať voľbu Stav objednávky a jej názov môže byť OrderStatus (Obchodné vzťahy). Tento názov obsahuje jednu alebo viac medzier a zátvoriek, takže ak ho vo vzorci odkazujete, musíte ho ohraničiť jednoduchými úvodzovkami.

Hodnoty s dvoma možnosťami sa môžu správať aj ako booleovské hodnoty. Napríklad hodnota s dvoma možnosťami pomenovaná TaxStatus môže mať označenia Zdaniteľný a Nezdaniteľný, ktoré zodpovedajú hodnotám pravda a nepravda. Na ukážku môžete použiť tento vzorec:

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

Môžete tiež použiť tento ekvivalentný vzorec:

If( ThisItem.Taxable, ...