Aracılığıyla paylaş


Türü belirtilmemiş nesne veri türü

Türü belirsiz nesne, Power Fx içinde karmaşık veya basit herhangi bir veri yapısını tutabilen bir veri türüdür. Doğrudan kullanılamaz ve veri türüne açıkça dönüştürme yapılmasını gerektirir. Türü belirsiz nesne içinde kayıtlarındaki alanlara nokta gösterimi kullanarak erişilebilir ve alanların varlığı yalnızca çalışma zamanında doğrulanır.

Türü belirsiz nesne, türü belirsiz bazı sağlayıcıların döndürme türüdür. Şu anda yalnızca ParseJSON() işlevi türü belirsiz nesneyi döndürür.

Basit Türler

Türü belirsiz nesne türünün bir değişkenin değeri doğrudan kullanılamaz. İlgili tür oluşturucu kullanılarak her zaman doğru şekilde yazmanız gerekir.

Aşağıdaki örnekler, UOValue adlı türü belirsiz nesne değişkeninin değerini dönüştürür.

Text(UOValue)
Value(UOValue)

Aşağıdaki tabloda, veri türleri ve türü belirsiz nesneyi bu veri türüne dönüştürmek için ilgili işlevler listelenir.

Veri Türü İşlev Tanım
Boolean Boolean() Türü belirtilmemiş nesneyiboole'ye dönüştürürken, temel değerin bir boolean veya otomatik olarak dönüştürülebilen bir türü (örneğin "true" dizesi) temsil etmesi gerekir.
Color ColorValue() veya RGBA() Renkler Basamaklı Biçim Tablosu (CSS) renk tanımı gösteriminde dize olarak veya ayrı RGBA bileşenleri olarak gösterilebilir. Türü belirsiz nesne doğrudan Basamaklı Biçim Tablosu (CSS) renk tanımı dizesinden ColorValue() işlevini kullanarak veya RGBA() işlevi kullanılarak tek tek RGBA sayılarından renge dönüştürülebilir.
Para Birimi, Sayı Value() Türü belirtilmemiş nesneyisayı'ya dönüştürürken, temel değerin bir boolean veya otomatik olarak dönüştürülebilen bir türü (örneğin "123.456" dizesi) temsil etmesi gerekir.
Tarih, Tarih Saat, Saat DateValue(), TimeValue() veya DateTimeValue() Tarih, saat ve tarih saat, ISO 8601 biçiminde temsil edildiğinde, türü belirsiz nesneden doğrudan ilgili türlerine dönüştürülebilir. Diğer işlevler için önce Text() işlevini kullanarak diğer formatları metne dönüştürün ve ardından varsayılan olarak geçerli kullanıcı ayarlarının dilini kullanacak olan DateValue(), TimeValue() veya DateTimeValue() işlevini kullanın.
GUID GUID() Türü belirtilmemiş nesne, temel nesne bir GUID'yi temsil ediyorsa veya bir dizeyi temsil ediyorsa doğrudan GUID'ye dönüştürülebilir.
HyperLink, Görüntü, Ortam Text() Bu veri türleri metin veri türleridir ve metne dönüştürülebilir ve ardından Power Fx uygulamasında kullanılabilir.
Seçenek, İki Seçenek Switch() veya If() Seçimler ve iki seçenek, Power Fx içinde yerelleştirilmiş dizeler olarak sunulur. Seçimler bir sayı ve iki seçenek ile boole olarak yedeklenir. Boole, sayı veya dizeden bir seçeneğe veya iki seçeneğe doğrudan dönüştürme yoktur ancak Switch() veya If() işlevleri seçenek veya iki seçenek değerini doğru şekilde atamak için boole, metin veya sayı değerinde kullanılabilir.
Kaydet Yok Türü belirsiz nesnedenkayıt yapısına doğrudan dönüşüm yoktur, ancak yeni bir kayıt oluşturmak için türü belirsiz nesneden ayrı alanlar alınabilir.
Kayıt Başvurusu Yok Kayıt başvuruları, veri kaynaklarına özgüdür ve türü belirsiz nesnelerde anlamlı bir temsili yoktur.
Table Table() ve ForAll() Türü belirsiz bir nesne bir tabloya dönüştürebilen bir diziyi temsil edebilir. Bu nesneler kayıt dizileri veya etkin bir şekilde tek sütunlu tablolar olan değer dizileri olabilir. ForAll() tam olarak türü belirtilmiş kayıtlara sahip bir tablo oluşturmak için kullanılabilir. Daha fazla bilgi için bu makalenin ilerleyen bölümlerindeki örnekleri inceleyin.
Metin Text() Metin doğrudan dönüştürülebilir. Türü belirsiz bir nesne bir sayıyı gösteriyorsa türü belirsiz nesneyi metne dönüştürmeden önce Value() kullanarak sayıya dönüştürmeniz gerekir.

Kayıt Türleri

Kayıtlar için kullanılan normal nokta gösterimini kullanarak türü belirsiz bir nesne kaydını temsil eden bir değişkende alanlara erişebilirsiniz. Ancak alanların varlığı çalışma zamanına kadar doğrulanmaz. Sonuç olarak, kullanılabilir bir intellisense de yoktur. Bir alan mevcut değilse veya temel bir nulldeğeri varsa bu alana erişim Blank() değeriyle sonuçlanır.

Kayıttaki her bir alan türü belirsiz nesne türündedir ve uygun şekilde türü belirtilmesi gerekir. Bu alan basit türde bir türü belirsiz kayıt olabilir. Bir kayıt olduğu durumda, nokta gösterimini zincirleyebilirsiniz. Zincirde herhangi bir alan yoksa Blank() döndürülür.

Aşağıdaki örnekler, UORecord adlı türü belirsiz nesneden alanları kullanır.

Text(UORecord.StringField)
Value(UORecord.Field.ChildField)

Bir alan adı, geçersiz bir tanımlayıcı adından oluşuyorsa (örneğin alan adları bir sayıyla başladığında veya kısa çizgi gibi geçersiz karakterler içerdiğinde) alan adlarını tek tırnak işaretleri içine koyabilirsiniz:

untyped.'01'
untyped.'my-field'

Diziler

Türü belirsiz nesne değişkeni bir dizi içerebilir. Dizi, bir kayıt dizisi ya da basit türler dizisi olsa bile türü belirsiz nesne dizisini Table()işlevini kullanarak bir tabloya dönüştürmek, daima türü belirsiz nesnelerden oluşan tek sütunlu bir tabloyla sonuçlanır. ForAll() ve Index() gibi işlevler, önce bir Table() oluşturmanızı, dolayısıyla da tek sütunlu Value alanı kullanmanızı gerektirmez,

Örneğin sayı değerlerini ( [1, 2, 3] ) içeren türü belirsiz bir nesne dizisindeki ikinci sayıyı almak için tablodaki ikinci sırayı almak ve sütunu bir sayıya dönüştürmek üzere aşağıdaki formül kullanılabilir:

Value( Index( UOArray, 2 ) )

Türü belirsiz nesne önce bir Table() olarak dönüştürüldüyse, elde edilen tek sütunlu tablodaki ikinci satır türü belirsiz nesneyi içeren bir Value sütunudur:

Value( Index( Table( UOArray ), 2 ).Value )

Field adlı bir metin sütunu olan kayıtlar dizisi için de aynı mantık geçerlidir. Türü belirsiz nesneye doğrudan erişilebilir. Table() işlevi kullanılıyorsa, tek sütunlu bir türü belirsiz nesne tablosu oluşturulur.

Field sütununa Index() işlevi tarafından döndürülen türü belirsiz nesne üzerinden doğrudan erişilebilir.

Text( Index( UORecordArray, 2 ).Field )

Table() işlevini kullanıyorsanız, türü belirsiz nesneyi almak üzere tek sütunlu Value sütununu alın, ardından Field sütununa erişin:

Text( Index( Table( UORecordArray ), 2 ).Value.Field )

Kayıt dizisini türü belirli bir tabloya dönüştürmek için, ForAll() işlevini kullanabilir ve her alanı tek tek dönüştürebilirsiniz.

ForAll( UORecordArray, { FirstField: Value(ThisRecord.FirstField), SecondField: Text(ThisRecord.SecondField) } )

Türü belirsiz nesne önce bir tabloya dönüştürülürse, elde edilen tek sütunlu türü belirsiz nesne tablosu alanları almak için Value sütununu kullanmanızı gerektirir.

ForAll( Table(UORecordArray), { FirstField: Value(ThisRecord.Value.FirstField), SecondField: Text(ThisRecord.Value.SecondField) } )