жіктелмеген нысан деректер түрі
жіктелмеген нысан бұл Power Fx ішіндегі деректер түрі, ол кез келген күрделі немесе қарапайым деректер құрылымын сақтай алады. Оны тікелей пайдалану мүмкін емес және деректер түріне нақты түрлендіруді қажет етеді. Жіктелмеген нысандағы жазбалардағы өрістерге нүкте белгісін пайдалану арқылы қол жеткізуге болады және өрістердің бар болуы тек орындау уақытында тексеріледі.
жіктелмеген нысан бұл типтелмеген провайдерлердің қайтару түрі. Қазіргі уақытта тек ParseJSON() функциясы жіктелмеген нысанды қайтарады.
Қалыпты түрлері
типсіз нысанның түріндегі айнымалының мәнін тікелей пайдалану мүмкін емес. Оны әрдайым сәйкес түрдегі құрастырғыш арқылы дұрыс теру қажет.
Төмендегі мысалдар жіктелмеген нысанның UOValue
атты айнымалы мәнін түрлендіреді.
Text(UOValue)
Value(UOValue)
Төмендегі кестеде жіктелмеген нысанды сол деректер түріне түрлендіру үшін деректер түрлері мен сәйкес функциялар тізімі берілген.
Деректер түрі | Function | Сипаттама |
---|---|---|
Boolean | логикалық() | жіктелмеген нысан логикалық түрлендіру кезінде негізгі мән логикалық мәнді немесе автоматты түрде болуы мүмкін түрді көрсетуі керек. түрлендірілген («шын» жолы сияқты). |
Түсі | ColorValue() немесе RGBA() | Түстерді каскадталған мәнерлер парағының (CSS) түс анықтамасының жазбасында жол ретінде немесе жеке RGBA құрамдастары ретінде көрсетуге болады. Жіктелмеген нысанды ColorValue() функциясы арқылы тікелей каскадталған мәнерлер парағының (CSS) түс анықтамасы жолынан немесе RGBA() функциясы арқылы жеке RGBA нөмірлерінен түске түрлендіруге болады. |
Валюта, сан | Мән() | жіктелмеген нысан to санға түрлендіру кезінде негізгі мән автоматты түрде болуы мүмкін санды немесе түрді көрсетуі керек. түрлендірілген («123.456» жолы сияқты). |
Күн, күн/уақыт, уақыт | DateValue(), TimeValue() немесе DateTimeValue() | Күн, уақыт және күн/уақыт ISO 8601 пішімінде көрсетілгенде жіктелмеген нысаннан тиісті түріне тікелей түрлендіруге болады. Күн және уақытты түсіндіру үшін басқа пішімдерді алдымен Text() функциясын пайдаланып мәтінге түрлендіру қажет, содан кейін әдепкі бойынша ағымдағы пайдаланушы параметрлерінің тілін пайдаланатын DateValue(), TimeValue() or DateTimeValue() функциясына жіберіледі. |
GUID | GUID() | An жіктелмеген нысан егер негізгі нысан GUID ұсынса немесе ол жолды көрсетсе, GUID-ке тікелей түрлендіруге болады. |
HyperLink, кескін, мультимедиа | Мәтін() | Бұл деректер түрлері мәтін деректер түрлері болып табылады және оларды мәтінге түрлендіріп және содан кейін Power Fx бағдарламасында пайдалануға болады. |
Таңдау, екі нұсқа | Switch() немесе If() | Таңдау және екі опция Power Fx ішінде локализацияланған жолдар ретінде ұсынылған. Таңдаулар санмен және екі опциямен логикалық мәндермен қамтамасыз етіледі. Логикалық мән, сан немесе жолдан тікелей таңдауға немесе екі параметрге түрлендірілмейді, бірақ таңдау немесе екі параметр мәнін дұрыс тағайындау үшін логикалық мән, мәтін немесе сан мәнінде Switch() немесе If() функцияларын пайдалануға болады. |
Жазба | қолданылмайды | Жіктелмеген нысаннан жазба құрылымына тікелей түрлендіру жоқ, бірақ жеке өрістерді жазбаны қалыптастыру үшін жіктелмеген нысаннан шығарып алуға болады. |
Жазба сілтемесі | қолданылмайды | Жазба сілтемелері деректер көздеріне ғана тән және жіктелмеген нысандарда мағыналы көрсетілім жоқ. |
Table | Кесте() және Барлығы үшін() | Жіктелмеген нысан кестені түрлендіруге болатын массивті көрсетеді. Бұл нысандар жазбалардың массивтері немесе тиімді бір бағанды кестелер болып табылатын мәндердің массивтері болуы мүмкін. ForAll() толығымен терілген жазбалары бар кестені жасау үшін пайдалануға болады. Қосымша ақпарат алу үшін осы мақаланың төменгі жағындағы мысалдарды қарап шығыңыз. |
Мәтін | Мәтін() | Мәтінді тікелей түрлендіруге болады. Егер жіктелмеген нысан санды көрсететін болса, мәтінге түрлендірмес бұрын Value() элементін пайдалану арқылы алдымен жіктелмеген нысанды алдымен санға түрлендіру қажет. |
Жазба түрлері
Жазбалар үшін пайдаланылатын кәдімгі нүкте белгісін пайдаланып жіктелмеген нысан жазбасын көрсететін айнымалы мәндегі өрістерге қол жеткізуге болады. Дегенмен, өрістердің бар болуы орындалу уақытына дейін тексерілмейді. Нәтижесінде, қолжетімді IntelliSense жоқ. Егер өріс болмаса немесе негізгі нөл мәнін қамтыса, оған кіру нәтижесінде Blank() мәні пайда болады.
Жазбадағы әрбір өріс сондай-ақ жіктелмеген нысан түріне жатады және оны дұрыс жіктеу қажет. Өріс қарапайым түрдегі жіктелмеген жазба болуы мүмкін. Бұл жазба болған жағдайда, нүкте белгісін тізбектей аласыз. Егер тізбекте ешқандай өріс болмаса, Blank() элементі қайтарылады.
Төмендегі мысалдар жіктелмеген нысанның UORecord
атты айнымалы мәніндегі өрістерді пайдаланады.
Text(UORecord.StringField)
Value(UORecord.Field.ChildField)
Өріс атауы жарамсыз идентификатор атауынан тұратын жағдайда, мысалы, өріс атаулары саннан басталатын немесе сызықша сияқты жарамсыз таңбаларды қамтитын болса, өріс атауларын жалғыз тырнақшаға қоюға болады:
untyped.'01'
untyped.'my-field'
Массивтер
Жіктелмеген нысан айнымалысында массив болуы мүмкін. Массив жазбалар массиві немесе қарапайым түрдегі массив болса, Table() функциясын пайдалану арқылы жіктелмеген нысан массивін кестеге түрлендіру нәтижесінде жіктелмеген нысандардың бір бағанды кестесі пайда болады. ForAll() және Index() секілді функциялар алдымен Table() функциясын жасауды қажет етпейді, сондықтан да бір бағанды Value
өрісін пайдалануды қажет етпейді.
Мысалы, сан мәндерінен ([1, 2, 3]
) тұратын жіктелмеген нысан массивінде екінші нөмірді алу мақсатында кестедегі екінші жолды алу үшін және бағанды санға түрлендіру үшін келесі формуланы пайдалануға болады:
Value( Index( UOArray, 2 ) )
Егер жіктелмеген нысан алдымен Table() функциясына түрлендірілсе, нәтижесіндегі бір бағанды кестедегі екінші жол – бұл жіктелмеген нысаннан тұратын Value
бағаны.
Value( Index( Table( UOArray ), 2 ).Value )
Field
деп аталатын мәтіндік бағаны бар жазбалар массиві үшін бірдей логика қолданылады. Жіктелмеген нысанға тікелей кіруге болады немесе Table() функциясын пайдалансаңыз, нәтижесінде жіктелмеген нысанныңбір бағанды кестесі пайда болады.
Field
бағанына Index() функциясы арқылы қайтарылатын жіктелмеген нысаннан тікелей кіруге болады.
Text( Index( UORecordArray, 2 ).Field )
Table() функциясын пайдалану кезінде жіктелмеген нысанды алу үшін алдымен бір бағанды Value
бағанын шығарып алыңыз, содан кейін Field
бағанына кіріңіз:
Text( Index( Table( UORecordArray ), 2 ).Value.Field )
Жазбалар массивін жіктелген кестеге түрлендіру үшін ForAll() функциясын пайдалануға және әрбір жеке өрісті түрлендіруге болады.
ForAll( UORecordArray, { FirstField: Value(ThisRecord.FirstField), SecondField: Text(ThisRecord.SecondField) } )
Егер жіктелмеген нысан алдымен кестеген түрлендірілсе, тағы да, нәтижесіндегі жіктелмеген нысанның бір бағанды кестесі өрістерді алу үшін Value
бағанын пайдалануды қажет етеді.
ForAll( Table(UORecordArray), { FirstField: Value(ThisRecord.Value.FirstField), SecondField: Text(ThisRecord.Value.SecondField) } )