Бөлісу құралы:


Деректер түрлері

Ескертпе

Microsoft Power Fx — бұл кенеп бағдарламалары формула тілінің жаңа атауы. Бұл мақалалармен жұмыс әлі де жалғасуда, өйткені біз кенеп бағдарламаларынан тілді шығарамыз, оны басқа Microsoft Power Platform өнімдерімен біріктіреміз және оны ашық код ретінде қолжетімді етеміз. Тілге кіріспе үшін Microsoft Power Fx шолуымен бастаңыз.

Ақпарат бағдарлама арқылы электрондық кестенің ұяшықтарына ұқсас шағын, дискреттік мәндермен ағады. Мысалы, Туған күн өрісіндегі және Мерейтой өрісіндегі деректер екеуі де жылды, айды және күнді қамтитын Date мәні ретінде ағады. Бағдарлама осы мәндерді пішімдеу, енгізуді әрқайсысына сәйкес келетін нәрсемен шектеу және мәндерді дерекқормен бөлісу жолын біледі. Адамдар үшін туған күндер мерейтойлардан ерекшеленеді, бірақ жүйе оларды бірдей өңдейді. Бұл жағдайда, Date деректер түрінің мысалы болып табылады.

Бұл мақалада кенеп бағдарламалары қолдауы мүмкін деректер түрлері туралы мәліметтер берілген. Бағдарлама сыртқы деректер көзіне қосылған кезде, сол көздегі әрбір деректер түрі кенеп бағдарламаларына арналған деректер түрімен салыстырылады.

Деректер түрі Сипаттама Мысалдар
Логика 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 A Жаһандық бірегей идентификатор. GUID()
GUID( "123e4567-e89b-12d3-a456-426655440000" )
Гиперсілтеме Еренсілтемені сақтайтын мәтін жолы. "https://powerapps.microsoft.com"
Image .jpeg, .png, .svg, .gif немесе басқа жиі пайдаланылатын веб-кескін пішіміндегі кескіннің әмбебап ресурс идентификаторы (URI) мәтін жолы. MyImage бағдарлама ресурсы ретінде қосылды
"https://northwindtraders.com/logo.jpg"
"appres://blobmanager/7b12ffa2..."
Мультимедиа Бейне немесе аудио жазбаның URI мәтін жолы. MyVideo бағдарлама ресурсы ретінде қосылды
"https://northwindtraders.com/intro.mp4"
"appres://blobmanager/3ba411c..."
Сан немесе қалқымалы Стандартты дәлдікпен, 2-негізгі операциялармен және кең ауқымды сан. 123
8,903e121
1.234e200
Таңдау Санды қолдайтын параметрлер жиынынан таңдау. Бұл деректер түрі сандық мәні бар аударылатын мәтіндік белгіні біріктіреді. Белгі бағдарламада көрінеді, ал сандық мән сақталады және салыстырулар үшін пайдаланылады. ThisItem.OrderStatus
Жазба Деректер мәндерінің жазбасы. Бұл құрама деректер түрі осы тақырыпта тізілген басқа деректер түрлерінің даналарын қамтиды. Қосымша ақпарат: Кестелермен жұмыс істеу. { Company: "Northwind Traders",
Штат: 35,
NonProfit: false }
Жазба сілтемесі Кестедегі жазбаға сілтеме. Мұндай сілтемелер полиморфты іздеулерде жиі пайдаланылады. Қосымша ақпарат: Сілтемелермен жұмыс істеу. First(Accounts).Owner
Table Жазбалар кестесі. Барлық жазбаларда деректер түрлері бірдей өрістер үшін бірдей атаулар болуы керек, ал қалдырылған өрістер бос ретінде қаралады. Бұл құрама деректер түрі осы тақырыпта тізілген басқа деректер түрлерінің даналарын қамтиды. Қосымша ақпарат: Кестелермен жұмыс істеу. Кесте( {FirstName: "Сидней",
LastName: "Хига" },
{ FirstName: "Нэнси",
LastName: "Андерсон" } )
Мәтін Юникод мәтін жолы. "Hello, World"
Уақыт Бағдарлама пайдаланушысының уақыт белдеуіндегі күн жоқ уақыт. Time( 11, 23, 45 )
Екі параметр Логикалық мәнді қолдайтын екі параметр жиынынан таңдау. Бұл деректер түрі логикалық мәні бар аударылатын мәтіндік белгіні біріктіреді. Белгі бағдарламада көрінеді, ал логикалық мән сақталады және салыстырулар үшін пайдаланылады. ThisItem.Taxable
Жіктелмеген нысан Жарияланбаған түрдегі нысан. Негізгі нысан кез келген бұрыннан бар түрі болуы мүмкін және Логикалық(), Мән(), Кесте() және т.б. сияқты функцияларды пайдаланып үйлесімді түрлерге түрлендіруге болады. Қосымша ақпарат алу үшін Жіктелмеген нысан және JSON көмегімен жұмыс істеу бөлімін қараңыз. ParseJSON("{ ""Field"" : 1234 }").Field

Бұл деректер түрлерінің көпшілігі ұқсас және негізгі көрсетілімі бірдей, мысалы Еренсілтеме өрісі Мәтін ретінде қарастырылады. Қосымша деректер түрлері пішіндер мен басқа басқару элементтерінде жақсырақ әдепкі тәжірибелерді қамтамасыз етеді.

Бос орын

Барлық деректер түрлерінде blank мәні (басқаша айтқанда, мәннің болмауы) бола алады. Дерекқорларда бұл ұғым үшін жиі "null" термині пайдаланылады.

Айнымалыны немесе өрісті blank мәніне орнату үшін Blank функциясын Set немесе Patch функциясымен бірге пайдаланыңыз. Мысалы, Set( x, Blank() ) формуласы x глобалдық айнымалысындағы кез келген мәнді жояды.

blank мәні бар-жоғын IsBlank функциясын пайдалана отырып тексеріңіз. Coalesce функциясын пайдалана отырып ықтимал blank мәндерін blank емес мәндермен ауыстырыңыз.

Өйткені барлық деректер түрлері blank мәнін қолдайды, Логикалық және Екі параметр деректер түрлерінде үш ықтимал мән бар.

Бұл төрт деректер түрінің барлығы Юникод мәтін жолына негізделген.

Ендірілген мәтін

Формуладағы ендірілген мәтін жолдары қос тырнақшаға алынған. Мәтін жолында бір қос тырнақшаны көрсету үшін екі қос тырнақшаны бірге пайдаланыңыз. Мысалы, Түймешік басқару элементінің OnSelect сипатында келесі формуланы пайдаланып:

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

түймешікті басқанда баннерге әкеледі, мұндағы бірінші және соңғы қос тырнақша өткізіп жіберіледі (өйткені олар мәтін жолын бөледі) және Hello, World! айналасындағы қайталанатын қос тырнақшалар бір қос тырнақшамен ауыстырылады:

Джейн «Сәлем, әлем» деп айтты деген хабары бар қалқымалы хабарландыру.

Арнайы таңбаларды қамтитын идентификатор атаулары үшін бір тырнақша белгілері пайдаланылмайды және мәтін жолында ерекше мәнге ие емес.

Жол интерполяциясы

Мәтін жолына формулаларды ендіру үшін жол интерполяциясын пайдаланыңыз. Бұл көбінесе Concatenate функциясын немесе & операторын пайдаланудан гөрі, онымен жұмыс істеу және нәтижені визуализациялау оңайырақ.

Мәтін жолына доллар белгісімен $ префикс қойыңыз және бұйра жақшалармен { } ендірілген формуланы қоршаңыз. Мәтін жолына бұйра жақшаны қосу үшін қайталанатын бұйра жақшаларды пайдаланыңыз: {{ немесе }}. Жол интерполяциясы стандартты мәтін жолын пайдалануға болатын кез келген жерде пайдаланылуы мүмкін.

Мысалы, Алма сөзі 3 мәніне және Банан сөзі 4 мәніне орнатылған жаһандық айнымалы мәндері бар мына формуланы қарастырыңыз:

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

Бұл формула мәтін жолын қайтарады Бізде 3 алма, 4 банан бар, барлығы 7 жеміс береді.Алма және Банан айнымалылары мәтінге бұйра жақшалардың орнына Алма+Банан математикалық формуласының нәтижесімен бірге кірістіріледі. Бұйра жақшалардың айналасындағы бос орындар және басқа таңбалар сол күйінде сақталады.

Енгізілген формулалар кез келген функцияларды немесе операторларды қамтуы мүмкін. Формуланың нәтижесін мәтіндік жолға мәжбүрлеп орнатуға болатыны ғана талап етіледі. Мысалы, бұл формула сәлемдесуде берілген болса NickName, берілмеген болса FirstName енгізеді:

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

Егер NickName "Джо" ретінде орнатылса, онда бұл формула мәтіндік жолды Қош келдіңіз Джо, танысқаныма қуаныштымын! етіп шығарады. Бірақ NickName бос болса және FirstName "Джозеф" болса, онда бұл формула Құрметті Джозеф, сізбен танысқаныма қуаныштымын! ретінде шығарылады.

Жол интерполяциясы ендірілген формуладағы стандартты мәтін жолдарын қамтуы мүмкін. Мысалы, NickName немесе FirstName берілмеген болса, біз әлі де орын басушы ретінде "Досым" деп шығара аламыз.

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

Жол интерполяциялары кірістірілуі де мүмкін. Мына мысалды қарастырыңыз, мұнда Бірінші, Орта және Соңғы аттары сәлемдесуге біріктірілген. Осы мәндердің біреуі немесе екеуі бос болса да, бос орындардың дұрыс саны атау бөлшектері арасында болады. Бөлшектердің ешқайсысы қамтамасыз етілмесе, ішкі жол интерполяциясы бос жолға тасаланады және Біріктіру функциясы арқылы "Досым" деп ауыстырылады.

$"Welcome {Coalesce( Trim( $"{First} {Middle} {Last}"}), "Friend" )}!"
Бірінші Ортасы Соңғы Нәтиже
Джон Куинси Доу Welcome John Quincy Doe!
Джон бос Доу Welcome John Doe!
бос бос Доу Welcome Doe!
бос бос бос Welcome Friend!

Жаңа жолдар

Енгізілген мәтін жолдарында жаңа жолдар болуы мүмкін. Мысалы, Белгі басқару элементінің Мәтін сипатын келесіге орнатуды қарастырыңыз:

"Line 1
Line 2
Line 3"

Жоғарыдағы формула белгіні басқару элементінде көрсетілген үш жолды береді:

1-жол, 2-жол және 3-жолы бар үш жолды көрсететін ендірілген мәтін жолы және белгіні басқару.

Жаңа жолдарға төменде көрсетілгендей жол интерполяциясымен де қолдау көрсетіледі:

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

Жоғарыдағы формула бірдей нәтиже береді:

Жол интерполяциясының формуласы және 1-жол, 2-жол және 3-жолы бар үш жолды көрсететін жапсырманы басқару.

Кескін және медиа ресурстар

Файл мәзірі арқылы кескінді, бейнені және аудио файлдарын бағдарлама ресурстары ретінде қосуға болады. Импортталған файлдың атауы бағдарламадағы ресурс атауына айналады. Бұл суретте, бағдарламаға nwindlogo деп аталатын Northwind Traders логотипі қосылды:

Солтүстік жел ресурсы.

Бұл ресурсты бағдарламада пайдалану үшін оны Кескін басқару элементінің Image сипатында көрсетіңіз:

Солтүстік жел суреті.

Кескіндер мен басқа медианың URI мекенжайлары

Белгі басқару элементінің Text сипатын nwindlogo деп орнату арқылы сол соңғы мысалды егжей-тегжейлірек қарастыра аласыз. Белгіде мәтін жолы көрсетілген:

Солтүстік жел мәтіні.

Кенеп бағдарламалары, бұлтта орналасса да немесе бағдарлама ресурсы ретінде қосылса да, әр кескінге немесе басқа медиафайлға URI мәтін жолы арқылы сілтеме жасайды.

Мысалы, кескін басқару элементінің Image сипаты бағдарлама ресурстарын қабылдап қана қоймайды, сонымен бірге "https://northwindtraders.com/logo.jpg" сияқты интернеттегі кескіндерге сілтеме жасайды. Сондай-ақ бұл сипат деректер URI схемасын пайдаланатын кірістірілген кескіндерді қабылдайды, мына мысалдағыдай:

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

Бұл URI екі күлгін гауһардың ұлғайтылған нұсқасын көрсетеді:

Қос гауһар тастар.

Кескін басқару элементінің Image сипатын камера басқару элементінің Photo сипатына орнатсаңыз, соңғы түсірілген кескінді Камера басқару элементінде көрсете аласыз. Бағдарлама кескінді жадта сақтайды, ал камера басқару элементінің Photo сипаты кескінге URI сілтемесін қайтарады. Мысалы, сурет түсірсеңіз, камераның Photo сипаты"appres://blobmanager/7b12ffa2ea4547e5b3812cb1c7b0a2a0/1" мекенжайын қайтаруы мүмкін.

Дерекқорда сақталатын кескінге немесе басқа медиафайлға сілтеме жасау үшін URI пайдаланасыз. Осылайша, бағдарлама нақты деректерді іс жүзінде қажет болғанға дейін шығарып алмайды. Мысалы, Microsoft Dataverse кестесіндегі тіркеме "appres://datasources/Contacts/table/..." қайтаруы мүмкін Камера мысалындағыдай, сіз бұл кескінді кескін басқару элементінің Кескін сипатын екілік деректерді шығарып алатын осы сілтемеге орнату арқылы көрсетуге болады.

Кескін сияқты медиа деректер түрін дерекқорға сақтағанда, бағдарлама URI сілтемесін емес, нақты кескінді немесе медиа деректерін жібереді.

Өлшем шектеулері

Мәтін жолдары және URI ретінде, бұл деректер түрлерінде ұзындығында алдын ала белгіленген шек жоқ.

Бұл деректер түрлері сілтеме жасайтын екілік деректерде де өлшеміне алдын ала белгіленген шек жоқ. Мысалы, енді "appres://..." деп сілтеме жасалатын камера басқару элементі арқылы түсірілген кескін құрылғының камерасы сыйдыра алатындай үлкен және жоғары ажыратымдылықты бола алады. Медиафайлдардың ажыратымдылығы, кадрлар жиілігі және басқа төлсипаттары деректер түрімен шектелмейді, бірақ медианы ойнатуға және түсіруге арналған белгілі бір басқару элементтерінің өздерінің шектеулері болуы мүмкін.

Дегенмен, барлық деректер өлшемдері бағдарламада қолжетімді жад мөлшеріне тәуелді. Үстелдік компьютерде жұмыс істейтін шолғыштар әдетте 100 мегабайттан астам деректерді қолдайды. Дегенмен, телефон сияқты құрылғыда қолжетімді жадтың мөлшері әлдеқайда төменірек болуы мүмкін, әдетте 30-70 мегабайт ауқымында. Бағдарламаңыз бұл шектеулер аралығында жұмыс істейтінін анықтау үшін бағдарлама жұмыс істеуі керек барлық құрылғыларда жиі кездесетін сценарийлерді сынаңыз.

Ең жақсы тәжірибе ретінде деректерді жадта қажет болғанша ғана сақтаңыз. Кескіндерді дерекқорға мүмкіндігінше тезірек жүктеп салыңыз; бағдарлама пайдаланушысы сұраған кезде ғана кескіндерді жүктеп алыңыз.

Сандар

Ескертпе

Power Apps бүгін ғана Float қолдайды және бұл барлық сандардың түрі. Ондық қолдау жақында қосылады.

Power Fx сандардың екі түрін қолдайды: Ондық және Float (синонимдермен Сан және Валюта).

Ондық көптеген бизнес есептері үшін ең қолайлы. Ол 10 негіздегі сандарды дәл көрсете алады, яғни 0.1 дәл ұсынылуы мүмкін және есептеулер кезінде дөңгелектеу қателеріне бейім болмайды. Оның кез келген бизнес қажеттіліктері үшін жеткілікті үлкен ауқымы бар, дәлдіктің 28 санына дейін 1028 дейін. Ондық көптеген Power Fx хосттар үшін әдепкі сандық деректер түрі болып табылады, егер біреу жай ғана 2*2 жазғанда пайдаланылады.

Float ғылыми есептеулер үшін ең қолайлы. Ол 10308-ге дейін әлдеқайда үлкен ауқымдағы сандарды көрсете алады. Дәлдік 15 ондық таңбамен шектелген және математика 2-базаға негізделген, сондықтан ол кейбір жалпы ондық мәндерді дәл көрсете алмайды. Float сонымен қатар жоғары өнімділікке ие және бұл фактор және дәлдік маңызды емес болса, қолайлы.

Ондық сандар

Ондық деректер түрі .NET ондық деректер түрі жиі пайдаланады. SQL Serer жүйесінде іске қосылатын Dataverse формула бағандары сияқты кейбір хосттар SQL Server ондық деректер түрін пайдаланады.

Ондық негізгі 10 цифрды пайдалана отырып, сіз мектепте қалай үйренсеңіз, математиканы орындайды. Бұл 2-базалық математиканы пайдалану кезінде жинақталуы мүмкін өте аз айырмашылықтардан дөңгелектеу қателерін болдырмау үшін өте маңызды ( Float пайдаланғандай).

Ауқым оң 79,228,162,514,264,337,593,543,950,335 мен теріс 79,228,162,514,264,337,593,543,950,335 дейін. Ондық бөлгішті 28 цифрға дейін дәлдікпен қамтамасыз етіп, осы сандардың кез келген жеріне қоюға болады және әлі де дәл көрсетіледі. Мысалы, 7.9228162514264337593543950335 сияқты 79,228,162,514,264.337593543950335 дәл ұсынылуы мүмкін.

Жылжымалы нүкте сандары

Float деректер түрі, сонымен қатар Нөмір немесе Валюта, IEEE 754 қос дәлдіктегі өзгермелі нүкте стандартын пайдаланады. Бұл стандарт жұмыс істейтін сандардың өте үлкен ауқымын қамтамасыз етеді: –1,79769 x 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 байттық) бүтін деректер түрлерін көрсете алмайды. Санды мәтіндік өрісте сақтағыңыз келуі мүмкін немесе кенеп бағдарламасындағы Text деректер түрімен салыстырылуы үшін мәтіндік өрістегі санның көшірмесін жасау үшін есептелетін бағанды пайдаланғыңыз келуі мүмкін. Осылайша, бұл мәндерді сақтауға, көрсетуге және енгізуге болады; дегенмен, бұл пішінде оларда сандық есептеулерді орындай алмайсыз.

Жылжымалы үтірі бар сандардағы арифметика жуықталған болып табылады, сондықтан кейде ол көп құжатталған мысалдары бар күтпеген нәтижелерді беруі мүмкін. Сіз 55 / 100 * 100 формуласы дәл 55 санын және (55 / 100 * 100) - 55 формуласы дәл нөлді қайтарады деп күтуіңіз мүмкін. Дегенмен, соңғы формула 7,1054 x 10–15 санын қайтарады, бұл өте кішкентай, бірақ нөл емес. Бұл шағын айырмашылық әдетте мәселе туғызбайды және нәтижені көрсеткенде бағдарлама оны дөңгелектейді. Дегенмен, шағын айырмашылықтар келесі есептеулерде бірігуі және дұрыс емес жауапты беруі мүмкін.

Дерекқор жүйелері жиі ондық математиканы пайдалана отырып валюталарды сақтайды және есептеулерді орындайды, бұл кішірек ауқымды, бірақ дәлдікті көбірек басқаруды ұсынады. Әдепкі бойынша, кенеп бағдарламалары валюталарды жылжымалы үтірі бар мәндер ішінде және одан тыс салыстырады; сондықтан, нәтиже нативтік ондық деректер түрінде жасалатын есептеулерден басқаша болуы мүмкін. Егер сәйкессіздіктің бұл түрі мәселелер туғызса, сіз осы мәндермен Мәтін ретінде жұмыс істегіңіз келуі мүмкін, туралы осы бөлімде бұрынырақ сипатталған үлкен бүтін сандармен сияқты.

Әдепкілер және түрлендірулер

Ескертпе

Power Apps бүгін ғана Float қолдайды және бұл барлық сандардың түрі. Ондық қолдау жақында қосылады.

Көптеген Power Fx хосттар әдепкі бойынша Ондық қолданады. Бұл әсер етеді:

  • Формулалардағы әріптік сандар. 1.234 саны Ондық мәні ретінде түсіндіріледі. Мысалы, 1.234 * 2 өрнегі 1.234 және 2 деп Ондық түсіндіреді және Ондық нәтиже.
  • Мән функциясы. Value( "1.234" ) a Ондық мәнін қайтарады. Мысалы, формула Value( "1.234" ) * 2 Мән функциясы мәтін жолының мазмұнын "1.234" а Ондық. ретінде түсіндіреді.

Float мәндерімен жұмыс істеу үшін Float функциясы пайдаланылады. Жоғарыдағы мысалды кеңейту Float( 1.234 ) Ондық1.234 Қалқы мәніне түрлендіреді. Float сонымен қатар Мәннің алмауы ретінде Float( "1.234" ) сияқты өзгермелі нүкте нөмірін қамтитын жолды түрлендіру үшін пайдалануға болады. a Float мәні, ол санды a Ондық ретінде көрсету мүмкін болмаған жағдайда қажет.

Қысқаша:

Қолданыс Ондық Float
Формулалардағы әріптік сандар 1.234 Float( 1.234 )
Float( "1.234" )
Мәтін жолынан түрлендіру Value( "1.234" )
Decimal( "1.234" )
Float( "1.234" )
Сандық түрлер арасындағы түрлендіру Decimal( float ) Float( decimal )
Мәтіндік жолға түрлендіру Text( decimal ) Text( float )

Сандық түрлерді араластыру

Float және Ондық мәндерін еркін араластыруға болады. Араластырған кезде Ондық мәндер үлкенірек ауқымға байланысты Float мәндерге түрлендіріледі. Бұл дәлдікті жоғалтуға әкелуі мүмкін болғандықтан, екеуін қажетсіз араластырмау маңызды. Ондық әдепкі әріптік деректер түрі және сандық функциялардың көпшілігі түрін сақтайтындықтан, Float күйіне көшуді болдырмау салыстырмалы түрде оңай. қалаусыз.

Мысалы, pac power-fx repl CLI Power Platform орнатқаннан кейінпайдалану арқылы келесі есептеуді қарастырыңыз. Екі сан да Ондық болғандықтан, есептеу Ондық арқылы орындалады және нәтиже толық дәлдікті сақтайды:

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

Оның орнына, екінші операнд Float болып өзгертілсе, онда бүкіл есептеу Float және шағында орындалады. бөлшек бөлігі жоғалады:

>> 1.0000000000000000000000000001 * Float(2)
2

Date, Time және DateTime

Уақыт белдеулері

Күн/уақыт мәндері мына санаттарға жатады:

  • Жергілікті пайдаланушы: бұл мәндер UTC (Реттелген әмбебап уақыт) түрінде сақталады, бірақ бағдарлама пайдаланушысының уақыт белдеуі бағдарламаның осы мәндерді көрсету жолына және бағдарлама пайдаланушысының оны көрсету жолына әсер етеді. Мысалы, бір сәт Канададағы пайдаланушыға Жапониядағы пайдаланушыдан басқаша болып көрінеді.
  • Уақыт белдеуіне тәуелсіз: уақыт белдеуіне қарамастан, бағдарлама ұл мәндерді бірдей жолмен көрсетеді және бағдарлама пайдаланушысы оларды бірдей жолмен көрсетеді. Бір сәт Канададағы пайдаланушыға дәл Жапониядағы пайдаланушыға сияқты көрінеді. Бағдарламаларының әртүрлі уақыт белдеулерінде жұмыс жасауын күтпеген бағдарлама авторлары осы мәндерді пайдаланады, өйткені олар жалпы қарапайымдау.

Бұл кестеде бірнеше мысал көрсетілген:

Күн/уақыт түрі Дерекқорда сақталған мән UTC 7 сағат батысқа көрсетілетін және енгізілген мән UTC 4 сағат шығысқа көрсетілетін және енгізілген мән
Жергілікті пайдаланушы Жексенбі,19 мамыр,2019
4:00 ТД
Сенбі,18 мамыр,2019
9:00 ТК
Жексенбі,19 мамыр,2019
8:00 ТД
Уақыт белдеуіне тәуелсіз Жексенбі,19 мамыр,2019
4:00 ТД
Жексенбі,19 мамыр,2019
4:00 ТД
Жексенбі,19 мамыр,2019
4:00 ТД

Жергілікті пайдаланушы күн/уақыттары үшін кенеп бағдарламалары шолғыштың немесе құрылғының уақыт белдеуін пайдаланады, бірақ модельге негізделген бағдарламалар Dataverse ішіндегі пайдаланушы параметрін пайдаланады. Әдетте бұл параметрлер сәйкес келеді, бірақ бұл параметрлер әртүрлі болса, нәтижелер әртүрлі болады.

Жергілікті уақытты UTC уақытына және кері түрлендіру үшін DateAdd және TimeZoneInformation функцияларын пайдаланыңыз. Бұл функциялар үшін құжаттама соңында мысалдарды қараңыз.

Сандық баламалар

Кенеп бағдарламалары Жергілікті пайдаланушы немесе Уақыт белдеуіне тәуелсіз болсын арлық күн/уақыт мәндерін UTC түрінде сақтай және есептей алады. Бағдарлама көрсеткен кезде және бағдарлама пайдаланушысы көрсеткен кезде мәндерді бағдарлама пайдаланушысының уақыт белдеуі негізінде аударады.

Кенеп бағдарламасы деректер көзінен Уақыт беледуіне тәуелсіз мәнді оқығанда немесе мұндай мәнді деректер көзіне жазғанда, бағдарлама бағдарлама пайдаланушысының уақыт белдеуі үшін түзету үшін мәнді автоматты түрде реттейді. Содан кейін бағдарламадағы барлық басқа күн/уақыт мәндері сияқты, бағдарлама бұл мәнді UTC ретінде қарастырады. Осы түзетілімге байланысты, бастапқы Уақыт белдеуіне тәуелсіз мәні бағдарлама бағдарлама пайдаланушысының уақыт белдеуі үшін UTC мәнін реттегенде көрінеді.

Бұл мінез-құлықты күн/уақыт мәні үшін негізінде жатқан сандық мәнге қатынасу үшін Value функциясын пайдалана отырып жақынырақ қарастыра аласыз. Бұл функция күн/уақыт мәнін 1 қаңтар, 1970 00:00:00.000 UTC уақытынан бері миллисекундтар саны түрінде қайтарады.

Әр күн/уақыт мәні UTC түрінде сақталатындықтан, Value( Date( 1970, 1, 1 ) ) формуласы дүниенің көп бөліктерінде нөлді қайтармайды, өйткені Date функциясы күнді UTC түрінде қайтарады. Мысалы, бұл формула UTC уақыт белдеуінен сегіз сағатқа ауытқитын уақыт елдеуінде 28 800 000 мәнін қайтаратын еді. Бұл сан сегіз сағаттағы миллисекундтардың санын көрсетеді.

Жоғарыда келтірілген мысалға оралсақ:

Күн/уақыт түрі Дерекқорда сақталған мән UTC 7 сағат батысқа көрсетілетін және енгізілген мән Value функциясы мынаны қайтарады
Жергілікті пайдаланушы Жексенбі,19 мамыр,2019
4:00 ТД
Сенбі,18 мамыр,2019
9: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 уақыттары 1970 00:00:00 UTC 1 қаңтардан бергі секундтар санын көрсетеді. Кенеп бағдарламалары секундтардың орнына миллисекундтарды пайдаланатындықтан, сіз 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 жолын қайтарады.

Дегенмен, UTC уақыт белдеуінен -7 сағат ауытқитын (UTC уақыт белдеуінен 7 сағат батысқа) уақыт белдеуінде DateTimeFormat.LongDateTime24 пішімін пайдалансаңыз, бұл функция Жексенбі, 8 қыркүйек, 2001 18:46:40 мәнін қайтарады. Бұл нәтиже жергілікті уақыт белдеуіне дұрыс негізделген DateTime мәнін көрсетеді.

Unix уақытына түрлендіру үшін Value функциясының нәтижесіне 1000-ға бөліңіз:
RoundDown( Value( UnixTime ) / 1000, 0 )

Одан әрі есептеулер немесе Power Apps ішінде көрсету үшін Unix уақыты Date мәнінде керек болса, мына формуланы пайдаланыңыз:
DateAdd( Date( 1970,1,1 ), UnixTime, Seconds )

SQL Server

SQL Server серверінде уақыт белдеуінің ауытқуын қамтымайтын және қай уақыт белдеуінде екенін көрсетпейтін Datetime, Datetime2 және басқа күн/уақыт деректер түрлері бар. Кенеп бағдарламаларында бұл мәндер UTC түрінде сақталады деп есептеледі және оларды Жергілікті пайдаланушы ретінде қарастырады. Егер бұл мәндер уақыт белдеуіне тәуелсіз болуы керек болса, TimeZoneOffset функциясын пайдалана отырып UTC аудармалары үшін түзетіңіз.

Кенеп бағдарламалары мәнді бағдарламаның ішкі UTC көрсетіліміне түрлендіргенде Datetimeoffset өрістеріндегі қамтылған уақыт белдеуі туралы ақпаратты пайдаланады. Бағдарламалар деректерді жазғанда әрқашан уақыт белдеуі ретінде UTC уақыт белдеуін (нөл уақыт белдеуінің ауытқуы) пайдаланады.

Кенеп бағдарламалары SQL Server серверіндегі Time деректер түрінің мәндерін ISO 8601 ұзақтық пішіміндегі мәтін жолдары түрінде оқиды және жазады. Мысалы, бұл жол пішімін талдау керек және "PT2H1M39S" мәтін жолын Time мәніне түрлендіру үшін 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 атаулары әртүрлі, бірақ барлығы күндер мен уақыттар туралы бірдей ақпаратты сақтайды.

Date мәні өзінде уақыт туралы ақпаратты қамтуы мүмкін, бұл әдетте түн жарымы болады. Time мәні күн туралы ақпаратты сақтауы мүмкін, бұл әдетте 1 қаңтар, 1970 болады. Сондай-ақ Dataverse уақыт туралы ақпаратты Date Only өрісі арқылы сақтайды, бірақ әдепкі бойынша тек күн туралы ақпаратты көрсетеді. Осы сияқты, кенеп бағдарламалары кейде әдепкі пішімдерді және басқару элементтерін анықтау үшін осы деректер түрлерін ажыратады.

Күн және уақыт мәндерін тікелей қосу және шегеру ұсынылмайды, өйткені уақыт белдеуі және басқа түрлендірулер шатастыратын нәтижелерге әкелуі мүмкін. Алдымен күн/уақыт мәндерін миллисекундтарға түрлендіру үшін Value функциясын пайдаланыңыз және бағдарлама пайдаланушынсының уақыт белдеуін ескеріңіз немесе осы мәндердің біреуіне қосу немесе одан шегеру үшін DateAdd және DateDiff функцияларын пайдаланыңыз.

Таңдаулар және Иә/Жоқ

Таңдаулар мен екі опциялы деректер түрлері бағдарлама пайдаланушысына таңдау үшін екі немесе одан да көп таңдауды ұсынады. Мысалы, Тапсырыс күйі таңдауы Жаңа, Жеткізілді, Есеп-шот жіберілді және Жабық таңдауларын ұсынуы мүмкін. Екі параметр деректер түрі тек екі таңдауды ұсынады.

Бұл деректер түрлерінің екеуі де белгілерін мәтін жолы мәтінмәнінде көрсетеді. Мысалы, егер басқару элементінің Мәтін сипаты сол таңдауға сілтеме жасайтын формулаға орнатылса, белгі басқару элементі тапсырыс күйі опцияларының бірін көрсетеді. Параметр белгілері әртүрлі жерлердегі бағдарлама пайдаланушылары үшін аударылған болуы мүмкін.

Бағдарлама пайдаланушысы параметрді таңдағанда және сол өзгерісті сақтағанда, бағдарлама деректерді дерекқорға тасымалдайды, бұл деректерді тілге тәуелсіз көрсетілімде сақтайды. Таңдаудағы опция сан ретінде беріледі және сақталады, ал екі опциялы деректер түріндегі опция логикалық мән ретінде беріледі және сақталады.

Белгілер тек көрсету мақсатына арналған. Белгілер арқылы тікелей салыстыруларды орындау мүмкін емес, өйткені олар белгілі бір тілге тән. Оның орнына, әр таңдауда негізгі санмен немесе логикалық мәнмен жұмыс жасайтын санақ бар. Мысалы, мына формула пайдалану мүмкін емес:

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

Бірақ мына формуланы пайдалана аласыз:

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

Глобалдық таңдау үшін (кестелер ортақ) параметрлер жиыны тізімінің аты глобалдық таңдаудың атына сәйкес келеді. Жергілікті таңдаулар үшін (кестеге келтірілген) атау кестенің атауын қамтуы мүмкін. Егер бірнеше кестеде бірдей атпен таңдаулар болса, бұл әрекет қайшылықтарды болдырмайды. Мысалы, Тіркелгілер кестесінде OrderStatus таңдауы болып және оның атауы OrderStatus (Тіркелгілер) болуы мүмкін. Бұл атау бір немесе көбірек бос орынды және жақшаны қамтиды, осылайша оған формулада сілтеме жасасаңыз, оны бір тырнақшаға алу керек.

Бұған қоса, екі параметр мәндері логикалық мәндер түрінде де әрекет етуі мүмкін. Мысалы, TaxStatus деп аталатын екі параметр мәнінде Taxable және Non-Taxable белгілері болуы мүмкін, бұлар сәйкесінше true және false мәндеріне сәйкес. Көрсету үшін мына формуланы пайдалануға болады:

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

Сондай-ақ мына баламалы формуланы пайдалануға болады:

If( ThisItem.Taxable, ...