Power BI görsellerinin nesneleri ve özellikleri
Nesneler, bir görselle ilişkili özelleştirilebilir özellikleri açıklar. Bir nesnenin birden çok özelliği olabilir ve her özelliğin, özelliğin ne olacağını açıklayan ilişkili bir türü vardır. Bu makalede nesneler ve özellik türleri hakkında bilgi sağlanır.
myCustomObject
içindeki nesneye dataView
başvurmak için kullanılan iç addır.
"objects": {
"myCustomObject": {
"properties": { ... }
}
}
Görünen ad ve açıklama
Dekont
Görünen ad ve açıklama, API 5.1+ sürümünden kullanım dışıdır. Görünen ad ve açıklama artık capabilities.json dosyası yerine biçimlendirme modeline eklenir.
displayName
, özellik bölmesinde gösterilecek addır.
description
, kullanıcıya araç ipucu olarak gösterilecek biçimlendirme özelliğinin açıklamasıdır.
Özellikler
properties
, geliştirici tarafından tanımlanan özelliklerin bir haritasıdır.
"properties": {
"myFirstProperty": {
"type": ValueTypeDescriptor | StructuralTypeDescriptor
}
}
Dekont
show
, bir anahtarın nesneyi değiştirmesini sağlayan özel bir özelliktir.
Örneğin:
"properties": {
"show": {
"type": {"bool": true}
}
}
Özellik türleri
İki özellik türü vardır: ValueTypeDescriptor
ve StructuralTypeDescriptor
.
Değer türü tanımlayıcısı
ValueTypeDescriptor
türleri çoğunlukla ilkeldir ve normalde statik nesne olarak kullanılır.
Yaygın ValueTypeDescriptor
öğelerden bazıları şunlardır:
export interface ValueTypeDescriptor {
text?: boolean;
numeric?: boolean;
integer?: boolean;
bool?: boolean;
}
Yapısal tür tanımlayıcısı
StructuralTypeDescriptor
türleri çoğunlukla veriye bağlı nesneler için kullanılır.
En yaygın StructuralTypeDescriptor
tür dolgudur.
export interface StructuralTypeDescriptor {
fill?: FillTypeDescriptor;
}
Gradyan özelliği
Gradyan özelliği, standart özellik olarak ayarlanabilen bir özelliktir. Bunun yerine, renk seçici özelliğinin (dolgu türü) değiştirilmesi için bir kural ayarlamanız gerekir.
Aşağıdaki kodda bir örnek gösterilmiştir:
"properties": {
"showAllDataPoints": {
"type": {
"bool": true
}
},
"fill": {
"type": {
"fill": {
"solid": {
"color": true
}
}
}
},
"fillRule": {
"type": {
"fillRule": {}
},
"rule": {
"inputRole": "Gradient",
"output": {
"property": "fill",
"selector": [
"Category"
]
}
}
}
}
fill ve fillRule özelliklerine dikkat edin. Birincisi renk seçici, ikincisi ise kural koşulları karşılandığında dolgu özelliğininvisually
yerini alacak gradyanın değiştirme kuralıdır.
Fill özelliği ile değiştirme kuralı arasındaki bu bağlantı fillRule özelliğinin bölümünde ayarlanır"rule"
>"output"
.
"Rule"
>"InputRole"
özellik, kuralı (koşul) tetikleyen veri rolünü ayarlar. Bu örnekte, veri rolü "Gradient"
veri içeriyorsa, kural özelliği için "fill"
uygulanır.
Doldurma kuralını (the last item
) tetikleyen veri rolü örneği aşağıdaki kodda gösterilmiştir:
{
"dataRoles": [
{
"name": "Category",
"kind": "Grouping",
"displayName": "Details",
"displayNameKey": "Role_DisplayName_Details"
},
{
"name": "Series",
"kind": "Grouping",
"displayName": "Legend",
"displayNameKey": "Role_DisplayName_Legend"
},
{
"name": "Gradient",
"kind": "Measure",
"displayName": "Color saturation",
"displayNameKey": "Role_DisplayName_Gradient"
}
]
}
Biçimlendirme bölmesi
Biçimlendirme bölmesindeki özellikleri özelleştirmek için, kullandığınız API sürümüne bağlı olarak aşağıdaki yöntemlerden birini kullanın.
Dekont
getFormattingModel
API yöntemi, API 5.1+ sürümlerinde desteklenir. Hangi sürümü kullandığınızı öğrenmek için pbiviz.json dosyasını denetleyin apiVersion
.
API sürüm 5.1+ ile nesneleri etkili bir şekilde kullanmak için yöntemini uygulamanız getFormattingModel
gerekir.
Bu yöntem, biçimlendirme kartlarının, biçimlendirme gruplarının tam özellikler bölmesi hiyerarşisini içeren bir biçimlendirme modeli oluşturur ve döndürür; Ayrıca biçimlendirme özelliklerini ve değerlerini içerir.
Biçimlendirme modeline yansıtılan yetenek nesneleri
Biçimlendirme modelindeki her biçimlendirme özelliği, capabilities.json dosyasında karşılık gelen bir nesneye ihtiyaç duyar. Biçimlendirme özelliği, ilgili capabilities nesnesiyle tam olarak eşleşen bir nesne adına ve özellik adına sahip bir tanımlayıcı içermelidir (nesne ve özellik adları büyük/küçük harfe duyarlıdır).
Örneğin:
Biçimlendirme modelinde aşağıdaki biçimlendirme özelliği için (Tanımlayıcı nesne içeriğine bakın):
const myCustomCard: powerbi.visuals.FormattingCard = {
displayName: "My Custom Object Card",
uid: "myCustomObjectCard_uid",
groups: [{
displayName: undefined,
uid: "myCustomObjectGroup_uid",
slices: [
{
uid: "myCustomProperty_uid",
displayName: "My Custom Property",
control: {
type: powerbi.visuals.FormattingComponent.ColorPicker,
properties: {
descriptor: {
objectName: "myCustomObject",
propertyName: "myCustomProperty",
selector: null // selector is optional
},
value: { value: "#000000" }
}
}
}
],
}],
};
Yetenekler objects
bölümünde karşılık gelen nesne şu şekilde olmalıdır:
"objects": {
"myCustomObject": {
"properties": {
"myCustomProperty": {
"type": {
"fill": {
"solid": {
"color": true
}
}
}
}
}
}
}
Biçimlendirme özelliği seçicisi
Biçimlendirme özellikleri tanımlayıcısında isteğe bağlı seçici, her özelliğin dataView'da nereye bağlandığını belirler. Dört farklı seçenek vardır.
Örnek
Yukarıdaki myCustomCard
örnekte, bir özelliği olan bir nesne için biçimlendirme modelindeki biçimlendirme özelliğinin nasıl görüneceği gösterilmektedir myCustomProperty
. Bu özellik nesnesi statik olarak ile ilişkilidir.dataViews[index].metadata.objects
Tanımlayıcıdaki seçici, seçtiğiniz seçici türüne göre değiştirilebilir.
Nesne seçici türleri
içindeki enumerateObjectInstances
seçici, her nesnenin dataView'da nereye bağlı olduğunu belirler. Dört farklı seçenek vardır:
static
Bu nesne, burada gösterildiği gibi meta verilerine dataviews[index].metadata.objects
bağlıdır.
selector: null
sütunlar
Bu nesne, eşleşen QueryName
ile sütunlara bağlıdır.
selector: {
metadata: 'QueryName'
}
Seçici
Bu nesne, için oluşturduğunuz selectionID
öğeye bağlıdır. Bu örnekte, bazı veri noktaları için bunları oluşturduğumuz selectionID
ve bunlar arasında döngü yaptığımız varsayılır.
for (let dataPoint in dataPoints) {
...
selector: dataPoint.selectionID.getSelector()
}
Kapsam kimliği
Bu nesne, grupların kesişiminde belirli değerlere bağlıdır. Örneğin, kategorileriniz ["Jan", "Feb", "March", ...]
ve serileriniz ["Small", "Medium", "Large"]
varsa, ve Large
ile eşleşen Feb
değerlerin kesişiminde bir nesne olmasını isteyebilirsiniz. Bunu başarmak için her iki sütunu da DataViewScopeIdentity
alabilir, değişkenine identities
gönderebilirsiniz ve seçici ile bu söz dizimini kullanabilirsiniz.
selector: {
data: <DataViewScopeIdentity[]>identities
}