Ereignisse
Power BI DataViz Weltmeisterschaften
14. Feb., 16 Uhr - 31. März, 16 Uhr
Mit 4 Chancen, ein Konferenzpaket zu gewinnen und es zum LIVE Grand Finale in Las Vegas zu machen
Weitere InformationenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge aus, um die neuesten Funktionen, Sicherheitsupdates und technischen Support zu nutzen.
Mit der API für visuelle Filter können Sie Daten in Power BI-Visuals filtern. Der Hauptunterschied zwischen der Filter-API und anderen Möglichkeiten zum Auswählen von Daten ist die Art, wie sie sich auf andere Visuals im Bericht auswirken. Wenn ein Filter auf ein Visual angewendet wird, werden trotz Hervorhebungsunterstützung durch andere Visuals nur die gefilterten Daten in allen Visuals angezeigt.
Die Datei capabilities.json sollte ein filter
-Objekt im general
-Abschnitt enthalten, um Filter für das Visual zu aktivieren.
"objects": {
"general": {
"displayName": "General",
"displayNameKey": "formattingGeneral",
"properties": {
"filter": {
"type": {
"filter": true
}
}
}
}
}
Hinweis
Die Schnittstellen der API für Visuals stehen im Paket powerbi-models zur Verfügung. Dieses Paket enthält auch Klassen zum Erstellen von Filterinstanzen.
npm install powerbi-models --save
Wenn Sie eine ältere Version der Tools verwenden (vor 3.x.x), schließen Sie powerbi-models
in das Visualpaket ein. Weitere Informationen finden Sie in der Kurzanleitung Hinzufügen der API für erweiterte Filter zum benutzerdefinierten Visual. Um herauszufinden, welche Version Sie verwenden, überprüfen Sie die apiVersion
in der Datei pbiviz.json.
Alle Filter verwenden wie im folgenden Code gezeigt die IFilter
-Schnittstelle:
export interface IFilter {
$schema: string;
target: IFilterTarget;
}
Dabei ist target
eine Tabellenspalte in der Datenquelle.
Es gibt drei Filter-APIs:
Die einfache Filterschnittstelle wird im folgenden Code gezeigt:
export interface IBasicFilter extends IFilter {
operator: BasicFilterOperators;
values: (string | number | boolean)[];
}
Hier gilt:
operator
ist eine Enumeration mit den Werten In, NotIn und All.values
sind Werte für die Bedingung.Im folgenden Beispiel werden alle Zeilen zurückgegeben, bei denen col1
gleich dem Wert 1, 2 oder 3 entspricht.
let basicFilter = {
target: {
column: "Col1"
},
operator: "In",
values: [1,2,3]
}
Die SQL-Entsprechung des obigen Beispiels lautet wie folgt:
SELECT * FROM table WHERE col1 IN ( 1 , 2 , 3 )
Sie können die BasicFilter-Klasse in powerbi-models
verwenden, um einen Filter zu erstellen.
Wenn Sie eine ältere Version des Tools verwenden, sollten Sie wie im folgenden Code gezeigt eine models-Instanz im window-Objekt mithilfe von window['powerbi-models']
abrufen:
let categories: DataViewCategoricalColumn = this.dataView.categorical.categories[0];
let target: IFilterColumnTarget = {
table: categories.source.queryName.substr(0, categories.source.queryName.indexOf('.')),
column: categories.source.displayName
};
let values = [ 1, 2, 3 ];
let filter: IBasicFilter = new window['powerbi-models'].BasicFilter(target, "In", values);
Das Visual ruft den Filter mithilfe der applyJsonFilter()
-Methode für die Hostschnittstelle IVisualHost
auf, die in der Konstruktormethode für das Visual bereitgestellt wird.
IVisualHost.applyJsonFilter(filter, "general", "filter", FilterAction.merge);
Die erweiterte Filter-API unterstützt die komplexe Datenpunktauswahl über mehrere Visuals hinweg und die Filterung von Abfragen, die auf mehreren Kriterien basieren (z. B. LessThan, Contains, Is, IsBlank usw.).
Der Filter wurde in der Visuals-API 1.7.0 eingeführt.
Im Gegensatz zur Basic-API gilt in der erweiterten Filter-API Folgendes:
target
erfordert sowohl einen table
- als auch einen column
-Namen (die Basic-API hatte soeben column
).interface IAdvancedFilterCondition {
value: (string | number | boolean);
operator: AdvancedFilterConditionOperators;
}
Der operator
-Parameter kann die folgenden Bedingungsoperatoren aufweisen: None, LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual, Contains, DoesNotContain, StartsWith, DoesNotStartWith, Is, IsNot, IsBlank und „IsNotBlank“.
let categories: DataViewCategoricalColumn = this.dataView.categorical.categories[0];
let target: IFilterColumnTarget = {
table: categories.source.queryName.substr(0, categories.source.queryName.indexOf('.')), // table
column: categories.source.displayName // col1
};
let conditions: IAdvancedFilterCondition[] = [];
conditions.push({
operator: "LessThan",
value: 0
});
let filter: IAdvancedFilter = new window['powerbi-models'].AdvancedFilter(target, "And", conditions);
// invoke the filter
visualHost.applyJsonFilter(filter, "general", "filter", FilterAction.merge);
Im Folgenden die Entsprechung in SQL:
SELECT * FROM table WHERE col1 < 0;
Den vollständigen Beispielcode für die Verwendung der erweiterten Filter-API finden Sie im Repository des Beispieldatenschnittvisuals.
Die Tupelfilter-API wurde in der Visuals-API 2.3.0 eingeführt. Sie ähnelt der API für einfache Filter, ermöglicht Ihnen aber das Definieren von Bedingungen für mehrere Spalten und Tabellen.
Die Filterschnittstelle wird im folgenden Code gezeigt:
interface ITupleFilter extends IFilter {
$schema: string;
filterType: FilterType;
operator: TupleFilterOperators;
target: ITupleFilterTarget;
values: TupleValueType[];
}
Hierbei gilt:
target
ist ein Array von Spalten mit Tabellennamen:
declare type ITupleFilterTarget = IFilterTarget[];
Der Filter kann auf Spalten aus verschiedenen Tabellen angewendet werden.
$schema
ist https://powerbi.com/product/schema#tuple.
filterType
ist FilterType.Tuple.
operator
erlaubt die Verwendung nur im Operator In.
values
ist ein Array von Werttupeln. Dabei stellt Tupel eine zulässige Kombination der Zielspaltenwerte dar.
declare type TupleValueType = ITupleElementValue[];
interface ITupleElementValue {
value: PrimitiveValueType
}
Vollständiges Beispiel:
let target: ITupleFilterTarget = [
{
table: "DataTable",
column: "Team"
},
{
table: "DataTable",
column: "Value"
}
];
let values = [
[
// the first column combination value (or the column tuple/vector value) that the filter will pass through
{
value: "Team1" // the value for the `Team` column of the `DataTable` table
},
{
value: 5 // the value for the `Value` column of the `DataTable` table
}
],
[
// the second column combination value (or the column tuple/vector value) that the filter will pass through
{
value: "Team2" // the value for `Team` column of `DataTable` table
},
{
value: 6 // the value for `Value` column of `DataTable` table
}
]
];
let filter: ITupleFilter = {
$schema: "https://powerbi.com/product/schema#tuple",
filterType: FilterType.Tuple,
operator: "In",
target: target,
values: values
}
// invoke the filter
visualHost.applyJsonFilter(filter, "general", "filter", FilterAction.merge);
Wichtig
Die Reihenfolge der Spaltennamen und Bedingungswerte ist wichtig.
Die SQL-Entsprechung des obigen Codes lautet wie folgt:
SELECT * FROM DataTable WHERE ( Team = "Team1" AND Value = 5 ) OR ( Team = "Team2" AND Value = 6 );
Ab API-Version 2.2.0 können Sie die JSON-Filter von VisualUpdateOptions wie im folgenden Code gezeigt wiederherstellen:
export interface VisualUpdateOptions extends extensibility.VisualUpdateOptions {
viewport: IViewport;
dataViews: DataView[];
type: VisualUpdateType;
viewMode?: ViewMode;
editMode?: EditMode;
operationKind?: VisualDataChangeOperationKind;
jsonFilters?: IFilter[];
}
Wenn Sie zwischen Lesezeichen wechseln, ruft Power BI die update
-Methode des Visuals auf, und das Visual ruft ein entsprechendes filter
-Objekt ab. Weitere Informationen finden Sie unter Hinzufügen von Lesezeichenunterstützung für Power BI-Visuals.
In der folgenden Abbildung wird ein Beispiel für JSON-Filtercode veranschaulicht:
Übergeben Sie einen null
-Wert an die Filter-API, um den Filter zurückzusetzen oder zu löschen.
// invoke the filter
visualHost.applyJsonFilter(null, "general", "filter", FilterAction.merge);
Hinzufügen von Interaktivität zu Visuals mithilfe von Auswahlmöglichkeiten für Power BI-Visuals
Ereignisse
Power BI DataViz Weltmeisterschaften
14. Feb., 16 Uhr - 31. März, 16 Uhr
Mit 4 Chancen, ein Konferenzpaket zu gewinnen und es zum LIVE Grand Finale in Las Vegas zu machen
Weitere InformationenSchulung
Modul
Konfigurieren von Filtern für Power BI-Berichte - Training
Das Filtern von Berichten ist ein komplexes Thema, da es viele Techniken zum Filtern eines Microsoft Power BI-Berichts gibt. Mit der Komplexität geht jedoch auch die Möglichkeit einher, Berichte zu erstellen, die den jeweiligen Anforderungen und Erwartungen entsprechen.
Zertifizierung
Microsoft Certified: Power BI Data Analyst Associate - Certifications
Erfahren Sie mehr über die Methoden und Best Practices, die den geschäftlichen und technischen Anforderungen für die Modellierung, Visualisierung und Analyse von Daten mit Microsoft Power BI entsprechen.