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


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

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

Бұл мақала Power Fx қолдайтын деректер түрлерінің мәліметтерін береді. Power Fx сыртқы деректер көзіне қосылғанда, сол көздегі әрбір деректер түрі in деректер түріне салыстырылады Power Fx.

Деректер түрі Сипаттама Мысалдар
Логикалық true немесе false мәні. If, Filter функциясында және басқа функцияларда салыстырусыз тікелей пайдалануға болады. рас
Таңдау Санды қолдайтын параметрлер жиынынан таңдау. Бұл деректер түрі сандық мәні бар аударылатын мәтіндік белгіні біріктіреді. Белгі бағдарламада көрінеді, ал сандық мән сақталады және салыстырулар үшін пайдаланылады. Бұл деректер түріне Түрі функциясы қолдау көрсетеді, егер а Таңдау өріс данасы атымен пайдаланылса. ThisItem.OrderStatus
Түс Түс сипаттамасы, соның ішінде альфа арнасы. Түсі.Қызыл
ColorValue( "#102030" )
RGBA( 255, 128, 0, 0,5 )
Валюта Жылжымалы үтір бар санда сақталған валюта құны. Валюта мәндері валютаны пішімдеу опциялары бар сандық мәндермен бірдей. Валюта деректер түріне Түр функциясы қолдау көрсетпейді. 123
4.56
Күн Бағдарлама пайдаланушысының уақыт белдеуіндегі уақытсыз күн. Күні (2019, 5, 16)
DateTime Бағдарлама пайдаланушысының уақыт белдеуіндегі уақыт бар күн. DateTimeValue( "16 мамыр, 2019 1:23:09 PM" )
Ондық Дәлдігі жоғары, 10 негізгі операциясы және шектеулі ауқымы бар сан. 123
Ондық («1,2345» )
Қалқымалы Стандартты дәлдікпен, 2-негізгі операциялармен және кең ауқымды сан. 123
8.903e121
1.234e-200
GUID A Жаһандық бірегей идентификатор. GUID()
GUID( "123e4567-e89b-12d3-a456-426655440000" )
Гиперсілтеме Еренсілтемені сақтайтын мәтін жолы. "https://powerapps.microsoft.com"
Кескін .jpeg, .png, .svg, .gif немесе басқа жиі пайдаланылатын веб-кескін пішіміндегі кескіннің әмбебап ресурс идентификаторы (URI) мәтін жолы. Сурет деректер түріне Түр функциясы қолдау көрсетпейді. MyImage қолданба ресурсы ретінде қосылды
"https://northwindtraders.com/logo.jpg"
"appres://blobmanager/7b12ffa2..."
БАҚ Бейне немесе аудио жазбаның URI мәтін жолы. Медиа деректер түріне Түрі функциясы қолдау көрсетпейді. MyVideo қолданба ресурсы ретінде қосылды
"https://northwindtraders.com/intro.mp4"
"appres://blobmanager/3ba411c..."
Сан Ондық (ең Power Fx хосттар) немесе Float (Кенвас қолданбалары) үшін бүркеншік ат. Берілген жағдай үшін санның кез келген түрін пайдалану мүмкін болса, максималды үйлесімділік үшін Сан пайдаланыңыз. 123
0,0123
1e4
Жазба Деректер мәндерінің жазбасы. Бұл құрама деректер түрі осы тақырыпта тізілген басқа деректер түрлерінің даналарын қамтиды. Қосымша ақпарат: Кестелермен жұмыс істеу. Бұл деректер түріне Түрі функциясы қолдау көрсетеді, егер a Жазба данасы пайдаланылса. { Компания: «Northwind Traders»,
Штат: 35,
NonProfit: false }
Анықтама жазу Кестедегі жазбаға сілтеме. Мұндай сілтемелер полиморфты іздеулерде жиі пайдаланылады. Қосымша ақпарат: Сілтемелермен жұмыс істеу. Бұл деректер түріне Түр функциясы қолдау көрсетпейді. Бірінші(Есептік жазбалар).Иесі
Кесте Жазбалар кестесі. Барлық жазбаларда деректер түрлері бірдей өрістер үшін бірдей атаулар болуы керек, ал қалдырылған өрістер бос ретінде қаралады. Бұл құрама деректер түрі осы тақырыпта тізілген басқа деректер түрлерінің даналарын қамтиды. Қосымша ақпарат: Кестелермен жұмыс істеу. Бұл деректер түріне Түрі функциясы қолдау көрсетеді, егер a Кесте данасы пайдаланылса. Кесте( { Аты: "Сидней",
LastName: "Хига" },
{ FirstName: "Нэнси",
LastName: "Андерсон" } )
Мәтін Юникод мәтін жолы. «Сәлем, әлем»
Уақыт Бағдарлама пайдаланушысының уақыт белдеуіндегі күн жоқ уақыт. Уақыт (11, 23, 45)
Терілмеген Жарияланбаған түрдегі нысан. Негізгі нысан кез келген бар түрі болуы мүмкін және оны Логикалық(), Мән(), Кесте() және т.б. Қосымша ақпарат алу үшін, қараңыз жіктелмеген нысан және JSON-мен жұмыс істеу. ParseJSON("{ ""Өріс"" : 1234 }").Өріс
Жарамсыз Тек мінез-құлық пайдаланушы анықтаған функциялар арқылы пайдаланылады, ол функцияның қайтару түрі жоқ екенін көрсетеді. Бұл деректер түріне Түр функциясы қолдау көрсетпейді. Функцияның қайтару түрі немесе мәні болмаса да, ол әрқашан қатені қайтара алады. Сәлем(): Жарамсыз = { Хабарлау( "Сәлеметсіз бе!" ) }
Иә/Жоқ Логикалық мәнді қолдайтын екі параметр жиынынан таңдау. Бұл деректер түрі логикалық мәні бар аударылатын мәтіндік белгіні біріктіреді. Белгі бағдарламада көрінеді, ал логикалық мән сақталады және салыстырулар үшін пайдаланылады. Бұл деректер түріне Түрі функциясы қолдау көрсетеді, егер а Иә/Жоқ өріс данасы атымен пайдаланылса. Бұл тармақ. Салық салынатын

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

Бос орын

Барлық деректер түрлерінде 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 жеміс береді.Алма және Банан айнымалылары мәтінге бұйра жақшалардың орнына Алма+Банан математикалық формуласының нәтижесімен бірге кірістіріледі. Бұйра жақшалардың айналасындағы бос орындар және басқа таңбалар сол күйінде сақталады.

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

$"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-базалық математиканы пайдалану кезінде жиналуы мүмкін өте аз айырмашылықтардан келетін дөңгелектеу қателерін болдырмау үшін маңызды ( пайдаланғандай). қалқыма).

Ауқым оң 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 деректер түрі, сонымен қатар Нөмір немесе Валюта< ретінде белгілі /a47>, 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 байттық) бүтін деректер түрлерін көрсете алмайды. Нөмірді мәтіндік өрісте сақтағыңыз немесе мәтін өрісіндегі санның көшірмесін жасау үшін есептелген бағанды ​​пайдаланғыңыз келуі мүмкін, осылайша ол Мәтін деректеріне сәйкес келеді. кенеп қолданбасын теріңіз. Осылайша, осы мәндерді сақтап, көрсете және енгізе аласыз және оларды салыстыра отырып, тең екендігін анықтай аласыз; дегенмен, олардың сандық есептеулерін осы пішінде орындауға болмайды.

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

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

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

Ескертпе

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

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

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

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

Қысқаша:

Қолданыс Ондық Қалқымалы
Формулалардағы әріптік сандар 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 мәндерге түрлендіріледі. Бұл түрлендіру дәлдікті жоғалтуға әкелуі мүмкін болғандықтан, екеуін қажетсіз араластырмау маңызды. Ондық әдепкі әріптік деректер түрі және сандық функциялардың көпшілігі түрін сақтайтындықтан, Қалқымалы <-қа көшуді болдырмау салыстырмалы түрде оңай. /a40>қалаусыз.

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

>> 1.0000000000000000000000000001 * 2
2.0000000000000000000000000002

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

>> 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 сағат батысқа көрсетілетін және енгізілген мән Мән функциясы қайтарылады
Жергілікті пайдаланушы Жексенбі,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( Мән( UnixTime ) / 1000, 0 )

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

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 мәні күн туралы ақпаратты сақтауы мүмкін, бұл әдетте 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, ...