Αντικείμενα και ιδιότητες απεικονίσεων του Power BI

Τα αντικείμενα περιγράφουν προσαρμόσιμες ιδιότητες που σχετίζονται με μια απεικόνιση. Ένα αντικείμενο μπορεί να έχει πολλές ιδιότητες και κάθε ιδιότητα έχει έναν συσχετισμένο τύπο που περιγράφει τι θα είναι η ιδιότητα. Αυτό το άρθρο παρέχει πληροφορίες σχετικά με αντικείμενα και τύπους ιδιοτήτων.

myCustomObject Το είναι το εσωτερικό όνομα που χρησιμοποιείται για την αναφορά του αντικειμένου εντός dataViewτου .

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

Εμφανιζόμενο όνομα και περιγραφή

Σημείωμα

Το εμφανιζόμενο όνομα και η περιγραφή καταγράφονται από την έκδοση 5.1+API. Το εμφανιζόμενο όνομα και η περιγραφή προστίθενται τώρα στο μοντέλο μορφοποίησης αντί για το αρχείο capabilities.json .

displayName Το είναι το όνομα που θα εμφανίζεται στο τμήμα παραθύρου ιδιοτήτων. description Το είναι μια περιγραφή της ιδιότητας μορφοποίησης που θα εμφανίζεται στον χρήστη ως συμβουλή εργαλείου.

Ιδιότητες

properties Το είναι μια αντιστοίχιση ιδιοτήτων που ορίζονται από τον προγραμματιστή.

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

Σημείωμα

show Το είναι μια ειδική ιδιότητα που επιτρέπει την εναλλαγή του αντικειμένου.

Παράδειγμα:

"properties": {
    "show": {
        "type": {"bool": true}
    }
}

Τύποι ιδιοτήτων

Υπάρχουν δύο τύποι ιδιοτήτων: ValueTypeDescriptor και StructuralTypeDescriptor.

Περιγραφή τύπου τιμής

ValueTypeDescriptor Οι τύποι είναι κυρίως στοιχειώδεις και συνήθως χρησιμοποιούνται ως στατικό αντικείμενο.

Ακολουθούν ορισμένα από τα κοινά ValueTypeDescriptor στοιχεία:

export interface ValueTypeDescriptor {
    text?: boolean;
    numeric?: boolean;
    integer?: boolean;
    bool?: boolean;
}

Περιγραφή δομικού τύπου

StructuralTypeDescriptor Οι τύποι χρησιμοποιούνται κυρίως για αντικείμενα συνδεδεμένα με δεδομένα. Ο πιο συνηθισμένος StructuralTypeDescriptor τύπος είναι fill.

export interface StructuralTypeDescriptor {
    fill?: FillTypeDescriptor;
}

Ιδιότητα διαβάθμισης

Η ιδιότητα διαβάθμισης είναι μια ιδιότητα που δεν μπορεί να οριστεί ως τυπική ιδιότητα. Αντί για αυτό, πρέπει να ορίσετε έναν κανόνα για την αντικατάσταση της ιδιότητας επιλογής χρώματος (τύπος γεμίσματος ).

Ακολουθεί ένα παράδειγμα στον παρακάτω κώδικα:

"properties": {
    "showAllDataPoints": {
        "type": {
            "bool": true
        }
    },
    "fill": {
        "type": {
            "fill": {
                "solid": {
                    "color": true
                }
            }
        }
    },
    "fillRule": {
        "type": {
            "fillRule": {}
        },
        "rule": {
            "inputRole": "Gradient",
            "output": {
                "property": "fill",
                    "selector": [
                        "Category"
                    ]
            }
        }
    }
}

Προσέξτε τις ιδιότητες fill και fillRule . Η πρώτη είναι ο επιλογέας χρώματος και η δεύτερη είναι ο κανόνας υποκατάστασης για τη διαβάθμιση που θα αντικαταστήσει την ιδιότητα fill property, visually, όταν ικανοποιηθούν οι συνθήκες κανόνα.

Αυτή η σύνδεση μεταξύ της ιδιότητας γεμίσματος και του κανόνα υποκατάστασης ορίζεται στην "rule""output">ενότητα της ιδιότητας fillRule.

"Rule">"InputRole" Η ιδιότητα ορίζει ποιος ρόλος δεδομένων ενεργοποιεί τον κανόνα (συνθήκη). Σε αυτό το παράδειγμα, εάν ο ρόλος "Gradient" δεδομένων περιέχει δεδομένα, ο κανόνας εφαρμόζεται για την "fill" ιδιότητα .

Ένα παράδειγμα του ρόλου δεδομένων που ενεργοποιεί τον κανόνα γεμίσματος (the last item) εμφανίζεται στον παρακάτω κώδικα:

{
    "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"
            }
    ]
}

Τμήμα παραθύρου "Μορφοποίηση"

Για να προσαρμόσετε τις ιδιότητες στο τμήμα παραθύρου μορφοποίησης, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους, ανάλογα με την έκδοση API που χρησιμοποιείτε.

Σημείωμα

Η getFormattingModel μέθοδος API υποστηρίζεται από τις εκδόσεις API 5.1+. Για να μάθετε ποια έκδοση χρησιμοποιείτε, ελέγξτε το apiVersion στο αρχείο pbiviz.json .

Για να χρησιμοποιήσετε αποτελεσματικά αντικείμενα στην έκδοση API 5.1+, πρέπει να υλοποιήσετε τη getFormattingModel μέθοδο .
Αυτή η μέθοδος δημιουργεί και επιστρέφει ένα μοντέλο μορφοποίησης που περιλαμβάνει ιεραρχία παραθύρου πλήρων ιδιοτήτων για κάρτες μορφοποίησης, ομάδες μορφοποίησης, Επίσης, περιέχει ιδιότητες μορφοποίησης και τις τιμές τους.

Αντικείμενα δυνατοτήτων που απεικονίζονται στο μοντέλο μορφοποίησης

Κάθε ιδιότητα μορφοποίησης στο μοντέλο μορφοποίησης χρειάζεται ένα αντίστοιχο αντικείμενο στο αρχείο capabilities.json . Η ιδιότητα μορφοποίησης θα πρέπει να περιέχει μια περιγραφή με όνομα αντικειμένου και όνομα ιδιότητας που ταιριάζει απόλυτα με το αντίστοιχο αντικείμενο δυνατοτήτων (στα ονόματα αντικειμένων και ιδιοτήτων γίνεται διάκριση πεζών-κεφαλαίων).
Για παράδειγμα:

Για την ακόλουθη ιδιότητα μορφοποίησης στο μοντέλο μορφοποίησης (ανατρέξτε στο περιεχόμενο αντικειμένου περιγραφής):

 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" }
                            }
                        }
                    }
                ],
            }],
        };

Το αντίστοιχο αντικείμενο από την ενότητα δυνατοτήτων objects θα πρέπει να είναι:

    "objects": {
        "myCustomObject": {
            "properties": {
                "myCustomProperty": {
                    "type": {
                         "fill": {
                            "solid": {
                                "color": true
                            }
                        }
                    }
                }
            }
        }
    }           

Επιλογέας ιδιοτήτων μορφοποίησης

Ο προαιρετικός επιλογέας στην περιγραφή ιδιοτήτων μορφοποίησης προσδιορίζει το σημείο σύνδεσης κάθε ιδιότητας στο dataView. Υπάρχουν τέσσερις ξεχωριστές επιλογές.

Παράδειγμα

Το παραπάνω myCustomCard παράδειγμα εμφανίζει την ιδιότητα μορφοποίησης στο μοντέλο μορφοποίησης που θα μοιάζει με ένα αντικείμενο με μία ιδιότητα myCustomProperty. Αυτό το αντικείμενο ιδιότητας συνδέεται στατικά στο dataViews[index].metadata.objects. Ο επιλογέας στην περιγραφή μπορεί να αλλάξει ανάλογα με τον τύπο επιλογέα που επιλέγετε.

Τύποι επιλογέων αντικειμένων

Ο επιλογέας στο enumerateObjectInstances προσδιορίζει το σημείο σύνδεσης κάθε αντικειμένου στην dataView. Υπάρχουν τέσσερις ξεχωριστές επιλογές:

Στατική

Αυτό το αντικείμενο συνδέεται στα μετα-δεδομένα dataviews[index].metadata.objects, όπως φαίνεται εδώ.

selector: null

στήλες

Αυτό το αντικείμενο συνδέεται σε στήλες με το αντίστοιχο QueryName.

selector: {
    metadata: 'QueryName'
}

Επιλογέα

Αυτό το αντικείμενο συνδέεται στο στοιχείο για το οποίο δημιουργήσατε ένα selectionID . Σε αυτό το παράδειγμα, ας υποθέσουμε ότι δημιουργήσαμε selectionIDγια ορισμένα σημεία δεδομένων και δημιουργούμε βρόχους σε αυτά.

for (let dataPoint in dataPoints) {
    ...
    selector: dataPoint.selectionID.getSelector()
}

Ταυτότητα εμβέλειας

Αυτό το αντικείμενο συνδέεται με συγκεκριμένες τιμές στην τομή των ομάδων. Για παράδειγμα, εάν έχετε κατηγορίες και σειρές ["Jan", "Feb", "March", ...]["Small", "Medium", "Large"], μπορεί να θέλετε να έχετε ένα αντικείμενο στην τομή των τιμών που συμφωνούν Feb και Large. Για να γίνει αυτό, μπορείτε να λάβετε την DataViewScopeIdentity και των δύο στηλών, να τις προωθήσετε στη μεταβλητή identitiesκαι να χρησιμοποιήσετε αυτήν τη σύνταξη με τον επιλογέα.

selector: {
    data: <DataViewScopeIdentity[]>identities
}

Συμβουλές απόδοσης