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


Типове данни

Бележка

Microsoft Power Fx е новото име за езика на формули за приложения за платно. Тези статии са в процес на разработка, тъй като извличаме езика от приложенията на платното и го интегрираме с други продукти на Microsoft Power Platform и го направете достъпен като отворен код. Започнете с общ преглед на Microsoft Power Fx за въведение в езика.

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

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

Тип на данните Описание Примери
Булева Стойност вярно или false. Може да се използва директно в If, Filter и други функции без сравнение. верен
Цвят Цветна спецификация, включително алфа канал. Цвят.Червен
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" )
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..."
Число или поплавък Номер със стандартна прецизност, операции с основа 2 и широк обхват. 123
8.903Е121
1.234Е200
Избор Избор от набор от опции, подкрепени с номер. Този тип данни комбинира локализиращ се текстов етикет с числова стойност. Етикетът се появява в приложението, а числовата стойност се съхранява и използва за сравнения. ThisItem.OrderStatus
Запис Запис от стойности на данните. Този сложен тип данни съдържа случаи на други типове данни, изброени в тази тема. Повече информация: Работа с таблици. { Фирма: "Нортуинд Трейдърс",
Staff: 35,
NonProfit: false }
Референтен запис Препратка към запис в таблица. Такива препратки често се използват при полиморфни търсения. Повече информация: Работа със справки. Първо (сметки). Собственик
Маса Таблица със записи. Всички записи трябва да имат еднакви имена за техните полета със същите типове данни, а пропуснатите полета се третират като празно. Този сложен тип данни съдържа случаи на други типове данни, изброени в тази тема. Повече информация: Работа с таблици. Таблица ( { Собствено име: "Сидни",
LastName: "Higa" },
{ FirstName: "Nancy",
LastName: "Anderson" } )
Текст Текстов низ на Unicode. "Здравей, свят"
Час Час без дата в часовата зона на потребителя на приложението. Време( 11, 23, 45 )
Два варианта Избор от набор от две опции, подкрепени с булева стойност. Този тип данни комбинира локализиращ се текстов етикет с булева стойност. Етикетът се появява в приложението, а булевата стойност се съхранява и използва за сравнения. Този артикул.Облагаем
нетипизиран обект Обект от недеклариран тип. Базовият обект може да бъде всеки съществуващ тип и може да бъде конвертиран в съвместими типове с помощта на функции като Boolean(), Value(), Table() и т.н. За повече информация вижте Нетипизиран обект и Работа с JSON. ParseJSON("{ ""Поле"" : 1234 }"). Поле

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

Празно

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Например, разгледайте тази формула с глобални променливи Ябълки настроени на 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.

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

Снимка на 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 днес и това е типът на всички числа. Десетичната поддръжка ще бъде добавена скоро.

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

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

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

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

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

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

Диапазонът е от положителен 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 , известен също като число или валута, използва стандарта с плаваща запетая 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-байтови) цели типове данни. Може да искате да съхраните номера в текстово поле или да използвате изчислена колона, за да направите копие на номера в текстово поле, така че да е картографирано в типа данни Текст в приложението за платно. По този начин можете да задържите, покажете и въведете тези стойности, както и да ги сравните, за да определите дали са равни; обаче не можете да извършвате числени изчисления върху тях в тази форма.

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

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

Стандартни настройки и реализации

Бележка

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

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

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

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

В обобщение:

Използване Десетичен Плавам
Литерални числа във формули 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 )

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

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

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

>> 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( Value( UnixTime ) / 1000, 0 )

Ако имате нужда от Unix време в стойността Дата за допълнителни изчисления или показване в рамките на Power Apps, използвайте тази формула:
DateAdd( Date( 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)

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

Date, Time и DateTime имат различни имена, но всички те съдържат една и съща информация за датите и часовете.

Стойността Дата може да включва информация за времето с нея, която обикновено е полунощ. Стойността Час може да носи информация за дата, която обикновено е 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, ...