Типови података

Информације пролазе кроз Повер Фк у малим, дискретним вредностима, као што су ћелије табеле. На пример, подаци у пољу Рођендан и поље Годишњица пролазе кроз као вредност датума која укључује годину, месец и дан. Повер Фк форматира ове вредности, ограничава унос на оно што је прикладно за сваку од њих, и дели вредности са базом података. Рођендани и годишњице могу се разликовати од људи, али систем их обрађује на исти начин. У овом случају, Датум је пример типа података.

Овај чланак објашњава сваки тип података у Повер Фк-у, како они функционишу и како се мапирају на спољне изворе података.

Тип података Опис Примери
Булову Вредност true или false. Можете га користити директно у Иф , Филтер и другим функцијама без поређења. Истина
Избор Избор из низа опција, подржаних бројем. Овај тип података комбинује ознаку текста која може да се локализује и која има нумеричку вредност. Ознака се приказује у апликацији, а нумеричка вредност се чува и користи за поређење. Функција Тyпе подржава овај тип података ако користите инстанцу поља избора по имену. ТхисИтем.ОрдерСтатус
Боја Спецификација боја која укључује алфа канал. Color.Red
ЦолорВалуе ( "#102030" )
РГБА ( 255, 128, 0, 0.5 )
Валута Вредност валуте која се чува у броју са помичним зарезом. Вредности валута једнаке су бројчаним вредностима са опцијама форматирања валута. Функција Тyпе не подржава тип података Валута . 123
4.56
Датум Датум без времена, у временској зони корисника апликације. Датум ( 2019, 5, 16 )
Датум и време Датум са временом, у временској зони корисника апликације. ДатеТимеВалуе ( "16. мај, #пии_ииииииијјз АМ" )
Децимални Број са високом прецизношћу, база 10 операције, и ограничен опсег. 123
Децимална ( "1.2345" )
Динамички (раније УнтипедОбјецт ) Тип вредности је динамичан и може да варира током извођења. Динамичка вредност може бити било који постојећи тип, и може се конвертовати у компатибилне типове користећи функције као што су Боолеан (), Вредност () , Табела (), итд. За више информација, погледајте Динамичке вредности и Рад са ЈСОН-ом . ПарсеЈСОН (" { ""Фиелд "" : 1234 }"). Поље
Плута Број са стандардном прецизношћу, базом 2 операција и широким распоном. 123
8.903e121
1.234E-200
ГУИД Глобално јединствени идентификатор . ГУИД()
ГУИД ( " 123e4567-e89b-12d3-a456-426655440000" )
Хипервеза Текстуални низ који садржи хипервезу. "https://powerapps.microsoft.com"
Слика Универзални идентификатор ресурса (УРИ) текстуални низ за слику у .јпег, .png, .свг, .gifили неком другом уобичајеном формату веб-слике. Функција Тyпе не подржава тип података Имаге . МиИмаге је додат као ресурс апликације
"https://northwindtraders.com/logo.jpg"
"аппрес://блобманагер/7b12ffa2..."
Медиа URI текстуална ниска видео или аудио записа. Функција Тyпе не подржава тип података Медији . МиВидео је додан као ресурс апликације
"https://northwindtraders.com/intro.mp4"
"аппрес://блобманагер/3ba411c..."
Број Алиас за Децимал (већина Power Fx домаћина) или Флоат (Цанвас апликације). Ако можете да користите било коју варијанту броја за ситуацију, користите број за максималну компатибилност. 123
0.0123
1e4
Запис Запис вредности података. Овај сложени тип података садржи случајеве других типова података наведених у овом чланку. За више информација, погледајте Рад са табелама . Функција Тyпе подржава овај тип података ако користите инстанцу записа . { Компанија : "Нортхwинд Традерс",
Особље : 35,
Непрофитна : лажна }
Референца записа Референца на запис у табели. Ове референце се често користе са полиморфним претрагама. За више информација, погледајте Рад са референцама . Функција Тyпе не подржава овај тип података. Прво (Рачуни). Власник
Стол Табела записа. Сви записи морају имати иста имена поља и типове података, а изостављена поља се третирају као празна . Овај сложени тип података садржи случајеве других типова података наведених у овом чланку. За више информација, погледајте Рад са табелама . Функција Тyпе подржава овај тип података ако користите инстанцу табеле . Табела ( { Име : "Сиднеи",
Презиме : "Хига" },
{ ФирстНаме: "Ненси",
Презиме : "Андерсон" } )
Текстуална порука Ниска Уникод текста. "Здраво, Свет"
Време Време без датума, у временској зони корисника апликације. Време ( 11, 23, 45 )
Празнину Користи се само од стране понашања кориснички дефинисаних функција, то указује на то да функција нема повратни тип. Функција Тyпе не подржава овај тип података. Иако функција нема повратни тип или вредност, она увек може да врати грешку. Хи(): воид = { Нотифи( "Хелло!" ) }
Да/Не Избор из низа од две опције, подржане логичком вредношћу. Овај тип података комбинује ознаку текста која може да се локализује и која има логичку вредност. Ознака се приказује у апликацији, а логичка вредност се чува и користи за поређење. Функција Тип подржава овај тип података ако користите инстанцу поља Да / Не по имену. ТхисИтем.Опорезиви

Многи од ових типова података су слични и имају исту основну репрезентацију, као што је поље хипервезе које се третира као текст . Додатни типови података дају боља подразумевана искуства у обрасцима и другим контролама.

Празно

Сви типови података могу имати вредност празно (без вредности). Израз "null" се често користи у базама података за овај концепт.

Користите функцију Blank са функцијом Set или Patch да бисте подесили променљиву или поље на празно. На пример, Сет( x, Бланк() ) уклања вредност у глобалној променљивој x .

Тестирајте празну вредност са функцијом ИсБланк . Замените могуће празне вредности непразним вредностима помоћу функције Coalesce.

Пошто сви типови података подржавају празно , типови података Боолеан и Тwо оптион имају три могуће вредности.

Све четири ове врсте података засноване су на Уникод текстуалној ниски.

Уграђени текст

Уграђене ниске текста у формули су затворене у двоструким наводницима. Користите два двострука наводника заједно да бисте представили један једноструки наводник у текстуалној ниски. На пример, ако користите следећу формулу у својству OnSelect контроле дугме:

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

Резултира банером када се притисне дугме, где су први и последњи двоструки наводници изостављени (јер ограничавају текстуални низ) и поновљени двоструки наводници око Хелло, Wорлд! су замењени једним двоструким наводником:

искачуће обавештење са поруком у којој је Џејн рекла

Ознаке за једноструке наводнике се користе за називе идентификатора који садрже посебне знакове и немају никакво посебно значење унутар текстуалне ниске.

Интерполација ниске

Користите интерполацију ниске да бисте уградили формуле унутар текстуалне ниске. Овај приступ је често лакши за рад и визуализацију излаза него помоћу функције Цонцатенате или & оператора.

Ставите префикс текстуалне ниске знаком за долар $ и затворите формулу која ће бити уграђена у витичасте заграде { }. Да бисте укључили витичасту заграду у текстуалну ниску, користите поновљене заграде за витичасте заграде: {{ or }}. Интерполација ниске се може користити на сваком месту где се може користити стандардна текстуална ниска.

На пример, узмите у обзир ову формулу са глобалним променљивама Јабуке, постављено на 3, и крушке, постављено на 4:

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

Ова формула даје текстуалну ниску Имамо 3 јабуке, 4 крушке, што даје укупно 7 комада воћа. Променљиве Јабуке и крушке се убацују у текст замењујући витичасте заграде, заједно са резултатом математичке формуле Јабуке + крушке. Размаци и други знакови око витичастих заграда се чувају онако како јесу.

Уграђене формуле могу да садрже све функције или операторе. Све што је потребно је да резултат формуле може бити приморан на текстуални низ. На пример, ова формула убацује НицкНаме ако је испоручен, или Име ако није, у поздрав:

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

Ако је Надимај подешено на „Џо“, онда ова формула производи текстуалну ниску Добро дошли Џо, сјајно је упознати вас!. Али ако је Надимак остао празан а Име је „Џозеф“, онда ова формула уместо тога производи Драги Џозеф, сјајно је упознати вас!.

Интерполација ниске може да садржи стандардне текстуалне ниске у уграђеној формули. На пример, ако ни Надимак ни Име нису наведени, још увек можемо да обезбедимо реч Пријатељу као замену:

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

Интерполације ниски се чак могу угнездити. Узмите у обзир овај пример где се Име, Средње име и Презиме комбинују у поздрав. Чак и ако је једна или две од ових вредности празно , тачан број размака се одржава између делова имена. Ако ниједан од делова није наведен, унутрашња интерполација ниске ће се скупити у празну ниску и биће замењена функцијом Coalesce у „Пријатељу“.

$"Welcome {Coalesce( Trim( $"{First} {Middle} {Last}"}), "Friend" )}!"
Име Средина Последња Резултат
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"

Ова формула резултира у три линије приказане у контроли ознаке:

Уграђени текстуални низ и контрола ознака која приказује три линије са линијом КСНУМКС, линијом КСНУМКС и линијом КСНУМКС.

Нове линије су такође подржане са стринг интерполацијом:

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

Што резултира истим излазом:

Формула за интерполацију стринга и контрола ознаке која приказује три линије са линијом КСНУМКС, линијом КСНУМКС и линијом КСНУМКС.

Ресурси слика и медија

Путем менија Датотека можете да додајете слике, видео и аудио датотеке као ресурсе апликација. Име увезене датотеке постаје име ресурса у апликацији. У овој графици, логотип Нортхвинд Традерс, који се зове нвиндлого , додан је у апликацију:

Нортхвинд ресурс.

Да бисте користили овај ресурс у апликацији, наведите га у својству Image контроле Слика:

Слика северног ветра.

URI-ји за слике и друге медије

Можете да се детаљније упознате са тим последњим примером ако подесите својство Text контроле ознака на nwindlogo. Ознака приказује текстуалну ниску:

Нортхвинд текст.

Апликације са подлогом референцирају сваку слику или другу медијску датотеку, било да је у облаку или је додата као ресурс апликације, путем URI текстуалне ниске.

На пример, својство Image контроле слике прихвата не само ресурсе апликација већ и везе до слика на вебу, као што је "https://northwindtraders.com/logo.jpg". Својство такође прихвата уметнуте слике које користе шему URI података, као у овом примеру:

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

Тај URI приказује умањену верзију два љубичаста ромба:

Двоструки дијаманти.

Можете приказати најновију слику снимљену у контроли Камера ако својство Image контроле слике подесите на својство Photo контроле камере. Апликација чува слику у меморији и својство Photo контроле камере враћа URI референцу на слику. На пример, можетe да снимите слику, а својство Photo камере може да врати "appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1".

Користите URI да бисте референцирали слику или другу медијску датотеку смештену у базу података. На тај начин, апликација не преузима стварне податке док нису потребни. На пример, прилог у Microsoft Dataverse табели може вратити "appres://datasources/Contacts/table/..." Као у примеру са камером, ову слику можете приказати подешавањем својства Image контроле слике на ову референцу, која преузима бинарне податке.

Када сачувате тип података медија, попут слике, у базу података, апликација шаље стварну слику или податке медија, а не URI референцу.

Ограничења величине

Као низови текста и URI-ји, ови типови података немају унапред задато ограничење дужине.

Бинарни подаци на које се односе ове врсте података такође немају унапред задато ограничење величине. На пример, слика снимљена кроз контролу камере која се односи на "аппрес://..." може бити велика и високе резолуције као камера уређаја може да скупи. Резолуција, број слика у секунди и други атрибути медијских датотека нису ограничени типом података, али посебне контроле за репродукцију и снимање медија могу имати сопствена ограничења.

Међутим, све величине података подлежу количини доступне меморије у апликацији. Прегледачи на стоном рачунару обично подржавају више од 100 мегабајта података. Међутим, количина доступне меморије на уређају као што је телефон може бити далеко мања, обично у опсегу 30-70 мегабајта. Да бисте утврдили да ли ваша апликација ради у овим границама, тестирајте уобичајене сценарије на свим уређајима на којима би требало да ради.

Као најбоља пракса, држите податке у меморији само онолико дуго колико је потребно. Отпремите слике у базу података што је пре могуће; преузмите слике само када их корисник апликације затражи.

Бројеви

Белешка

Повер Аппс данас подржава само Флоат и то је тип свих бројева. Децимална подршка ће бити додата ускоро.

Power Fx подржава две врсте бројева: Децимални и Флоат (са синонимима Број и Валута ).

Децимална је најбоља за већину пословних прорачуна. Може тачно представити бројеве у бази 10, што значи да 0.1 се може тачно представити и да ће избећи грешке заокруживања током прорачуна. Има довољно велики опсег за било коју пословну потребу, до 10 - 28 са до 28 цифара прецизности. Децимални је подразумевани нумерички тип података за већину Power Fx домаћина, који се користи ако се једноставно пише 2*2.

Флоат је најбољи за научне прорачуне. Може представљати бројеве у већем опсегу, до 10 308. Прецизност је ограничена на 15 децималних места, а математика се заснива на бази 2, тако да не може прецизно представити неке уобичајене децималне вредности. Флоат такође има боље перформансе и фаворизован је ако је то фактор и прецизност није критична.

Децимални бројеви

Децимални тип података најчешће користи .НЕТ децимални тип података. Неки хостови, као што су колоне Датаверсе формуле које се покрећу у СКЛ Серверу, користе децимални тип података СКЛ Сервера.

Децимално ради математику на начин на који сте учили у школи, користећи базу 10 цифара, важно је да се избегне заокруживање грешака од врло малих разлика које се могу акумулирати када се користи основа 2 математика (као што користи Флоат ).

Распон је од позитивног #пии_ииииииијјз до негативног #пии_ииииииијаз. Децимални сепаратор може бити постављен било где унутар ових бројева, пружајући до 28 цифара прецизности, и даље бити прецизно представљен. На пример, #пии_ииииииијбз може бити тачно представљен, као и #пии_ајхфххгјз.

Бројеви са помичним зарезом

Тип података Флоат , познат и као Број или Валута , користи ИЕЕЕ 754 стандард са помичним зарезом са двоструком прецизношћу. Тај стандард пружа веома велики распон бројева у којима треба радити, од –1,79769 x 10308 до 1,79769 x 10308. Најмања вредност која се може представити је 5 x 10–324.

Флоат може тачно представљати целе бројеве (или целе бројеве) између –#пии_ииииииијцз (–(2 53 – 1)) и #пии_ииииииијдз 53 – 1), закључно. Овај опсег је већи од 32-битног (или 4-бајтног) целобројног типа података које најчешће користе базе података. Међутим, апликације са подлогом не могу представљати 64-битне (или 8-бајтне) целобројне типове података. Можда ћете желети да сачувате број у текстуалном пољу или користите израчунату колону да направите копију броја у текстуалном пољу, тако да се мапира у текстуални тип података апликацију платна. На овај начин можете да задржите, прикажете и унесете ове вредности и упоредите их да бисте утврдили да ли су једнаке; међутим, у том облику не можете обављати нумеричка израчунавања над њима.

Аритметика покретног зареза је приближна, тако да понекад може дати неочекиване резултате на многим документованим примерима. Можете очекивати да формула 55 / 100 * 100 врати тачно 55 и да (55 / 100 * 100) – 55 врати тачно нулу. Међутим, друга формула враћа 7,1054 x 10–15, што је веома мала вредност, али није нула. Та ситна разлика обично не прави проблем, а апликација је заокружује када приказује резултат. Међутим, мале разлике могу се наслагати у наредним прорачунима и довести до тога да дају погрешан одговор.

Системи база података често складиште валуте и извршавају прорачуне користећи децималну математику, што нуди мањи опсег, али већу контролу над прецизношћу. Прилагођене апликације са подлогом подразумевано мапирају валуте у вредности са покретним зарезом и назад; стога се резултат може разликовати од израчунавања која се обављају у природном децималном типу података. У зависности од прецизних потреба ваше апликације, можда ћете желети да радите са овим вредностима као текстом , као што је раније описано за велике целе бројеве.

Подразумеване вредности и конверзије

Белешка

Повер Аппс данас подржава само Флоат и то је тип свих бројева. Децимална подршка ће бити додата ускоро.

Већина Power Fx домаћина користи Децимал по дефаулту. Имајући ову подразумевану вредност значи:

  • Буквални бројеви у формулама. Број 1.234 се тумачи као децимална вредност. На пример, формула тумачи и као Децимално 1.234 * 2 и враћа децимални 1.2342 резултат.
  • Функција вредности. Value( "1.234" ) враћа децималну вредност. На пример, у формули Value( "1.234" ) * 2, функција Вредност тумачи садржај текстуалног низа "1.234" као децимални .

Да бисте радили са Флоат вредностима, користи се функција Флоат . Проширење нашег примера, Float( 1.234 ) претвара Децимал 1.234 у Флоат. Флоат се такође може користити као замена за Вредност за конвертовање стринга који садржи број са помичним зарезом као што 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 )

Мешање нумеричких типова

Флоат и децималне вредности могу се слободно мешати. Када се мешају, Децималне вредности се претварају у Флоат вредности због већег опсега. Пошто ова конверзија може довести до губитка прецизности, важно је да се не мешају два непотребно. Пошто је Децимал подразумевани буквални тип података и већина нумеричких функција чува тип, релативно је лако избећи прелазак на Флоат без жеље.

На пример, размотрите следећу калкулацију користећи pac power-fx repl након инсталирања ЦЛИ-а Power Platform . Пошто су оба броја децимална , израчунавање се врши у децималном , а резултат задржава пуну прецизност:

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

Ако би уместо тога, други операнд био промењен у Флоат онда би цео прорачун био урађен у Флоат-у , а мали делић би био изгубљен:

>> 1.0000000000000000000000000001 * Float(2)
2

Датум, време и датум-време

Временске зоне

Вредности датума/времена спадају у ове категорије:

  • Локални корисник: Ове вредности се чувају у УТЦ (координирано универзално време), али временска зона корисника апликације утиче на то како апликација приказује ове вредности и како их корисник апликације специфицира. Као пример, исти тренутак се различито приказује кориснику у Канади него што се приказује кориснику у Јапану.
  • Независно од временске зоне: Апликација приказује ове вредности на исти начин, а корисник апликације их одређује на исти начин, без обзира на временску зону. Исти тренутак се приказује на исти начин кориснику у Канади него као и кориснику у Јапану. Аутори апликација који не очекују да се њихове апликације покрећу у различитим временским зонама користе те вредности јер су оне свеукупно једноставније.

Ова табела приказује неколико примера:

Тип датум/време Вредност ускладиштена у бази података Вредност је приказана и унесена 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 UTC)
Временска зона независна Недеља,19.мај2019.
4:00
Недеља,19.мај2019.
4:00
1,558,263,600,000
(Недеља,19.мај2019.
11:00 UTC)

Конвертовање Unix времена

Unix времена одражавају број секунди од 1. јануара, 1970 00:00:00 UTC. Будући да апликације са подлогом користе милисекунде уместо секунди, можете их конвертовати множењем или дељењем са 1000.

На пример, Unix време приказује 9. септембар 2001. у 01:46:40 UTC као 1.000.000.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). Овај резултат показује вредност типа датум-време правилно на основу локалне временске зоне.

Да бисте га конвертовали у Unix време, поделите резултат функције Value са 1000:
РоундДовн ( Валуе( УниxТиме ) / 1000, 0 )

Ако вам треба Unix време у вредности Датум вредност за даља израчунавања или приказ унутар услуге Power Apps, користите ову формулу:
ДатеАдд ( Дате( 1970,1,1 ), УниxТиме, секунди )

SQL Server

SQL Server има Datetime, Datetime2 и друге типове података за датум/време који не укључују помак временске зоне и не назначују у којој се временској зони налазе. Апликације са подлогом претпостављају да су те вредности ускладиштене у UTC и третирају их као локално време корисника. Ако су вредности замишљене као независне од временске зоне, исправите на UTC преводе користећи функцију TimeZoneOffset.

Апликације са подлогом користе обухваћене информације о временској зони у поља типа Datetimeoffset при конвертовању вредности у интерно UTC представљање у апликацији. Апликације увек користе UTC као временску зону (нулти помак временске зоне) када записују податке.

Апликације са подлогом читају и пишу вредности типа података време у систему SQL Server као текстуалне ниске у ISO 8601 формату трајања. На пример, морате да рашчланите овај формат ниске и да употребите функцију Time да конвертујете текстуалну ниску "PT2H1M39S" на вредност типа време:

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 за додавање или одузимање од једне од ових вредности.

Избори и Да/Не

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

Оба ова типа података приказују своје ознаке као текст. На пример, контрола ознаке приказује једну од опција статуса налога ако је својство Text контроле постављено на формулу која упућује на тај избор. Ознаке опција могу бити локализоване за кориснике апликација на различитим локацијама.

Када корисник апликације одабере опцију и сачува промену, апликација шаље податке у базу података, која их чува на начин који је независан од језика. Опција у избору се шаље и чува као број, а опција у типу података са две опције се шаље и чува као боолеова вредност.

Етикете су само за приказ. Не можете директно упоређивати ознаке јер су специфичне за језик. Уместо тога, сваки избор има набрајање које ради са основним бројем или логичком вредношћу. На пример, не можете користити ову формулу:

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

Али можете користити ову формулу:

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

За глобалне изборе (које табеле деле), име набрајања скупа опција подудара се са именом глобалног избора. За локалне изборе (који су ограничени на табелу), име може да садржи име табеле. Ово понашање избегава конфликте ако више табела има изборе са истим именом. На пример, табела Пословни контакти можда има избор Статус поруџбине, а његово име би могло бити Статус поруџбине (пословни контакти). То име има размаке и заграде, тако да морате да га окружите са једним наводницима ако га упућујете у формули.

Вредности са две опције се такође понашају као боолеове вредности. На пример, вредност са две опције под називом ТаxСтатус може имати ознаке Опорезиво и Неопорезиво , које одговарају истинитом и лажном . Да бисте то показали, користите ову формулу:

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

Такође можете користити ову формулу:

If( ThisItem.Taxable, ...