A Power BI-vizualizációk objektumai és tulajdonságai
Az objektumok a vizualizációhoz társított testreszabható tulajdonságokat írják le. Egy objektum több tulajdonsággal is rendelkezhet, és mindegyik tulajdonsághoz tartozik egy társított típus, amely leírja, hogy mi lesz a tulajdonság. Ez a cikk az objektumokról és a tulajdonságtípusokról nyújt tájékoztatást.
myCustomObject
az a belső név, amely a belső objektumra dataView
való hivatkozáshoz használatos.
"objects": {
"myCustomObject": {
"properties": { ... }
}
}
Megjelenített név és leírás
Feljegyzés
A megjelenítendő név és leírás elavult az API 5.1+-os verziójából. A megjelenítendő név és a leírás mostantól a formázási modellben jelenik meg a capabilities.json fájl helyett.
displayName
a tulajdonságpanelen megjelenő név.
description
a formázási tulajdonság leírása, amely elemleírásként jelenik meg a felhasználó számára.
Tulajdonságok
properties
a fejlesztő által definiált tulajdonságok térképe.
"properties": {
"myFirstProperty": {
"type": ValueTypeDescriptor | StructuralTypeDescriptor
}
}
Feljegyzés
show
egy speciális tulajdonság, amely lehetővé teszi, hogy egy kapcsoló váltsa ki az objektumot.
Példa:
"properties": {
"show": {
"type": {"bool": true}
}
}
Tulajdonságtípusok
Két tulajdonságtípus létezik: ValueTypeDescriptor
és StructuralTypeDescriptor
.
Értéktípus-leíró
ValueTypeDescriptor
típusok többnyire primitívek, és általában statikus objektumként használják.
Íme néhány gyakori ValueTypeDescriptor
elem:
export interface ValueTypeDescriptor {
text?: boolean;
numeric?: boolean;
integer?: boolean;
bool?: boolean;
}
Szerkezeti típusleíró
StructuralTypeDescriptor
a típusokat többnyire adathoz kötött objektumokhoz használják.
A leggyakoribb StructuralTypeDescriptor
típus a kitöltés.
export interface StructuralTypeDescriptor {
fill?: FillTypeDescriptor;
}
Színátmenet tulajdonság
A színátmenet tulajdonság olyan tulajdonság, amely nem állítható be standard tulajdonságként. Ehelyett be kell állítania egy szabályt a színválasztó tulajdonság (kitöltés típusa) helyettesítéséhez.
Egy példa látható a következő kódban:
"properties": {
"showAllDataPoints": {
"type": {
"bool": true
}
},
"fill": {
"type": {
"fill": {
"solid": {
"color": true
}
}
}
},
"fillRule": {
"type": {
"fillRule": {}
},
"rule": {
"inputRole": "Gradient",
"output": {
"property": "fill",
"selector": [
"Category"
]
}
}
}
}
Ügyeljen a kitöltési és fillRule-tulajdonságokra. Az első a színválasztó, a második pedig a kitöltési tulajdonságot lecserélő színátmenet helyettesítési szabálya, visually
amikor teljesülnek a szabályfeltételek.
A kitöltési tulajdonság és a helyettesítési szabály közötti kapcsolat a"rule"
>"output"
fillRule tulajdonság szakaszában van beállítva.
"Rule"
>
"InputRole"
tulajdonság azt határozza meg, hogy melyik adatszerepkör aktiválja a szabályt (feltétel). Ebben a példában, ha az adatszerepkör "Gradient"
adatokat tartalmaz, a szabály a "fill"
tulajdonságra lesz alkalmazva.
A kitöltési szabályt (the last item
) aktiváló adatszerepkörre az alábbi kódban látható példa:
{
"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"
}
]
}
Formázás panel
A formázási panel tulajdonságainak testreszabásához használja az alábbi módszerek egyikét attól függően, hogy milyen API-verziót használ.
Feljegyzés
Az getFormattingModel
API-metódust az API 5.1+-es verziói támogatják. Ha meg szeretné tudni, hogy melyik verziót használja, ellenőrizze a apiVersion
pbiviz.json fájlban.
Ahhoz, hogy az API 5.1+-es verziójában hatékonyan használhassa az objektumokat, implementálnia kell a metódust getFormattingModel
.
Ez a metódus létrehoz és visszaad egy formázási modellt, amely tartalmazza a formázási kártyák, formázási csoportok teljes tulajdonságpanel-hierarchiáját , valamint formázási tulajdonságokat és azok értékeit is.
A formázási modellben tükröződő képességobjektumok
A formázási modell minden formázási tulajdonságának megfelelő objektumra van szüksége a capabilities.json fájlban. A formázási tulajdonságnak tartalmaznia kell egy leírót, amely pontosan megfelel a megfelelő képességobjektumnak (az objektum- és tulajdonságnevek megkülönböztetik a kis- és nagybetűket).
Példa:
A következő formázási tulajdonság a formázási modellben (lásd a leíró objektum tartalmát):
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" }
}
}
}
],
}],
};
A képességek objects
szakasz megfelelő objektumának a következőnek kell lennie:
"objects": {
"myCustomObject": {
"properties": {
"myCustomProperty": {
"type": {
"fill": {
"solid": {
"color": true
}
}
}
}
}
}
}
Formázási tulajdonságválasztó
A tulajdonságok leírójának formázásában választható választó határozza meg, hogy az egyes tulajdonságok hol vannak kötve a dataView-ban. Négy különböző lehetőség közül választhat.
Példa
A fenti myCustomCard
példa bemutatja, hogy a formázási modell formázási tulajdonsága hogyan nézne ki egy egy tulajdonsággal myCustomProperty
rendelkező objektumhoz. Ez a tulajdonságobjektum statikusan hozzá van kötve.dataViews[index].metadata.objects
A leíró választója ennek megfelelően módosítható a választott választótípusra.
Objektumválasztók típusai
A választó határozza enumerateObjectInstances
meg, hogy az egyes objektumok hol vannak kötve a dataView-ban. Négy különböző lehetőség közül választhat:
static
Ez az objektum metaadatokhoz dataviews[index].metadata.objects
van kötve, ahogy az itt látható.
selector: null
eltávolítása
Ez az objektum az egyező QueryName
oszlopokkal rendelkező oszlopokhoz van kötve.
selector: {
metadata: 'QueryName'
}
szelektor
Ez az objektum a létrehozott selectionID
elemhez van kötve. Ebben a példában feltételezzük, hogy létrehoztunk selectionID
néhány adatpontot, és végighaladunk rajtuk.
for (let dataPoint in dataPoints) {
...
selector: dataPoint.selectionID.getSelector()
}
Hatókör identitása
Ez az objektum bizonyos értékekhez van kötve a csoportok metszéspontjában. Ha például vannak kategóriái és adatsorai ["Jan", "Feb", "March", ...]
["Small", "Medium", "Large"]
, érdemes lehet egy objektumot használnia az értékek metszéspontjában.Feb
Large
Ehhez lekérheti mindkét oszlopot, leküldheti őket a DataViewScopeIdentity
változóba identities
, és használhatja ezt a szintaxist a választóval.
selector: {
data: <DataViewScopeIdentity[]>identities
}