Share via


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

Белешка

Microsoft Power Fx је ново име за језик формула за апликације са подлогом. Ови чланци су у изради док издвајамо језик из апликација на платну, интегришемо га са другим Microsoft Power Platform производима и чинимо га доступним у виду отвореног кода. Почните са Microsoft Power Fx прегледом за увод у језик.

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

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

Тип података Опис Примери
Логичка вредност Вредност true или false. Може се директно користити у функцијама If, Filter и другим функцијама без поређења. true
Боја Спецификација боје, укључујући алфа канал. Color.Red
ColorValue( "#102030" )
RGBA( 255, 128, 0, 0.5 )
Валута Вредност валуте која се чува у броју с помичном зарезом. Вредности валута једнаке су бројчаним вредностима са опцијама форматирања валута. 123
4.56
Датум Датум без времена, у временској зони корисника апликације. Date( 2019, 5, 16 )
Датум и време Датум са временом, у временској зони корисника апликације. DateTimeValue( "May 16, 2019 1:23:09 PM" )
Децимални Број са високом прецизношћу, операцијама базе 10 и ограниченим опсегом. 123
Децимални ( "1.2345" )
GUID Глобално јединствени идентификатор. GUID()
GUID( "123e4567-e89b-12d3-a456-426655440000" )
Хиперлинк Текстуална ниска која садржи хипервезу. "https://powerapps.microsoft.com"
Image Текстуална ниска универзални идентификатор ресурса (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.234e200
Избор Избор из низа опција, подржаних бројем. Овај тип података комбинује ознаку текста која може да се локализује и која има нумеричку вредност. Ознака се приказује у апликацији, а нумеричка вредност се чува и користи за поређење. ThisItem.OrderStatus
Запис Запис вредности података. Овај сложени тип података садржи примерке других типова података који су наведени у овој теми. Још информација: Рад са табелама. { Company: "Northwind Traders",
Staff: 35,
NonProfit: false }
Референца записа Референца на запис у табели. Такве референце се често користе код полиморфних проналажења. Још информација: Рад са референцама. First(Accounts).Owner
Табела Табела записа. Сви записи морају имати иста имена за своја поља са истим типовима података, а изостављена поља се третирају као празна. Овај сложени тип података садржи примерке других типова података који су наведени у овој теми. Још информација: Рад са табелама. Table( { FirstName: "Sidney",
LastName: "Higa" },
{ FirstName: "Nancy",
LastName: "Anderson" } )
Текст Ниска Уникод текста. "Здраво свима"
Време Време без датума, у временској зони корисника апликације. Time( 11, 23, 45 )
Две опције Избор из низа од две опције, подржане логичком вредношћу. Овај тип података комбинује ознаку текста која може да се локализује и која има логичку вредност. Ознака се приказује у апликацији, а логичка вредност се чува и користи за поређење. ThisItem.Taxable
Нетипизирани објекат Објекат недекларисаног типа. Основни објекат може бити било ког постојећег типа и може се конвертовати у компатибилне типове помоћу функција као што су Boolean(), Value(), Table() итд. Више информација потражите у чланцима Нетипизирани објекат и Рад са JSON-ом. ParseJSON("{ ""Field"" : 1234 }").Field

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

Празно

Сви типови података могу имати вредност празно (другим речима, без вредности). Израз "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"

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

Уграђена текстуална ниска и контрола ознаке приказују три реда са линијом 1, линијом 2 и линијом 3.

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

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

Горенаведена формула резултира истим излазом:

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

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

Путем менија Датотека можете да додајете слике, видео и аудио датотеке као ресурсе апликација. Име увезене датотеке постаје име ресурса у апликацији. На овој слици, логотип за Northwind Traders, који се зове nwindlogo, додат је у апликацију:

Ресурс Нортхwинда.

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

Слика нортхwинда.

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-ји, ови типови података немају унапред задато ограничење дужине.

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

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

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

Бројеви

Белешка

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

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

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

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

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

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

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

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

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

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

  • Локално време корисника: Ове вредности су ускладиштене у формату 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 Функција Value враћа
Локално време корисника Недеља,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:
RoundDown( Value( UnixTime ) / 1000, 0 )

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

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, ...