Share via


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

Ескертпе

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" )
Ондық бөлшек Дәлдiгi жоғары сан, 10-базистiк операциялар және шектелген диапазон. 123
Ондық таңбалы ( "1,2345" )
GUID Ғаламдық бірегей идентификатор. 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.234е200
Таңдау Санды қолдайтын параметрлер жиынынан таңдау. Бұл деректер түрі сандық мәні бар аударылатын мәтіндік белгіні біріктіреді. Белгі бағдарламада көрінеді, ал сандық мән сақталады және салыстырулар үшін пайдаланылады. 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.

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

Ондық сандар

Ондық деректер түрі көбінесе.NET ондық таңбалы деректер түрін пайдаланады. Кейбір хосттар, мысалы Dataverse , SQL Sererer бағдарламасында іске қосатын формула бағандары 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 санына дейін қамтамасыз ете отырып, осы сандардың ішінде кез келген жерде орналастыруға болады және әлі де дәл көрсетіледі. Мысалы, 79,228,162,514,264.337593543950335 дәл ұсынылуы мүмкін, себебі 7.9228162514264337593543950335.

Қалқымалы нүкте сандары

Сан немесе Валюта деген атпен белгілі 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" ) Ондық мәнді қайтарады. Мысалы, мән Value( "1.234" ) * 2 функциясының формуласы мәтін жолының "1.234" мазмұнын Ондық таңба деп түсіндіреді.

Float мәндерімен жұмыс істеу үшін Float функциясы қолданылады. Жоғарыдағы мысалды кеңейте отырып, Ондық 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 )

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

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

Мысалы, CLI pac power-fx repl орнатқаннан кейін келесі есептеуді 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, ...