Formatowanie właściwości wizualizacji
Podczas edytowania raportu w usłudze Power BI możesz dostosować każdą wizualizację w raporcie przy użyciu opcji Format
Aby sformatować wizualizację przy użyciu interfejsów API właściwości wizualizacji, musisz uzyskać wizualizację, którą chcesz sformatować. Aby uzyskać listę wszystkich wizualizacji w raporcie, użyj metody getVisuals klasy Page
.
Wybieranie obiektu i właściwości formatu
Aby wybrać właściwość, którą chcesz pobrać, ustawić lub zresetować, należy zdefiniować wystąpienie IVisualPropertySelector
zawierające objectName
i propertyName
.
export interface IVisualPropertySelector {
objectName: string;
propertyName: string;
}
- objectName: nazwa obiektu (na przykład: "title").
- propertyName: nazwa właściwości w obiekcie (na przykład: "titleText").
Dostępne właściwości dla wbudowanych wizualizacji
Wizualizacje gotowe do użycia to wizualizacje usługi Power BI, które są domyślnie wyświetlane w okienku Wizualizacja.
Nazwa obiektu | Nazwa właściwości | Typ |
---|---|---|
etykietka narzędzia | ||
widoczny | Boolowski | |
valueColor | Kolor szesnastkowy, IThemeColorProperty | |
labelColor | Kolor szesnastkowy, IThemeColorProperty | |
textSize | Numer | |
fontFamily | Struna | |
backgroundColor | Kolor szesnastkowy, IThemeColorProperty | |
przezroczystość | Numer | |
tło | ||
widoczny | Boolowski | |
Kolor | Kolor szesnastkowy, IThemeColorProperty | |
przezroczystość | Numer | |
visualHeader | ||
widoczny | Boolowski | |
backgroundColor | Kolor szesnastkowy, IThemeColorProperty | |
granica | Kolor szesnastkowy, IThemeColorProperty | |
przezroczystość | Numer | |
iconColor | Kolor szesnastkowy, IThemeColorProperty | |
granica | ||
widoczny | Boolowski | |
Kolor | Kolor szesnastkowy, IThemeColorProperty | |
promień | Numer | |
lockAspect | ||
Włączone | Boolowski | |
tytuł | ||
widoczny | Boolowski | |
wyrównanie | Ciąg (TextAlignment) | |
fontColor | Kolor szesnastkowy, IThemeColorProperty | |
textSize | Numer | |
fontFamily | Struna | |
backgroundColor | Kolor szesnastkowy, IThemeColorProperty | |
titleText | Struna | |
legenda | ||
widoczny | Boolowski | |
pozycja | Ciąg (LegendPosition) | |
dataLabels | ||
widoczny | Boolowski | |
categoryAxis | ||
widoczny | Boolowski | |
valueAxis | ||
widoczny | Boolowski |
Dostępne właściwości wizualizacji niestandardowych
Twórcy wizualizacji niestandardowych definiują zatem ich właściwości, aby znaleźć objectName
i propertyName
, należy sprawdzić kod źródłowy wizualizacji niestandardowej.
Kod wizualizacji niestandardowych jest typu open source, a ich repozytoria można znaleźć w witrynie GitHub.
Na przykład: patrząc na wizualizację niestandardową wykres Mekko Chart, możesz znaleźć repozytorium open source tutaj.
W pliku src/visual.ts
można zobaczyć zdefiniowane właściwości .
Poniżej przedstawiono wykresu Mekko Chart zdefiniowanych właściwości wizualizacji niestandardowej.
Nuta
Ta lista została skopiowana z wykresu Mekko kodu źródłowego wizualizacji niestandardowej w styczniu 2021 r.
public static Properties: MekkoChartProperties = <MekkoChartProperties>{
dataPoint: {
defaultColor: { objectName: "dataPoint", propertyName: "defaultColor" },
fill: { objectName: "dataPoint", propertyName: "fill" },
showAllDataPoints: { objectName: "dataPoint", propertyName: "showAllDataPoints" },
categoryGradient: { objectName: "dataPoint", propertyName: "categoryGradient" },
colorGradientEndColor: { objectName: "dataPoint", propertyName: "colorGradientEndColor" },
colorDistribution: { objectName: "dataPoint", propertyName: "colorDistribution" }
},
columnBorder: {
show: { objectName: "columnBorder", propertyName: "show", },
color: { objectName: "columnBorder", propertyName: "color" },
width: { objectName: "columnBorder", propertyName: "width" }
},
sortSeries: {
enabled: { objectName: "sortSeries", propertyName: "enabled", },
direction: { objectName: "sortSeries", propertyName: "direction" },
displayPercents: { objectName: "sortSeries", propertyName: "displayPercents" }
},
sortLegend: {
enabled: { objectName: "sortLegend", propertyName: "enabled", },
direction: { objectName: "sortLegend", propertyName: "direction" },
groupByCategory: { objectName: "sortLegend", propertyName: "groupByCategory" },
groupByCategoryDirection: { objectName: "sortLegend", propertyName: "groupByCategoryDirection" }
},
xAxisLabels: {
enableRotataion: { objectName: "xAxisLabels", propertyName: "enableRotataion", },
},
categoryColors: {
color: { objectName: "categoryColors", propertyName: "color" },
}
};
Nuta
Obiekt dataPoint
nie jest obsługiwany.
Definiowanie wartości właściwości
Wartość właściwości jest reprezentowana przez obiekt IVisualPropertyValue
.
export interface IVisualPropertyValue {
schema?: string;
value: any;
}
schematu — definiuje typ wartości. Dostępne są dwa schematy:
Schemat właściwości:
"http://powerbi.com/product/schema#property"
używany do definiowania właściwości.Schemat domyślny:
"http://powerbi.com/product/schema#default"
służy do definiowania wartości domyślnej.
wartość — wartość, którą chcesz przypisać do właściwości.
Typy wartości właściwości
W tej sekcji wymieniono typy wartości właściwości, które można skonfigurować.
Wartość właściwości Color
Wartość właściwości koloru może być kolorem szesnastkowym (ciągiem), na przykład #0000FF
koloru niebieskiego lub IThemeColorProperty
, aby ustawić motyw raportu kolor.
interface IThemeColorProperty {
id: number;
shade: number;
}
- identyfikator — identyfikator koloru motywu
- cieniowanie — definiuje procent cienia koloru, wartości mogą należeć do -1 do 1.
Aby na przykład zdefiniować kolor motywu 2, 50% ciemniejszy, jak pokazano poniżej, obiekt IThemeColorProperty
należy zdefiniować w następujący sposób:
let themeColorProperty = {
id: 2,
shade: -0.5
};
Wartość właściwości wyrównania tekstu
Definiuje wyrównanie tekstu
const TextAlignment = {
Left: 'left',
Center: 'center',
Right: 'right',
};
Wartość właściwości pozycji legendy
Definiuje położenie legendy w wizualizacji
const LegendPosition = {
Top: 'Top',
Bottom: 'Bottom',
Right: 'Right',
Left: 'Left',
TopCenter: 'TopCenter',
BottomCenter: 'BottomCenter',
RightCenter: 'RightCenter',
LeftCenter: 'LeftCenter',
};
Wartość właściwości domyślnej
Wartość używana do definiowania wartości domyślnej właściwości. Możesz na przykład ustawić tytuł na automatycznie wygenerowany tytuł wizualizacji.
interface IDefaultProperty {
}
Jeśli właściwość nie została zmieniona (przy użyciu interfejsu użytkownika lub interfejsu API), jego wartość jest zdefiniowana jako IDefaultProperty
, zarówno w getProperty
, jak i metodach setProperty
.
Wartość właściwości domyślnej powinna być zdefiniowana w następujący sposób:
const defaultValue = {
schema: "http://powerbi.com/product/schema#default",
value: {}
};
Interfejsy API właściwości
W tej sekcji wymieniono interfejsy API używane do formatowania właściwości wizualizacji.
Pobieranie właściwości
Pobierz wartość właściwości wizualizacji zgodnie z selektorem właściwości.
getProperty(selector: IVisualPropertySelector): Promise<IVisualPropertyValue>
Na przykład:
const selector = { ... };
let propertyValue = await visual.getProperty(selector);
Ustawianie właściwości
Ustaw wartość właściwości na wizualizację zgodnie z selektorem właściwości.
setProperty(selector: IVisualPropertySelector, value: IVisualPropertyValue): Promise<void>
Na przykład:
const selector = { ... };
const propertyValue = { ... };
await visual.setProperty(selector, propertyValue);
Resetowanie właściwości
Zresetuj wartość właściwości wizualizacji zgodnie z selektorem właściwości. Spowoduje to zwrócenie właściwości do jej wartości domyślnej, na przykład można ustawić tytuł na automatycznie wygenerowany tytuł wizualizacji.
resetProperty(selector: IVisualPropertySelector): Promise<void>
Na przykład:
const selector = { ... };
await visual.resetProperty(selector);
Pełny przykład
Poniżej przedstawiono przykład wyrównania do środka tytułu wizualizacji o nazwie VisualContainer1
(unikatowy identifer).
let pages = await report.getPages()
// Retrieve the active page.
let activePage = pages.find(function (page) {
return page.isActive
});
let visuals = await activePage.getVisuals();
// Retrieve the wanted visual. (replace "VisualContainer1" with the requested visual name)
let visual = visuals.find(function (visual) {
return visual.name === "VisualContainer1";
});
// Build a selector for title alignment
const selector = {
objectName: "title",
propertyName: "alignment"
};
// Build the property value
const propertyValue = {
schema: "http://powerbi.com/product/schema#property",
value: models.TextAlignment.Center
};
await visual.setProperty(selector, propertyValue);
Powiązana zawartość
- omówienie tworzenia raportów
- Dodawanie, usuwanie lub zmienianie nazwy strony raportu