Aracılığıyla paylaş


Power BI görsellerinde veri görünümü eşlemesini anlama

Bu makalede veri görünümü eşlemesi ele alınmaktadır ve farklı görsel türleri oluşturmak için veri rollerinin nasıl kullanıldığı açıklanmaktadır. Veri rolleri ve farklı dataMappings türler için koşullu gereksinimlerin nasıl belirtileceğini açıklar.

Her geçerli eşleme bir veri görünümü oluşturur. Belirli koşullar altında birden çok veri eşlemesi sağlayabilirsiniz. Desteklenen eşleme seçenekleri şunlardır:

"dataViewMappings": [
    {
        "conditions": [ ... ],
        "categorical": { ... },
        "single": { ... },
        "table": { ... },
        "matrix": { ... }
    }
]

Power BI, veri görünümüne eşlemeyi yalnızca içinde geçerli eşleme de tanımlanıyorsa dataViewMappingsoluşturur.

Başka bir deyişle, categorical içinde dataViewMappings tanımlanabilir, ancak veya singlegibi table diğer eşlemeler tanımlanmayabilir. Bu durumda Power BI tek categorical eşlemeli bir veri görünümü oluştururken table diğer eşlemeler tanımsız kalır. Örneğin:

"dataViewMappings": [
    {
    "categorical": {
        "categories": [ ... ],
        "values": [ ... ]
    },
    "metadata": { ... }
    }
]

Koşullar

conditions bölümü, belirli bir veri eşlemesi için kurallar oluşturur. Veriler açıklanan koşul kümelerinden biriyle eşleşiyorsa görsel verileri geçerli olarak kabul eder.

Her alan için en düşük ve en yüksek değeri belirtebilirsiniz. değeri, bu veri rolüne bağlanabilecek alanların sayısını temsil eder.

Not

Koşulda bir veri rolü atlanırsa, herhangi bir sayıda alanı olabilir.

Aşağıdaki örnekte , category bir veri alanıyla ve iki veri alanıyla measure sınırlıdır.

"conditions": [
    { "category": { "max": 1 }, "measure": { "max": 2 } },
]

Veri rolü için birden çok koşul da ayarlayabilirsiniz. Bu durumda, koşullardan herhangi biri karşılanırsa veriler geçerli olur.

"conditions": [
    { "category": { "min": 1, "max": 1 }, "measure": { "min": 2, "max": 2 } },
    { "category": { "min": 2, "max": 2 }, "measure": { "min": 1, "max": 1 } }
]

Önceki örnekte, aşağıdaki iki koşuldan biri gereklidir:

  • Tam olarak bir kategori alanı ve tam olarak iki ölçü
  • Tam olarak iki kategori ve tam olarak bir ölçü

Tek veri eşleme

Tek veri eşleme, veri eşlemenin en basit biçimidir. Tek bir ölçü alanı kabul eder ve toplamı döndürür. Alan sayısalsa, toplamı döndürür. Aksi takdirde, benzersiz değerlerin sayısını döndürür.

Tek veri eşlemesini kullanmak için eşlemek istediğiniz veri rolünün adını tanımlayın. Bu eşleme yalnızca tek bir ölçü alanıyla çalışır. İkinci bir alan atanırsa veri görünümü oluşturulmaz, bu nedenle verileri tek bir alanla sınırlayan bir koşul eklemek iyi bir uygulamadır.

Not

Bu veri eşlemesi başka hiçbir veri eşlemesiyle birlikte kullanılamaz. Verileri tek bir sayısal değere düşürmeyi amaçlır.

Örneğin:

{
    "dataRoles": [
        {
            "displayName": "Y",
            "name": "Y",
            "kind": "Measure"
        }
    ],
    "dataViewMappings": [
        {
            "conditions": [
                {
                    "Y": {
                        "max": 1
                    }
                }
            ],
            "single": {
                "role": "Y"
            }
        }
    ]
}

Sonuçta elde edilen veri görünümü tablo veya kategorik gibi başka eşleme türlerini de içerebilir, ancak her eşleme yalnızca tek bir değer içerir. En iyi yöntem, değere yalnızca tek eşlemede erişmektir.

{
    "dataView": [
        {
            "metadata": null,
            "categorical": null,
            "matrix": null,
            "table": null,
            "tree": null,
            "single": {
                "value": 94163140.3560001
            }
        }
    ]
}

Aşağıdaki kod örneği basit veri görünümleri eşlemesini işler:

"use strict";
import powerbi from "powerbi-visuals-api";
import DataView = powerbi.DataView;
import DataViewSingle = powerbi.DataViewSingle;
// standard imports
// ...

export class Visual implements IVisual {
    private target: HTMLElement;
    private host: IVisualHost;
    private valueText: HTMLParagraphElement;

    constructor(options: VisualConstructorOptions) {
        // constructor body
        this.target = options.element;
        this.host = options.host;
        this.valueText = document.createElement("p");
        this.target.appendChild(this.valueText);
        // ...
    }

    public update(options: VisualUpdateOptions) {
        const dataView: DataView = options.dataViews[0];
        const singleDataView: DataViewSingle = dataView.single;

        if (!singleDataView ||
            !singleDataView.value ) {
            return
        }

        this.valueText.innerText = singleDataView.value.toString();
    }
}

Önceki kod örneği, Power BI'dan tek bir değerin görüntülenmesine neden olur:

Tek bir veri görünümü eşleme görselinin ekran görüntüsü.

Kategorik veri eşleme

Kategorik veri eşleme, bağımsız gruplamalar veya veri kategorileri almak için kullanılır. Kategoriler, veri eşlemesinde "gruplandırma ölçütü" kullanılarak birlikte de gruplandırılabilir.

Temel kategorik veri eşleme

Aşağıdaki veri rollerini ve eşlemelerini göz önünde bulundurun:

"dataRoles":[
    {
        "displayName": "Category",
        "name": "category",
        "kind": "Grouping"
    },
    {
        "displayName": "Y Axis",
        "name": "measure",
        "kind": "Measure"
    }
],
"dataViewMappings": {
    "categorical": {
        "categories": {
            "for": { "in": "category" }
        },
        "values": {
            "select": [
                { "bind": { "to": "measure" } }
            ]
        }
    }
}

Önceki örnekte "içine sürüklediğim categoryher alan için verilerimin ile eşlenmesi categorical.categoriesiçin veri rolümü category eşle" ifadesi yer alır. Ayrıca, veri rolümü measure ile eşleyin categorical.values."

  • Için... in: Bu veri rolündeki tüm öğeleri veri sorgusuna ekler.
  • Bağlamak... to: Için ile aynı sonucu verir... ancak veri rolünün tek bir alanla kısıtlayan bir koşula sahip olmasını bekler.

Kategorik verileri gruplandırma

Sonraki örnek, önceki örnekle aynı iki veri rolünü kullanır ve ve measure2adlı grouping iki veri rolü daha ekler.

"dataRoles":[
    {
        "displayName": "Category",
        "name": "category",
        "kind": "Grouping"
    },
    {
        "displayName": "Y Axis",
        "name": "measure",
        "kind": "Measure"
    },
    {
        "displayName": "Grouping with",
        "name": "grouping",
        "kind": "Grouping"
    },
    {
        "displayName": "X Axis",
        "name": "measure2",
        "kind": "Grouping"
    }
],
"dataViewMappings": [
    {
        "categorical": {
            "categories": {
                "for": {
                    "in": "category"
                }
            },
            "values": {
                "group": {
                    "by": "grouping",
                    "select": [{
                            "bind": {
                                "to": "measure"
                            }
                        },
                        {
                            "bind": {
                                "to": "measure2"
                            }
                        }
                    ]
                }
            }
        }
    }
]

Bu eşleme ile temel eşleme arasındaki fark, nasıl categorical.values eşlendiğidir. ve measure2 veri rollerini veri rolüyle groupingeşlediğinizdemeasure, x ekseni ve y ekseni uygun şekilde ölçeklendirilebilir.

Hiyerarşik verileri gruplandırma

Sonraki örnekte kategorik veriler, detaya gitme eylemlerini desteklemek için kullanılabilen bir hiyerarşi oluşturmak için kullanılır.

Aşağıdaki örnekte veri rolleri ve eşlemeleri gösterilmektedir:

"dataRoles": [
    {
        "displayName": "Categories",
        "name": "category",
        "kind": "Grouping"
    },
    {
        "displayName": "Measures",
        "name": "measure",
        "kind": "Measure"
    },
    {
        "displayName": "Series",
        "name": "series",
        "kind": "Measure"
    }
],
"dataViewMappings": [
    {
        "categorical": {
            "categories": {
                "for": {
                    "in": "category"
                }
            },
            "values": {
                "group": {
                    "by": "series",
                    "select": [{
                            "for": {
                                "in": "measure"
                            }
                        }
                    ]
                }
            }
        }
    }
]

Aşağıdaki kategorik verileri göz önünde bulundurun:

Ülke/Bölge 2013 2014 2015 2016
ABD x x 650 350
Kanada x 630 490 x
Meksika 645 x x x
Birleşik Krallık x x 831 x

Power BI, aşağıdaki kategori kümesiyle kategorik bir veri görünümü oluşturur.

{
    "categorical": {
        "categories": [
            {
                "source": {...},
                "values": [
                    "Canada",
                    "USA",
                    "UK",
                    "Mexico"
                ],
                "identity": [...],
                "identityFields": [...],
            }
        ]
    }
}

Her category biri bir kümesine eşler values. Bunların values her biri, yıl olarak ifade edilen ile gruplandırılır series.

Örneğin, her values dizi bir yılı temsil eder. Ayrıca her values dizinin dört değeri vardır: Kanada, ABD, İngiltere ve Meksika.

{
    "values": [
        // Values for year 2013
        {
            "source": {...},
            "values": [
                null, // Value for `Canada` category
                null, // Value for `USA` category
                null, // Value for `UK` category
                645 // Value for `Mexico` category
            ],
            "identity": [...],
        },
        // Values for year 2014
        {
            "source": {...},
            "values": [
                630, // Value for `Canada` category
                null, // Value for `USA` category
                null, // Value for `UK` category
                null // Value for `Mexico` category
            ],
            "identity": [...],
        },
        // Values for year 2015
        {
            "source": {...},
            "values": [
                490, // Value for `Canada` category
                650, // Value for `USA` category
                831, // Value for `UK` category
                null // Value for `Mexico` category
            ],
            "identity": [...],
        },
        // Values for year 2016
        {
            "source": {...},
            "values": [
                null, // Value for `Canada` category
                350, // Value for `USA` category
                null, // Value for `UK` category
                null // Value for `Mexico` category
            ],
            "identity": [...],
        }
    ]
}

Aşağıdaki kod örneği kategorik veri görünümü eşlemesini işlemeye yöneliktir. Bu örnek Ülke/Bölge > Yıl > Değeri hiyerarşik yapısını oluşturur.

"use strict";
import powerbi from "powerbi-visuals-api";
import DataView = powerbi.DataView;
import DataViewCategorical = powerbi.DataViewCategorical;
import DataViewValueColumnGroup = powerbi.DataViewValueColumnGroup;
import PrimitiveValue = powerbi.PrimitiveValue;
// standard imports
// ...

export class Visual implements IVisual {
    private target: HTMLElement;
    private host: IVisualHost;
    private categories: HTMLElement;

    constructor(options: VisualConstructorOptions) {
        // constructor body
        this.target = options.element;
        this.host = options.host;
        this.categories = document.createElement("pre");
        this.target.appendChild(this.categories);
        // ...
    }

    public update(options: VisualUpdateOptions) {
        const dataView: DataView = options.dataViews[0];
        const categoricalDataView: DataViewCategorical = dataView.categorical;

        if (!categoricalDataView ||
            !categoricalDataView.categories ||
            !categoricalDataView.categories[0] ||
            !categoricalDataView.values) {
            return;
        }

        // Categories have only one column in data buckets
        // To support several columns of categories data bucket, iterate categoricalDataView.categories array.
        const categoryFieldIndex = 0;
        // Measure has only one column in data buckets.
        // To support several columns on data bucket, iterate years.values array in map function
        const measureFieldIndex = 0;
        let categories: PrimitiveValue[] = categoricalDataView.categories[categoryFieldIndex].values;
        let values: DataViewValueColumnGroup[] = categoricalDataView.values.grouped();

        let data = {};
        // iterate categories/countries-regions
        categories.map((category: PrimitiveValue, categoryIndex: number) => {
            data[category.toString()] = {};
            // iterate series/years
            values.map((years: DataViewValueColumnGroup) => {
                if (!data[category.toString()][years.name] && years.values[measureFieldIndex].values[categoryIndex]) {
                    data[category.toString()][years.name] = []
                }
                if (years.values[0].values[categoryIndex]) {
                    data[category.toString()][years.name].push(years.values[measureFieldIndex].values[categoryIndex]);
                }
            });
        });

        this.categories.innerText = JSON.stringify(data, null, 6);
        console.log(data);
    }
}

Elde edilen görsel aşağıdadır:

Kategorik veri görünümü eşlemesi içeren bir görselin ekran görüntüsü.

Eşleme tabloları

Tablo veri görünümü temelde sayısal veri noktalarının toplandığı veri noktalarının listesidir.

Örneğin, önceki bölümde aynı verileri kullanın, ancak aşağıdaki özelliklerle:

"dataRoles": [
    {
        "displayName": "Column",
        "name": "column",
        "kind": "Grouping"
    },
    {
        "displayName": "Value",
        "name": "value",
        "kind": "Measure"
    }
],
"dataViewMappings": [
    {
        "table": {
            "rows": {
                "select": [
                    {
                        "for": {
                            "in": "column"
                        }
                    },
                    {
                        "for": {
                            "in": "value"
                        }
                    }
                ]
            }
        }
    }
]

Tablo veri görünümünü şu örnekte olduğu gibi görselleştirin:

Ülke/Bölge Yıl Sales
ABD 2016 100
ABD 2015 50
Kanada 2015 200
Kanada 2015 50
Meksika 2013 300
Birleşik Krallık 2014 150
ABD 2015 75

Veri bağlama:

Tablo veri görünümü eşleme veri bağlamalarının ekran görüntüsü.

Power BI verilerinizi tablo veri görünümü olarak görüntüler. Verilerin sıralandığını varsaymayın.

{
    "table" : {
        "columns": [...],
        "rows": [
            [
                "Canada",
                2014,
                630
            ],
            [
                "Canada",
                2015,
                490
            ],
            [
                "Mexico",
                2013,
                645
            ],
            [
                "UK",
                2014,
                831
            ],
            [
                "USA",
                2015,
                650
            ],
            [
                "USA",
                2016,
                350
            ]
        ]
    }
}

Verileri toplamak için istediğiniz alanı seçin ve ardından Topla'yı seçin.

Alanın açılan listesinden seçilen Toplam'ın ekran görüntüsü.

Tablo veri görünümü eşlemesini işlemek için kod örneği.

"use strict";
import "./../style/visual.less";
import powerbi from "powerbi-visuals-api";
// ...
import DataViewMetadataColumn = powerbi.DataViewMetadataColumn;
import DataViewTable = powerbi.DataViewTable;
import DataViewTableRow = powerbi.DataViewTableRow;
import PrimitiveValue = powerbi.PrimitiveValue;
// standard imports
// ...

export class Visual implements IVisual {
    private target: HTMLElement;
    private host: IVisualHost;
    private table: HTMLParagraphElement;

    constructor(options: VisualConstructorOptions) {
        // constructor body
        this.target = options.element;
        this.host = options.host;
        this.table = document.createElement("table");
        this.target.appendChild(this.table);
        // ...
    }

    public update(options: VisualUpdateOptions) {
        const dataView: DataView = options.dataViews[0];
        const tableDataView: DataViewTable = dataView.table;

        if (!tableDataView) {
            return
        }
        while(this.table.firstChild) {
            this.table.removeChild(this.table.firstChild);
        }

        //draw header
        const tableHeader = document.createElement("th");
        tableDataView.columns.forEach((column: DataViewMetadataColumn) => {
            const tableHeaderColumn = document.createElement("td");
            tableHeaderColumn.innerText = column.displayName
            tableHeader.appendChild(tableHeaderColumn);
        });
        this.table.appendChild(tableHeader);

        //draw rows
        tableDataView.rows.forEach((row: DataViewTableRow) => {
            const tableRow = document.createElement("tr");
            row.forEach((columnValue: PrimitiveValue) => {
                const cell = document.createElement("td");
                cell.innerText = columnValue.toString();
                tableRow.appendChild(cell);
            })
            this.table.appendChild(tableRow);
        });
    }
}

Görsel stiller dosyası style/visual.less , tablonun düzenini içerir:

table {
    display: flex;
    flex-direction: column;
}

tr, th {
    display: flex;
    flex: 1;
}

td {
    flex: 1;
    border: 1px solid black;
}

Sonuçta elde edilen görsel şöyle görünür:

Tablo veri görünümü eşlemesi içeren bir görselin ekran görüntüsü.

Matris veri eşlemesi

Matris veri eşlemesi tablo veri eşlemesine benzer, ancak satırlar hiyerarşik olarak sunulur. Veri rolü değerlerinden herhangi biri sütun üst bilgisi değeri olarak kullanılabilir.

{
    "dataRoles": [
        {
            "name": "Category",
            "displayName": "Category",
            "displayNameKey": "Visual_Category",
            "kind": "Grouping"
        },
        {
            "name": "Column",
            "displayName": "Column",
            "displayNameKey": "Visual_Column",
            "kind": "Grouping"
        },
        {
            "name": "Measure",
            "displayName": "Measure",
            "displayNameKey": "Visual_Values",
            "kind": "Measure"
        }
    ],
    "dataViewMappings": [
        {
            "matrix": {
                "rows": {
                    "for": {
                        "in": "Category"
                    }
                },
                "columns": {
                    "for": {
                        "in": "Column"
                    }
                },
                "values": {
                    "select": [
                        {
                            "for": {
                                "in": "Measure"
                            }
                        }
                    ]
                }
            }
        }
    ]
}

Matris verilerinin hiyerarşik yapısı

Power BI hiyerarşik bir veri yapısı oluşturur. Ağaç hiyerarşisinin kökü, veri rolü tablosunun Alt öğeler sütunundaki Category alt öğelerle birlikte veri rolünün Ebeveynler sütunundaki verileri içerir.

Anlamsal model:

Üst Öğeler Alt Öğeler Torun Sütunlar Değerler
Üst Öğe1 Alt Öğe1 Alt öğe1 Sütun1 5
Üst Öğe1 Alt Öğe1 Alt öğe1 Col2 6
Üst Öğe1 Alt Öğe1 Alt öğe2 Sütun1 7
Üst Öğe1 Alt Öğe1 Alt öğe2 Col2 8
Üst Öğe1 Alt Öğe2 Alt öğe3 Sütun1 5
Üst Öğe1 Alt Öğe2 Alt öğe3 Col2 3
Üst Öğe1 Alt Öğe2 Alt öğe4 Sütun1 4
Üst Öğe1 Alt Öğe2 Alt öğe4 Col2 9
Üst Öğe1 Alt Öğe2 Büyük çocuk5 Sütun1 3
Üst Öğe1 Alt Öğe2 Büyük çocuk5 Col2 5
Üst Öğe2 Alt Öğe3 Alt öğe6 Sütun1 1
Üst Öğe2 Alt Öğe3 Alt öğe6 Col2 2
Üst Öğe2 Alt Öğe3 Alt öğe7 Sütun1 7
Üst Öğe2 Alt Öğe3 Alt öğe7 Col2 1
Üst Öğe2 Alt Öğe3 Büyük çocuk8 Sütun1 10
Üst Öğe2 Alt Öğe3 Büyük çocuk8 Col2 13

Power BI'ın temel matris görseli verileri tablo olarak işler.

Tablo olarak işlenen Matris görselinin ekran görüntüsü.

Görsel, veri yapısını aşağıdaki kodda açıklandığı gibi alır (burada yalnızca ilk iki tablo satırı gösterilir):

{
    "metadata": {...},
    "matrix": {
        "rows": {
            "levels": [...],
            "root": {
                "childIdentityFields": [...],
                "children": [
                    {
                        "level": 0,
                        "levelValues": [...],
                        "value": "Parent1",
                        "identity": {...},
                        "childIdentityFields": [...],
                        "children": [
                            {
                                "level": 1,
                                "levelValues": [...],
                                "value": "Child1",
                                "identity": {...},
                                "childIdentityFields": [...],
                                "children": [
                                    {
                                        "level": 2,
                                        "levelValues": [...],
                                        "value": "Grand child1",
                                        "identity": {...},
                                        "values": {
                                            "0": {
                                                "value": 5 // value for Col1
                                            },
                                            "1": {
                                                "value": 6 // value for Col2
                                            }
                                        }
                                    },
                                    ...
                                ]
                            },
                            ...
                        ]
                    },
                    ...
                ]
            }
        },
        "columns": {
            "levels": [...],
            "root": {
                "childIdentityFields": [...],
                "children": [
                    {
                        "level": 0,
                        "levelValues": [...],
                        "value": "Col1",
                        "identity": {...}
                    },
                    {
                        "level": 0,
                        "levelValues": [...],
                        "value": "Col2",
                        "identity": {...}
                    },
                    ...
                ]
            }
        },
        "valueSources": [...]
    }
}

Satır üst bilgilerini genişletme ve daraltma

API 4.1.0 veya üzeri için matris verileri satır üst bilgilerini genişletmeyi ve daraltma işlemini destekler. API 4.2'den tüm düzeyi program aracılığıyla genişletebilir/daraltabilirsiniz. Genişletme ve daraltma özelliği, kullanıcının bir sonraki düzey için tüm verileri getirmeden bir satırı genişletmesine veya daraltmasına izin vererek dataView'a veri getirmeyi iyileştirir. Yalnızca seçili satırın verilerini getirir. Satır üst bilgisinin genişletme durumu yer işaretleri ve hatta kaydedilmiş raporlar arasında tutarlı kalır. Her görsele özgü değildir.

Genişletme ve daralt komutları, yöntemine parametresini sağlayarak dataRoles bağlam menüsüne showContextMenu eklenebilir.

Genişletme ve daraltma seçeneklerini içeren bağlam menüsünü gösteren ekran görüntüsü.

Çok sayıda veri noktası genişletmek için genişlet/daralt API'siyle daha fazla veri getirme API'sini kullanın.

API özellikleri

Satır üst bilgilerinin genişletilmesi ve daraltılması için API sürüm 4.1.0'a aşağıdaki öğeler eklenmiştir:

  • içindeki isCollapsedDataViewTreeNodebayrağı:

    interface DataViewTreeNode {
        //...
        /**
        * TRUE if the node is Collapsed
        * FALSE if it is Expanded
        * Undefined if it cannot be Expanded (e.g. subtotal)
        */
        isCollapsed?: boolean;
    }
    
  • toggleExpandCollapse Arabirimindeki ISelectionManger yöntemi:

    interface ISelectionManager {
        //...
        showContextMenu(selectionId: ISelectionId, position: IPoint, dataRoles?: string): IPromise<{}>; // dataRoles is the name of the role of the selected data point
        toggleExpandCollapse(selectionId: ISelectionId, entireLevel?: boolean): IPromise<{}>;  // Expand/Collapse an entire level will be available from API 4.2.0 
        //...
    }
    
  • canBeExpanded DataViewHierarchyLevel içindeki bayrak:

    interface DataViewHierarchyLevel {
        //...
        /** If TRUE, this level can be expanded/collapsed */
        canBeExpanded?: boolean;
    }
    

Görsel gereksinimler

Matris veri görünümünü kullanarak görselde genişletme daraltma özelliğini etkinleştirmek için:

  1. capabilities.json dosyasına aşağıdaki kodu ekleyin:

       "expandCollapse": {
        "roles": ["Rows"], //”Rows” is the name of rows data role
        "addDataViewFlags": {
            "defaultValue": true //indicates if the DataViewTreeNode will get the isCollapsed flag by default 
        }
    },
    
  2. Rollerin detaylanabilir olduğunu onaylayın:

        "drilldown": {
        "roles": ["Rows"]
    },
    
  3. Her düğüm için, seçilen düğüm hiyerarşi düzeyinde yöntemini çağırarak withMatrixNode ve bir oluşturarak seçim oluşturucusunun bir selectionIdörneğini oluşturun. Örneğin:

        let nodeSelectionBuilder: ISelectionIdBuilder = visualHost.createSelectionIdBuilder();
        // parantNodes is a list of the parents of the selected node.
        // node is the current node which the selectionId is created for. 
        parentNodes.push(node);
        for (let i = 0; i < parentNodes.length; i++) {
            nodeSelectionBuilder = nodeSelectionBuilder.withMatrixNode(parentNodes[i], levels);
        }
      const nodeSelectionId: ISelectionId = nodeSelectionBuilder.createSelectionId(); 
    
  4. Seçim yöneticisinin bir örneğini oluşturun ve yöntemini, seçili düğüm için oluşturduğunuz parametresiyle selectionIdkullanınselectionManager.toggleExpandCollapse(). Örneğin:

        // handle click events to apply expand\collapse action for the selected node
        button.addEventListener("click", () => {
        this.selectionManager.toggleExpandCollapse(nodeSelectionId);
    });
    

Not

  • Seçili düğüm bir satır düğümü değilse PowerBI genişletme ve daraltma çağrılarını yoksayar ve genişletme ve daralt komutları bağlam menüsünden kaldırılır.
  • dataRoles parametresi yalnızca görsel veya özellikleri destekliyorsa drilldownexpandCollapse yöntemi için showContextMenu gereklidir. Görsel bu özellikleri destekliyorsa ancak dataRoles sağlanmadıysa, geliştirici görseli kullanılırken veya hata ayıklama modu etkin bir genel görselde hata ayıklanırken konsola bir hata verilir.

Dikkat edilecekler ve sınırlamalar

  • Bir düğümü genişletdikten sonra DataView'a yeni veri sınırları uygulanır. Yeni DataView, önceki DataView'da sunulan düğümlerden bazılarını içermeyebilir.
  • Genişletme veya daraltma kullanılırken, görsel bunları istemese bile toplamlar eklenir.
  • Sütunları genişletme ve daraltma desteklenmez.

Tüm meta veri sütunlarını koru

API 5.1.0 veya üzeri için tüm meta veri sütunlarının tutulması desteklenir. Bu özellik, görselin etkin projeksiyonları ne olursa olsun tüm sütunların meta verilerini almasını sağlar.

capabilities.json dosyanıza aşağıdaki satırları ekleyin:

"keepAllMetadataColumns": {
    "type": "boolean",
    "description": "Indicates that visual is going to receive all metadata columns, no matter what the active projections are"
}

Bu özelliğin olarak true ayarlanması, daraltılmış sütunlardan da dahil olmak üzere tüm meta verilerin alınmasına neden olur. Bu ayarın false olarak ayarlanması veya tanımsız bırakılması, meta verilerin yalnızca etkin projeksiyonlara sahip sütunlarda alınmasına neden olur (örneğin, genişletilmiş).

Veri azaltma algoritması

Veri azaltma algoritması, veri görünümünde hangi verileri ve ne kadar veri alınıp alınanı denetler.

Sayı, veri görünümünün kabul edebildiği en fazla değer sayısına ayarlanır. Sayı değerlerinden daha fazlası varsa, veri azaltma algoritması hangi değerlerin alınması gerektiğini belirler.

Veri azaltma algoritması türleri

Dört tür veri azaltma algoritması ayarı vardır:

  • top: İlk sayı değerleri anlamsal modelden alınır.
  • bottom: Son sayı değerleri anlamsal modelden alınır.
  • sample: İlk ve son öğeler dahil edilir ve aralarında eşit aralıklara sahip öğe sayısını sayar . Örneğin, bir anlam modeliniz varsa [0, 1, 2, ... 100] ve 9 sayısıyla [0, 10, 20 ... 100].
  • window: Sayı öğelerini içeren bir kerede bir veri noktası penceresi yükler. top Şu anda ve window eşdeğerdir. Gelecekte bir pencereleme ayarı tam olarak desteklenecektir.

Varsayılan olarak, tüm Power BI görsellerinde en yüksek veri azaltma algoritması uygulanır ve sayı 1000 veri noktasına ayarlanır. Bu varsayılan, capabilities.json dosyasında aşağıdaki özellikleri ayarlamakla eşdeğerdir:

"dataReductionAlgorithm": {
    "top": {
        "count": 1000
    }
}

Sayı değerini 30000'e kadar herhangi bir tamsayı değeriyle değiştirebilirsiniz. R tabanlı Power BI görselleri en fazla 150000 satırı destekleyebilir.

Veri azaltma algoritması kullanımı

Veri azaltma algoritması kategorik, tablo veya matris veri görünümü eşlemesinde kullanılabilir.

Kategorik veri eşlemesinde, kategorik veri eşlemesi için algoritmayı öğesinin values "kategoriler" ve/veya "grup" bölümüne ekleyebilirsiniz.

"dataViewMappings": {
    "categorical": {
        "categories": {
            "for": { "in": "category" },
            "dataReductionAlgorithm": {
                "window": {
                    "count": 300
                }
            }  
        },
        "values": {
            "group": {
                "by": "series",
                "select": [{
                        "for": {
                            "in": "measure"
                        }
                    }
                ],
                "dataReductionAlgorithm": {
                    "top": {
                        "count": 100
                    }
                }  
            }
        }
    }
}

Tablo veri görünümü eşlemesinde veri azaltma algoritmasını rows Veri Görünümü eşleme tablosunun bölümüne uygulayın.

"dataViewMappings": [
    {
        "table": {
            "rows": {
                "for": {
                    "in": "values"
                },
                "dataReductionAlgorithm": {
                    "top": {
                        "count": 2000
                    }
                }
            }
        }
    }
]

Veri azaltma algoritmasını Veri Görünümü eşleme matrisinin rows ve columns bölümlerine uygulayabilirsiniz.