Споделяне чрез


Типове данни

Информацията преминава Power Fx в малки, дискретни стойности, много подобни на клетките на електронна таблица. Например, данни в полето Рожден ден и полето Юбилей ще преминава през стойността Дата, която включва годината, месеца и деня. Power Fx знае как да форматира тези стойности, да ограничи входа до това, което е подходящо за всяка от тях, и да сподели стойностите с база данни. Рождените дни се различават от годишнините за хората, но системата ги обработва по абсолютно същия начин. В такъв случай, Дата е пример за тип данни.

Тази статия предоставя подробности за типовете данни, които Power Fx поддържат. Когато Power Fx се свързва с външен източник на данни, всеки тип данни в този източник се съпоставя с тип данни Power Fx.

Тип на данни Описание Примери
Булева Стойност вярно или false. Може да се използва директно в If, Filter и други функции без сравнение. верен
Избор Избор от набор от опции, подкрепени с номер. Този тип данни комбинира локализиращ се текстов етикет с числова стойност. Етикетът се появява в приложението, а числовата стойност се съхранява и използва за сравнения. Този тип данни се поддържа от функцията Тип , ако екземпляр на поле Избор се използва по име. ThisItem.OrderStatus
Цвят Цветна спецификация, включително алфа канал. Цвят.Червен
ColorValue( "#102030" )
RGBA( 255, 128, 0, 0.5 )
Валута Стойност на валутата, която се съхранява в число с плаваща запетая. Стойностите на валутата са същите като числовите стойности с опциите за форматиране на валута. Типът данни Валута не се поддържа от функцията Тип . 123
4.56
Дата Дата без време във часовата зона на потребителя на приложението. Дата( 2019, 5, 16 )
ДатаЧас Дата с време във часовата зона на потребителя на приложението. DateTimeValue( "16 май, 2019 1:23:09 PM" )
Десетичен Номер с висока точност, базови операции 10 и ограничен обхват. 123
Десетичен ( "1.2345" )
Плавам Номер със стандартна прецизност, операции с основа 2 и широк обхват. 123
8.903Е121
1.234д-200
GUID Глобален уникален идентификатор. GUID()
GUID( "123e4567-e89b-12d3-a456-426655440000" )
Хипервръзка Текстов низ, който съдържа хипервръзка. "https://powerapps.microsoft.com"
Изображение Универсален идентификатор на ресурса (URI) текстов низ до изображение в .jpeg, .png, .svg, .gif или друг общ формат на уеб изображения. Типът данни Изображение не се поддържа от функцията Тип . MyImage добавен като ресурс на приложението
"https://northwindtraders.com/logo.jpg"
"appres://blobmanager/7b12ffa2..."
Медии URI текстов низ към видео или аудио запис. Типът данни на носителя не се поддържа от функцията Тип . MyVideo е добавен като ресурс на приложението
"https://northwindtraders.com/intro.mp4"
"appres://blobmanager/3ba411c..."
Номер Псевдоним за Decimal (повечето Power Fx хостове) или Float (приложения на Canvas). Ако някоя от разновидностите на числото може да се използва за дадена ситуация, използвайте Number за максимална съвместимост. 123
0,0123
1e4
Записвайте Запис от стойности на данните. Този сложен тип данни съдържа случаи на други типове данни, изброени в тази тема. Повече информация: Работа с таблици. Този тип данни се поддържа от функцията Type ако се използва екземпляр на Record . { Компания: "Northwind Traders",
Staff: 35,
NonProfit: false }
Справка за запис Препратка към запис в таблица. Такива препратки често се използват при полиморфни търсения. Повече информация: Работа със справки. Този тип данни не се поддържа от функцията Type . Първи(Акаунти).Собственик
Таблица Таблица със записи. Всички записи трябва да имат еднакви имена за техните полета със същите типове данни, а пропуснатите полета се третират като празно. Този сложен тип данни съдържа случаи на други типове данни, изброени в тази тема. Повече информация: Работа с таблици. Този тип данни се поддържа от функцията Type ако се използва екземпляр на Table . Таблица ( { Име: "Сидни",
LastName: "Higa" },
{ FirstName: "Nancy",
LastName: "Anderson" } )
Текст Текстов низ на Unicode. „Здравей, свят“
време Час без дата в часовата зона на потребителя на приложението. Време (11, 23, 45)
Без тип Обект от недеклариран тип. Основният обект може да бъде всеки съществуващ тип и може да бъде преобразуван в съвместими типове с помощта на функции като Boolean(), Value(), Table() и др. За повече информация, вижте Нетипизиран обект и Работа с JSON. ParseJSON("{ ""Поле"" : 1234 }").Поле
Празнота Използва се само от поведение, дефинирано от потребителя, то показва, че дадена функция няма тип връщане. Този тип данни не се поддържа от функцията Type . Въпреки че функцията няма върнат тип или стойност, тя винаги може да върне грешка. Hi(): Void = { Notify( "Здравей!") }
Да/Не Избор от набор от две опции, подкрепени с булева стойност. Този тип данни комбинира локализиращ се текстов етикет с булева стойност. Етикетът се появява в приложението, а булевата стойност се съхранява и използва за сравнения. Този тип данни се поддържа от функцията Type , ако екземпляр на полето Да/Не се използва по име. Този артикул. Облагаем

Много от тези типове данни са сходни и имат същото основно представяне, като например полето Хипервръзка, което се третира като Текст. Допълнителните типове данни осигуряват по-добро изживяване по подразбиране във формуляри и други контроли.

Празно

Всички типове данни могат да имат стойност празно (с други думи, без стойност). Терминът "нула" често се използва в бази данни за тази концепция.

Използвайте функцията Blank с функцията Set или Patch за задаване на променлива или поле на празно. Например, Set( x, Blank() ) премахва всяка стойност в глобалната променлива х.

Тест за стойност празно чрез използване на функцията IsBlank. Заменете възможни стойности празно с не-празни стойности чрез използване на функцията Coalesce.

Тъй като всички типове данни поддържат типове данни празно, Булево и Две опции ефективно имат три възможни стойности.

Всички четири от тези типове данни са базирани на текстов низ на Unicode.

Вграден текст

Вградените текстови низове във формула са затворени в двойни кавички. Използвайте две двойни кавички заедно, за да представите една двойна кавичка в текстов низ. Например, използвайки следната формула в свойството OnSelect на контролата бутон:

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

води до появата на банер при натискане на бутона, в който първата и последната двойна кавичка са пропуснати (тъй като ограничават текстовия низ), а повтарящите се двойни кавички около Hello, World! са заменени с единична двойна кавичка:

изскача известие със съобщението Джейн каза „Здравей, свят”.

Единичните кавички се използват за имена на идентификатор, които съдържат специални символи и нямат специално значение в текстов низ.

Интерполация на низове

Използвайте интерполация на низове, за да вградите формули в текстов низ. Този подход често е по-лесен за работа и визуализиране на изхода, отколкото използването на Concatenate функция или & оператор.

Поставете пред текстовия низ знак за долар $ и оградете формулата, която ще бъде вградена, с фигурни скоби { }. За да включите фигурна скоба в текстовия низ, използвайте повтарящи се фигурни скоби: {{ или }}. Интерполацията на низ може да се използва навсякъде, където може да се използва стандартен текстов низ.

Например, разгледайте тази формула с глобални променливи Ябълки настроени на 3 и Банани настроени на 4:

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

Тази формула връща текстовия низ Имаме 3 ябълки, 4 банана, което прави общо 7 плода. Променливите Ябълки и Банани са вмъкнати в текста, като заместват къдравите скоби, заедно с резултата от математическата формула Ябълки+Банани. Интервалите и другите знаци около фигурните скоби се запазват такива, каквито са.

Вградените формули могат да включват всякакви функции или оператори. Всичко, което се изисква, е резултатът от формулата да може да бъде приведен към текстов низ. Например, тази формула вмъква NickName ако е предоставен, или FirstName ако не е, в поздрав:

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

Ако за NickName е зададено "Joe", тази формула създава текстовия низ Welcome Joe, it's great to meet you!. Но ако NickName е празно, а FirstName е "Joseph", тогава вместо това тази формула създава Скъпи Джоузеф, приятно ми е да се запознаем!.

Интерполацията на низ може да включва стандартни текстови низове във вградената формула. Например, ако не са предоставени нито NickName, нито FirstName, все пак можем да предоставим "Friend" като заместител:

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

Интерполациите на низове могат дори да бъдат вложени. Разгледайте този пример, в който първото, средното и фамилното име са обединени в поздрав. Дори ако една или две от тези стойности са празни, правилният брой интервали се поддържат между частите на името. Ако не е предоставена нито една от частите, интерполацията на вътрешния низ ще се свие до празен низ и ще бъде заменена от функцията Coalesce от „Приятел“.

$"Welcome {Coalesce( Trim( $"{First} {Middle} {Last}"}), "Friend" )}!"
Собствено В средата Последно Result
John Qunicy Doe Welcome John Quincy Doe!
John празно Doe Welcome John Doe!
празно празно Doe Welcome Doe!
празно празно празно Welcome Friend!

Нови редове

Вградените текстови низове могат да съдържат нови редове. Например задайте следното свойство Text на контрола Label за следното:

"Line 1
Line 2
Line 3"

Тази формула води до три реда, показани в контролата на етикета:

Вграден текстов низ и контрола на етикета, показващи три реда с ред 1, ред 2 и ред 3.

Новите редове също се поддържат с интерполация на низове:

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

Което води до същия резултат:

Формула за интерполация на низ и контрола на етикета, показваща три реда с ред 1, ред 2 и ред 3.

Изображения и медийни ресурси

Чрез менюто файл, можете да добавите изображения, видео и аудио файлове като ресурси на приложението. Името на импортирания файл става името на ресурса в приложението. В тази графика логото на Northwind Traders, което се казва nwindlogo, е добавено към приложението:

Ресурс Northwind.

За да използвате този ресурс в приложение, посочете го в свойството Изображение на контролата Изображение:

Изображение на северния вятър.

URI за изображения и други носители

Можете да копаете малко по-дълбоко в последния пример, като зададете свойството Текст на контрола етикет на nwindlogo. Етикетът показва текстов низ:

Текст на Northwind.

Приложенията за платно препращат към всеки образ или друг медиен файл, независимо дали е в облака или добавен като ресурс на приложение, чрез текстов низ от URI.

Например, свойството Изображение на контрола върху изображението приема не само ресурси на приложението, но и връзки към изображения в мрежата, като например „https://northwindtraders.com/logo.jpg"”. Свойството приема и вградени изображения, които използват схема на URI на данни, както в този пример:

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

Този URI показва мащабирана версия на два лилави диаманта:

Двойни диаманти.

Можете да покажете най-новото изображение, заснето в контролата Камера, ако зададете свойството Изображение на контрола на изображението към свойството снимка на управлението на камерата. Приложението съхранява изображението в паметта и свойството снимка на управлението на камерата връща URI препратка към изображението. Например, можете да направите снимка и свойството снимка на камерата може да върне "appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1".

Използвате URI за препратка към изображение или друг медиен файл, съхраняван в база данни. По този начин приложението не извлича действителните данни, докато не е необходимо. Например прикачен файл в Microsoft Dataverse таблицата може да се върне "appres://datasources/Contacts/table/..." Както в примера за камера, можете да покажете това изображение, като зададете Изображение свойство на контрола на изображението към тази препратка, която извлича двоичните данни.

Когато запишете тип медия данни, като изображение, в база данни, приложението изпраща действителното изображение или медийни данни, а не URI референцията.

Ограничения за размер

Като текстови низове и URI, тези типове данни нямат предварително зададено ограничение за дължината им.

Двоичните данни, на които се отнасят тези типове данни, също нямат предварително зададено ограничение по размер. Например, изображение, заснето чрез управлението на камерата, което е обозначено като "appres://..." може да бъде толкова голямо и с висока разделителна способност, колкото камерата на устройството може да събере. Разделителната способност, честотата на кадрите и други атрибути на мултимедийните файлове не са ограничени от типа данни, но специфичните контроли за възпроизвеждане и заснемане на медиите могат да имат свои собствени ограничения.

Въпреки това, всички размери на данни подлежат на количеството налична памет в приложението. Браузърите, работещи на настолен компютър, обикновено поддържат повече от 100 мегабайта данни. Обемът на наличната памет на устройство като телефон може да е далеч по-нисък, обикновено в диапазона 30-70 мегабайта. За да определите дали приложението ви работи в рамките на тези ограничения, тествайте общи сценарии на всички устройства, на които трябва да работи.

Като най-добра практика, съхранявайте данни в паметта само толкова дълго, колкото е необходимо. Качете изображения в база данни веднага щом можете; изтегляне на изображения само когато потребителят на приложението ги поиска.

Номера

Бележка

Power Apps поддържа само Float днес и това е типът на всички числа. Decimal поддръжка ще бъде добавена скоро.

Power Fx поддържа два вида числа: Decimal и Float (със синоними Number и Валута).

Десетичният е най-добрият за повечето бизнес изчисления. Може да представя точно числата в основа 10, което означава, че 0.1 може да бъде точно представено и ще избегне грешки при закръгляване по време на изчисленията. Има достатъчно голям диапазон за всякакви бизнес нужди, до 1028 с до 28 цифри на точност. Decimal е цифровият тип данни по подразбиране за повечето Power Fx хостове, използван, ако човек просто пише 2*2.

Float е най-доброто за научни изчисления. Може да представя числа в по-голям диапазон, до 10308. Точността е ограничена до 15 знака след десетичната запетая и математиката се основава на база 2, така че не може да представи точно някои често срещани десетични стойности. Float също има по-висока производителност и е предпочитан, ако това е фактор и прецизността не е критична.

Десетични числа

Типът данни Decimal най-често използва .NET десетичен тип данни. Някои хостове, като например Dataverse колони с формули, които се изпълняват в SQL Serer, използват десетичния тип данни SQL на сървъра.

Decimal извършва математика по начина, по който сте учили в училище, като използва цифри с основа 10, важно е да се избегнат грешки при закръгляване от много малки разлики, които могат да се натрупат при използване на математика с база 2 (както се използва от Плаване).

Диапазонът е от положителен 79,228,162,514,264,337,593,543,950,335 до отрицателен 79,228,162,514,264,337,593,543,950,335. Десетичният разделител може да бъде поставен навсякъде в рамките на тези числа, осигурявайки до 28 цифри точност и пак да бъде прецизно представен. Например 79,228,162,514,264.337593543950335 може да бъде точно представен, както и 7.9228162514264337593543950335.

Числа с плаваща запетая

Типът данни Float известен също като Number или Currency, използва IEEE 754 с плаваща запетая с двойна точност стандарт. Този стандарт осигурява много голям диапазон от числа, в които да се работи, от –1.79769 х 10308 до 1.79769 x 10308. Най-малката стойност, която може да бъде представена, е 5 x 10–324.

Float може точно да представлява цели числа (или цели числа) между –9,007,199,254,740,991 (–(253 – 1)) и 9,007,199,254,740,991 (253 – 1), включително. Този диапазон е по-голям от 32-битовите (или 4-байтовите) цели типове данни, които често използват базите данни. Приложенията за платно обаче не могат да представляват 64-битови (или 8-байтови) цели типове данни. Може да искате да съхраните числото в текстово поле или да използвате изчислена колона, за да направите копие на числото в текстово поле, така че да се преобразува в Текстови данни въведете приложението canvas. По този начин можете да задържите, покажете и въведете тези стойности и да ги сравните, за да определите дали са равни; обаче не можете да извършвате числени изчисления върху тях в тази форма.

Аритметиката с плаваща запетая е приблизителна, така че понякога може да даде неочаквани резултати с много документирани примери. Може да очаквате формулата 55/100 * 100 да върне точно 55 и (55/100 * 100) - 55 да върне точно нула. Последната формула обаче връща 7.1054 х 10-15, което е много малко, но не е нула. Тази малка разлика обикновено не създава проблем и приложението я закръгля, когато показва резултата. Въпреки това, малките разлики могат да се съчетаят в последващи изчисления и изглежда да дадат грешен отговор.

Системите от бази данни често съхраняват валути и извършват изчисления, като използват десетичната математика, която предлага по-малък диапазон, но по-голям контрол върху точността. По подразбиране приложенията за платно картографират валути във и извън стойности с плаваща запетая; следователно резултатът може да се различава от изчисленията, които се правят в естествен тип десетични данни. В зависимост от нуждите от прецизност на вашето приложение, може да искате да работите с тези стойности като Текст, точно както е описано по-рано за големи цели числа.

По подразбиране и реализации

Бележка

Power Apps поддържа само Float днес и това е типът на всички числа. Decimal поддръжка ще бъде добавена скоро.

Повечето Power Fx хостове използват Decimal по подразбиране. Наличието на това по подразбиране означава:

  • Буквални числа във формули. Числото 1.234 се интерпретира като десетична стойност. Например формулата 1.234 * 2 интерпретира 1.234 и 2 като Decimal и връща a Десетичен резултат.
  • Стойностна функция. Value( "1.234" ) връща Decimal стойност. Например във формулата Value( "1.234" ) * 2 функцията Value интерпретира съдържанието на текстовия низ "1.234" като Десетичен.

За работа с Float стойности се използва функцията Float . Разширявайки нашия пример, Float( 1.234 ) преобразува Decimal1.234 в Float. Float може също да се използва като заместител на Value за преобразуване на низ, съдържащ число с плаваща запетая като Float( "1.234" ) в a Float стойност, която е необходима, ако числото не може да бъде представено като a Десетичен.

В обобщение:

Използване десетична Поплавък
Литерални числа във формули 1.234 Float( 1.234 )
Float( "1.234" )
Преобразуване от текстов низ Value( "1.234" )
Decimal( "1.234" )
Float( "1.234" )
Преобразуване между числови типове Decimal( float ) Float( decimal )
Преобразуване в текстов низ Text( decimal ) Text( float )

Смесване на числови типове

Float и Decimal стойности могат да се смесват свободно. Когато са смесени, Decimal стойности се преобразуват в Float стойности поради по-големия диапазон. Тъй като това преобразуване може да доведе до загуба на прецизност, важно е двете да не се смесват ненужно. Тъй като Decimal е литералният тип данни по подразбиране и повечето цифрови функции запазват типа, сравнително лесно е да се избегне преминаването към Float без да го желаете.

Например, разгледайте следното изчисление, като използвате pac power-fx repl след инсталиране на Power Platform CLI. Тъй като и двете числа са Decimal, изчислението се извършва в Decimal и резултатът запазва пълна точност:

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

Ако вместо това вторият операнд беше променен на Float тогава цялото изчисление ще бъде направено в Float, а малка дробна част ще бъде загубена:

>> 1.0000000000000000000000000001 * Float(2)
2

Дата, час и дата DateTime

Часови зони

Стойностите за дата/час попадат в следните категории:

  • Локален потребител: Тези стойности се съхраняват в UTC (координирано универсално време), но часовата зона на потребителя на приложението влияе върху начина, по който приложението показва тези стойности и как потребителят на приложението ги определя. Като пример, един и същ момент се появява по-различно за потребителя в Канада, отколкото за потребителя в Япония.
  • Независимо от часовата зона: Приложението показва тези стойности по един и същи начин и потребителят на приложението ги посочва по същия начин, независимо от часовата зона. Същият момент се появява по същия начин за потребителя в Канада, както за потребителя в Япония. Авторите на приложения, които не очакват приложенията им да се стартират в различни часови зони, използват тези стойности, защото като цяло те са по-прости.

Тази таблица показва някои примери:

Тип дата/час Стойност, съхранявана в базата данни Показана стойност и въведена 7 часа западно от UTC Показана стойност и въведена 4 часа източно от UTC
Локален потребител неделя,май19,2019
4:00 ч.
събота,май18,2019
21:00 ч.
неделя,май19,2019
8:00 ч.
Независимо от часовата зона неделя,май19,2019
4:00 ч.
неделя,май19,2019
4:00 ч.
неделя,май19,2019
4:00 ч.

За дата/час на Местно време на потребителя приложенията за платно използват часовата зона на браузъра или устройството, но задвижваните от модели приложения използват настройката на потребителя в Dataverse. Тези настройки обикновено съвпадат, но резултатите ще се различават, ако тези настройки се различават.

Използвайте функциите DateAdd и TimeZoneInformation за преобразуване на местно време в UTC и обратно. Вижте примерите в края на документацията за тези функции.

Числови еквиваленти

Приложенията за платно държат и изчисляват всички стойности за дата/време, независимо от Местно време на потребителя или Часовата зона е независима в UTC. Приложението превежда стойностите въз основа на часовата зона на потребителя на приложението, когато ги показва и когато потребителят на приложението ги посочва.

Когато приложението за платно чете стойността Часовата зона е независима от източник на данни или записва такава стойност в източник на данни, приложението автоматично коригира стойността, за да компенсира часовата зона на потребителя на приложението. След това приложението третира стойността като стойност на UTC, съответстваща на всички други стойности за дата / час в приложението. Поради това обезщетение, първоначалната стойност Часовата зона е независима се появява, когато приложението коригира стойността на UTC за часовата зона на потребителя на приложението.

Можете да наблюдавате това поведение по-отблизо, като използвате функцията Value за достъп до основната цифрова стойност за дата / време. Тази функция връща стойността дата / час като брой милисекунди от 1 януари, 1970 00:00:00.000 UTC.

Тъй като всяка стойност на дата / час се съхранява в UTC, формулата Value( Date( 1970, 1, 1 ) ) няма да върне нула в повечето части на света, защото функцията Date връща дата в UTC. Например, формулата би върнала 28,800,000 във часова зона, която е изместена от UTC с осем часа. Това число отразява броя милисекунди за осем часа.

Връщайки се към нашия пример:

Тип дата/час Стойност, съхранявана в базата данни Показана стойност и въведена 7 часа западно от UTC Стойност функцията връща
Локален потребител неделя,май19,2019
4:00 ч.
събота,май18,2019
21:00 ч.
1,558,238,400,000
(неделя,май19,2019
4:00 AM UTC)
Независимо от часовата зона неделя,май19,2019
4:00 ч.
неделя,май19,2019
4:00 ч.
1,558,263,600,000
(неделя,май19,2019
11:00 AM UTC)

Преобразуване на Unix времена

Времето в Unix отразява броя секунди от 1 януари, 1970 00:00:00 UTC. Тъй като приложенията за платно използват милисекунди вместо секунди, можете да конвертирате между двете, като умножите или разделите на 1000.

Например времето на Unix показва 9 септември 2001 г. в 01:46:40 UTC като 1000000,000. За да покажете тази стойност на дата / час в приложение за платно, умножете това число по 1000, за да го преобразувате в милисекунди, и след това го използвате във функцията Text. Формулата Text( 1000000000 * 1000, DateTimeFormat.UTC ) връща низ 2001-09-09T01:46:40.000Z.

Тази функция обаче се връща Събота, 8 септември, 2001 18:46:40, ако използвате DateTimeFormat.LongDateTime24 формат във часова зона, която е отместена -7 часа от UTC (7 часа западно от UTC). Този резултат показва стойността DateTime правилно въз основа на местната часова зона.

За да преобразувате в Unix време, разделете резултата от стойност от 1000:
RoundDown( Стойност( UnixTime) / 1000, 0)

Ако имате нужда от Unix време в стойността Дата за допълнителни изчисления или показване в рамките на Power Apps, използвайте тази формула:
DateAdd( Дата(1970,1,1), UnixTime, Секунди)

SQL Server

SQL Server има Datetime, Datetime и други типове данни за дата / час, които не включват компенсиране на часовата зона и не посочват в коя часова зона са. Приложенията за платно приемат, че тези стойности се съхраняват в UTC и ги третират като Местно време на потребителя. Ако стойностите са предназначени да бъдат независими от часовата зона, коригирайте преводите по UTC, като използвате функцията TimeZoneOffset.

Приложенията за платно използват включената информация за часовата зона в полетата Datetimeoffset при преобразуване на стойност във вътрешното представяне на UTC на приложението. Приложенията винаги използват UTC като часова зона (нулева компенсация на часовата зона), когато пишат данни.

Приложенията за платно четат и записват стойности на тип данни Час в SQL Server като текстови низове в ISO 8601 формат на продължителност. Например, трябва да анализирате този низ формат и да използвате функцията Time за преобразуване на текстовия низ "PT2H1M39S" на стойност 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)

Информация за смесване на дата и час

Дата, Час и ДатаЧас имат различни имена, но всички те притежават същата информация за дати и часове.

Стойността Дата може да включва информация за времето с нея, която обикновено е полунощ. Стойността Час може да носи информация за дата, която обикновено е 1 януари 1970 г. Dataverse също съхранява информация за времето с поле Само дата, но показва само информацията за датата по подразбиране. По подобен начин приложенията за платно понякога разграничават тези типове данни за определяне на формати и контроли по подразбиране.

Директно добавяне и изваждане на стойности за дата и час не се препоръчва, тъй като часовата зона и други преобразувания могат да причинят объркващи резултати. Или използвайте функцията Value да преобразува първо стойностите на дата/час в милисекунди и да вземе предвид часовата зона на потребителя на приложението или да използва DateAdd и DateDiff функции за добавяне или изваждане от една от тези стойности.

Избор и Да / Не

Изборите и типовете данни с две опции предоставят два или повече възможности за избор на потребител на приложение. Например, Състояние на поръчката избор може да предложи избора Ново, Изпратени, Фактурирани и Затворено. Типът на данни с две опции предлага само два варианта.

И двата типа данни показват етикетите си в контекст на текстови низи. Например контролът за етикет показва една от опциите за състояние на поръчката, ако контролата е Текст свойството е зададено на формула, която препраща към този избор. Етикетите на опциите могат да бъдат локализирани за потребителите на приложения на различни места.

Когато потребителят на приложението избере опция и запази тази промяна, приложението предава данните в базата данни, която съхранява тези данни в представителство, независимо от езика. Опция в избор се предава и съхранява като число, а опция в тип данни с две опции се предава и съхранява като булева стойност.

Етикетите са само с цел показване. Не можете да извършвате директни сравнения с етикетите, тъй като те са специфични за даден език. Вместо това всеки избор има изброяване, което работи с базовия номер или булева стойност. Например, не можете да използвате тази формула:

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

Но можете да използвате тази формула:

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

За глобални избори (които таблиците споделят), името на изброяването на набор от опции съвпада с името на глобалния избор. За локални избори (които са обхванати до таблица), името може да съдържа името на таблицата. Това поведение избягва конфликти, ако множество таблици имат избор с едно и също име. Например акаунти таблицата може да има Статус на поръчката избор и името му може да бъде OrderStatus (акаунти). Това име съдържа едно или повече интервали и скоби, така че трябва да го заобиколите с единични кавички, ако го препратите във формула.

Освен това стойностите с две опции също могат да се държат като булеви стойности. Например име с две опции TaxStatus може да има етикетите облагаемо и необлагаемо, които съответстват на вярно и невярно съответно. За да демонстрирате, можете да използвате тази формула:

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

Можете също да използвате тази еквивалентна формула:

If( ThisItem.Taxable, ...