Делите путем


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

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

Овај чланак пружа детаље о типовима података који Power Fx подржавају. Када Power Fx се повеже са спољним извором података, сваки тип података у том извору је мапиран на тип података у Power Fx.

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

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

Празно

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

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

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

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

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

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

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

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

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

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

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

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

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

Ставите префикс текстуалне ниске знаком за долар $ и затворите формулу која ће бити уграђена у витичасте заграде { }. Да бисте укључили витичасту заграду у текстуалну ниску, користите поновљене заграде за витичасте заграде: {{ 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 Apps данас подржава само Флоат и то је тип свих бројева. Децимална подршка ће бити додата ускоро.

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

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

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

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

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

Децимално ради математику на начин на који сте учили у школи, користећи базу 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 Apps данас подржава само Флоат и то је тип свих бројева. Децимална подршка ће бити додата ускоро.

Већина 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, ...

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

Поред тога, вредности две опције се такође могу понашати као логичке вредности. На пример, вредност са две опције по имену Статус пореза можда има ознаке Опорезиво и Неопорезиво, које одговарају вредностима true и false, истим редом. Као демонстрацију, можете користити ову формулу:

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

Можете користити и ову еквивалентну формулу:

If( ThisItem.Taxable, ...