Megosztás a következőn keresztül:


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 dataViewvaló hivatkozáshoz használatos.

"objects": {
    "myCustomObject": {
        "properties": { ... }
    }
}

Megjelenített név és leírás

Megjegyzé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 leírás mostantól a capabilities.json fájl helyett a formázási modellben lesz hozzáadva .

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.

Properties

properties a fejlesztő által definiált tulajdonságok térképe.

"properties": {
    "myFirstProperty": {
        "type": ValueTypeDescriptor | StructuralTypeDescriptor
    }
}

Megjegyzé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}
    }
}

Property types

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, visuallyamikor teljesülnek a szabályfeltételek.

A kitöltési tulajdonság és a helyettesítési szabály közötti kapcsolat a"output">"rule" 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.

Megjegyzé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 apiVersionpbiviz.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 modellben minden formázási tulajdonságnak 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éldául:

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 myCustomPropertyrendelkező 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.objectsvan kötve, ahogy az itt látható.

selector: null

eltávolítása

Ez az objektum az egyező QueryNameoszlopokkal rendelkező oszlopokhoz van kötve.

selector: {
    metadata: 'QueryName'
}

Választó

Ez az objektum a létrehozott selectionID elemhez van kötve. Ebben a példában feltételezzük, hogy létrehoztunk selectionIDné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.FebLarge 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
}

Teljesítménnyel kapcsolatos tippek