Power BI -visualisointien vuorovaikutteisuuden apuohjelmat
Vuorovaikutteisuuden apuohjelmat (InteractivityUtils
) on joukko funktioita ja luokkia, joiden avulla voidaan yksinkertaistaa ristiinvalintaa ja ristiinsuodatusta.
Muistiinpano
Vuorovaikutteisuuden apuohjelmien uusimmat päivitykset tukevat vain työkalujen viimeisintä versiota (3.x.x ja uudemmat).
Asennus
Asenna paketti suorittamalla seuraava komento hakemistossa, joka sisältää nykyisen Power BI -visualisointiprojektin.
npm install powerbi-visuals-utils-interactivityutils --save
Jos käytät työkalun versiota 3.0 tai uudempaa versiota, asenna
powerbi-models
riippuvuuksien ratkaisemiseksi.npm install powerbi-models --save
Jos haluat käyttää vuorovaikutteisuuden apuohjelmia, tuo tarvittava komponentti Power BI -visualisoinnin lähdekoodiin.
import { interactivitySelectionService } from "powerbi-visuals-utils-interactivityutils";
CSS-tiedostojen sisällyttäminen
Jos haluat käyttää pakettia Power BI -visualisoinnissa, tuo seuraava CSS-tiedosto .less
-tiedostoon.
node_modules/powerbi-visuals-utils-interactivityutils/lib/index.css
Tuo CSS-tiedosto tiedostona, .less
koska Power BI -visualisointityökalu rivittää ulkoiset CSS-säännöt.
@import (less) "node_modules/powerbi-visuals-utils-interactivityutils/lib/index.css";
SelectableDataPoint-ominaisuudet
Yleensä arvopisteet sisältävät valintoja ja arvoja. Liittymä laajentaa -liittymän SelectableDataPoint
.
SelectableDataPoint
sisältää jo ominaisuuksia seuraavasti:
/** Flag for identifying that a data point was selected */
selected: boolean;
/** Identity for identifying the selectable data point for selection purposes */
identity: powerbi.extensibility.ISelectionId;
/*
* A specific identity for when data points exist at a finer granularity than
* selection is performed. For example, if your data points select based
* only on series, even if they exist as category/series intersections.
*/
specificIdentity?: powerbi.extensibility.ISelectionId;
Arvopisteiden käyttöliittymän määrittäminen
Luo vuorovaikutteisuuden apuohjelmien esiintymä ja tallenna objekti visualisoinnin ominaisuutena.
export class Visual implements IVisual { // ... private interactivity: interactivityBaseService.IInteractivityService<VisualDataPoint>; // ... constructor(options: VisualConstructorOptions) { // ... this.interactivity = interactivitySelectionService.createInteractivitySelectionService(this.host); // ... } }
import { interactivitySelectionService } from "powerbi-visuals-utils-interactivityutils"; export interface VisualDataPoint extends interactivitySelectionService.SelectableDataPoint { value: powerbi.PrimitiveValue; }
Laajenna perustoimintaluokkaa.
Muistiinpano
BaseBehavior
esiteltiin vuorovaikutteisuuden apuohjelmien versiossa 5.6.x. Jos käytät vanhempaa versiota, luo toimintaluokka seuraavasta mallista.Määritä toimintaluokan asetusten liittymä.
import { SelectableDataPoint } from "./interactivitySelectionService"; import { IBehaviorOptions, BaseDataPoint } from "./interactivityBaseService"; export interface BaseBehaviorOptions<SelectableDataPointType extends BaseDataPoint> extends IBehaviorOptions<SelectableDataPointType> { /** d3 selection object of the main elements on the chart */ elementsSelection: Selection<any, SelectableDataPoint, any, any>; /** d3 selection object of some elements on backgroup, to hadle click of reset selection */ clearCatcherSelection: d3.Selection<any, any, any, any>; }
Määritä luokka lle
visual behavior
. Voit myös laajentaaBaseBehavior
luokan.Määritä luokka ön
visual behavior
Luokka vastaa
click
hiiren tapahtumista jacontextmenu
hiiren tapahtumista.Kun käyttäjä napsauttaa tietoelementtejä, visualisointi kutsuu valintakäsittelijää valitsemaan arvopisteet. Jos käyttäjä napsauttaa visualisoinnin taustaosaa, se kutsuu selkeää valintakäsittelijää.
Luokalla on vastaavat menetelmät:
bindClick
bindClearCatcher
bindContextMenu
.
export class Behavior<SelectableDataPointType extends BaseDataPoint> implements IInteractiveBehavior { /** d3 selection object of main elements in the chart */ protected options: BaseBehaviorOptions<SelectableDataPointType>; protected selectionHandler: ISelectionHandler; protected bindClick() { // ... } protected bindClearCatcher() { // ... } protected bindContextMenu() { // ... } public bindEvents( options: BaseBehaviorOptions<SelectableDataPointType>, selectionHandler: ISelectionHandler): void { // ... } public renderSelection(hasSelection: boolean): void { // ... } }
BaseBehavior
Luokan laajentaminenimport powerbi from "powerbi-visuals-api"; import { interactivitySelectionService, baseBehavior } from "powerbi-visuals-utils-interactivityutils"; export interface VisualDataPoint extends interactivitySelectionService.SelectableDataPoint { value: powerbi.PrimitiveValue; } export class Behavior extends baseBehavior.BaseBehavior<VisualDataPoint> { // ... }
Jos haluat käsitellä napsautuselementtejä, kutsu d3-valintaobjektin
on
menetelmää. Tämä koskee myös seuraavia:elementsSelection
jaclearCatcherSelection
.protected bindClick() { const { elementsSelection } = this.options; elementsSelection.on("click", (datum) => { const mouseEvent: MouseEvent = getEvent() as MouseEvent || window.event as MouseEvent; mouseEvent && this.selectionHandler.handleSelection( datum, mouseEvent.ctrlKey); }); }
Lisää vastaava käsittelijä tapahtumalle
contextmenu
, jos haluat kutsua valintojen hallinnanshowContextMenu
menetelmää.protected bindContextMenu() { const { elementsSelection } = this.options; elementsSelection.on("contextmenu", (datum) => { const event: MouseEvent = (getEvent() as MouseEvent) || window.event as MouseEvent; if (event) { this.selectionHandler.handleContextMenu( datum, { x: event.clientX, y: event.clientY }); event.preventDefault(); } }); }
Vuorovaikutteisuuden apuohjelmat kutsuvat
bindEvents
-menetelmää määrittääkseen funktiot käsittelijöille. Lisää menetelmään seuraavat kutsutbindEvents
:bindClick
bindClearCatcher
bindContextMenu
public bindEvents( options: BaseBehaviorOptions<SelectableDataPointType>, selectionHandler: ISelectionHandler): void { this.options = options; this.selectionHandler = selectionHandler; this.bindClick(); this.bindClearCatcher(); this.bindContextMenu(); }
-
renderSelection
menetelmä on vastuussa kaavion elementtien visualisointien tilan päivittämisestä. Malli toteutuksestarenderSelection
:public renderSelection(hasSelection: boolean): void { this.options.elementsSelection.style("opacity", (category: any) => { if (category.selected) { return 0.5; } else { return 1; } }); }
Viimeisessä vaiheessa luodaan -esiintymä
visual behavior
ja kutsutaanbind
vuorovaikutteisuuden apuohjelmien esiintymän -menetelmää.this.interactivity.bind(<BaseBehaviorOptions<VisualDataPoint>>{ behavior: this.behavior, dataPoints: this.categories, clearCatcherSelection: select(this.target), elementsSelection: selectionMerge });
selectionMerge
on d3-valintaobjekti, joka edustaa visualisoinnin kaikkia valittavissa olevia elementtejä.select(this.target)
on d3-valintaobjekti, joka edustaa visualisoinnin DOM-pääelementtejä.this.categories
ovat datapisteitä, joissa on elementtejä ja joissa liittymä onVisualDataPoint
taicategories: VisualDataPoint[];
.this.behavior
on uusi esiintymä kohteestavisual behavior
luotu visualisoinnin konstruktorissa seuraavasti:export class Visual implements IVisual { // ... constructor(options: VisualConstructorOptions) { // ... this.behavior = new Behavior(); } // ... }