Power BI raporlarındaki görsellere yer işareti desteği ekleme
Power BI rapor yer işaretleriyle, rapor sayfasının yapılandırılmış bir görünümünü yakalayabilir ve kaydedebilirsiniz. Ardından, istediğiniz zaman hızlı ve kolay bir şekilde kaydedilmiş görünüme geri dönebilirsiniz. Yer işareti, seçimler ve filtreler de dahil olmak üzere tüm yapılandırmayı kaydeder.
Yer işaretleri hakkında daha fazla bilgi için bkz . Power BI'da içgörüleri paylaşmak ve hikayeler oluşturmak için yer işaretlerini kullanma.
Yer işaretlerini destekleyen görseller
Yer işaretlerini destekleyen bir Power BI görselinin gerektiğinde doğru bilgileri kaydedebilmesi ve sağlayabilmesi gerekir. Görseliniz diğer görsellerle etkileşim kurarsa, veri noktalarını seçerse veya diğer görselleri filtrelerse, yer işareti uygulanmış durumu görselin filterState özelliklerine kaydetmeniz gerekir.
Not
Yer işaretlerini destekleyen bir görsel oluşturmak için şunlar gerekir:
- kullanan
SelectionManager
filtre olmayan görseller için Visual API sürüm 1.11.0 veya üzeri. - Filtre görselleri için Visual API sürüm 2.6.0 veya üzeri.
- Hangi sürümü kullandığınızı öğrenmek için pbiviz.json dosyasına bakın.
apiVersion
Power BI görselleri rapor yer işaretlerinde Power BI ile nasıl etkileşim kurar?
Her yer işaretinin farklı veri noktalarının seçili olduğu bir rapor sayfasında birkaç yer işareti oluşturmak istediğinizi varsayalım.
İlk olarak görselinizde bir veya daha fazla veri noktası seçin. Görsel, seçimlerinizi konağa geçirir. Ardından Yer İşareti bölmesinde Ekle'yi seçin. Power BI, yeni yer işareti için geçerli seçimleri kaydeder.
Yeni yer işaretleri oluşturmak için bunu birkaç kez yapın. Yer işaretlerini oluşturduktan sonra aralarında geçiş yapabilirsiniz.
Bir yer işareti seçtiğinizde Power BI, kaydedilen filtreyi veya seçim durumunu geri yükler ve görsellere geçirir. Rapordaki görseller, yer işaretinde depolanan duruma göre vurgulanır veya filtrelenir. Doğru durumu geri yüklemek için görselinizin konağa doğru seçim durumunu geçirmesi gerekir (örneğin, işlenen veri noktalarının renkleri).
Yeni seçim durumu (veya filtresi) yöntemindeki options.jsonFilters
update
özelliği aracılığıyla iletilir. jsonFilters
veya Tuple Filter
olabilirAdvanced Filter
.
- Görselinizde seçili veri noktaları varsa içindeki geri çağırma işlevini
registerOnSelectCallback
ISelectionManager
kullanarak seçimi seçilen yer işaretine sıfırlayın. - Görseliniz verileri seçmek için filtreler kullanıyorsa, filtre değerlerini seçili yer işaretinin karşılık gelen değerlerine sıfırlayın.
Seçili görseller
Not
InteractivityService kullanım dışı bırakıldı.
Görseliniz Seçim'i kullanarak diğer görsellerle etkileşime geçtiyse, yer işareti desteğini iki yoldan biriyle ekleyebilirsiniz:
- Seçimleri yönetmek için InteractivityService aracılığıyla kullanın
applySelectionFromFilter
. Bu kullanım dışı yöntemidir. - SelectionManager aracılığıyla.
Yer işareti seçimlerini geri yüklemek için InteractivityService kullanma - kullanım dışı
Görseliniz InteractivityService kullanıyorsa, görselinizdeki yer işaretlerini desteklemek için başka hiçbir eyleme ihtiyacınız yoktur.
Bir yer işareti seçtiğinizde, yardımcı program görselin seçim durumunu otomatik olarak işler.
Yer işareti seçimlerini geri yüklemek için SelectionManager kullanma
Aşağıdaki yöntemi kullanarak ISelectionManager.registerOnSelectCallback
yer işareti seçimlerini kaydedebilir ve geri çekebilirsiniz:
Bir yer işareti seçtiğinizde Power BI, ilgili seçimlerle görselin yöntemini çağırır callback
.
this.selectionManager.registerOnSelectCallback(
(ids: ISelectionId[]) => {
//called when a selection was set by Power BI
});
);
Görselinizin visualTransform yönteminde bir veri noktası oluşturduğunuzu varsayalım.
şuna datapoints
benzer:
visualDataPoints.push({
category: categorical.categories[0].values[i],
color: getCategoricalObjectValue<Fill>(categorical.categories[0], i, 'colorSelector', 'fill', defaultColor).solid.color,
selectionId: host.createSelectionIdBuilder()
.withCategory(categorical.categories[0], i)
.createSelectionId(),
selected: false
});
Artık visualDataPoints
veri noktalarınız olarak ve ids
dizi işlevine callback
geçirildi.
Bu noktada görselin diziyi ISelectionId[]
dizinizdeki visualDataPoints
seçimlerle karşılaştırması ve ardından ilgili veri noktalarını seçili olarak işaretlemesi gerekir.
this.selectionManager.registerOnSelectCallback(
(ids: ISelectionId[]) => {
visualDataPoints.forEach(dataPoint => {
ids.forEach(bookmarkSelection => {
if (bookmarkSelection.equals(dataPoint.selectionId)) {
dataPoint.selected = true;
}
});
});
});
);
Veri noktalarını güncelleştirdikten sonra, bunlar nesnede filter
depolanan geçerli seçim durumunu yansıtır. Ardından, veri noktaları işlendiğinde, özel görselin seçim durumu yer işaretinin durumuyla eşleşir.
Filtre içeren görseller
Görselin tarih aralığına göre bir veri filtresi oluşturduğunu varsayalım. Aralığın başlangıç ve bitiş tarihlerine sahipsiniz startDate
endDate
.
Görsel, gelişmiş bir filtre oluşturur ve verileri ilgili koşullara göre filtrelemek için konak yöntemini applyJsonFilter
çağırır.
Hedef, filtreleme için kullanılan tablodur.
import { AdvancedFilter } from "powerbi-models";
const filter: IAdvancedFilter = new AdvancedFilter(
target,
"And",
{
operator: "GreaterThanOrEqual",
value: startDate
? startDate.toJSON()
: null
},
{
operator: "LessThanOrEqual",
value: endDate
? endDate.toJSON()
: null
});
this.host.applyJsonFilter(
filter,
"general",
"filter",
(startDate && endDate)
? FilterAction.merge
: FilterAction.remove
);
Her yer işareti seçtiğinizde özel görsel bir update
çağrı alır.
yönteminde update
görsel, nesnedeki filtreyi denetler:
const filter: IAdvancedFilter = FilterManager.restoreFilter(
&& options.jsonFilters
&& options.jsonFilters[0] as any
) as IAdvancedFilter;
filter
Nesne null değilse, görsel filtre koşullarını nesneden geri yükler:
const jsonFilters: AdvancedFilter = this.options.jsonFilters as AdvancedFilter[];
if (jsonFilters
&& jsonFilters[0]
&& jsonFilters[0].conditions
&& jsonFilters[0].conditions[0]
&& jsonFilters[0].conditions[1]
) {
const startDate: Date = new Date(`${jsonFilters[0].conditions[0].value}`);
const endDate: Date = new Date(`${jsonFilters[0].conditions[1].value}`);
// apply restored conditions
} else {
// apply default settings
}
Bundan sonra görsel, iç durumunu geçerli koşullarla eşleşecek şekilde değiştirir. İç durum, veri noktalarını ve görselleştirme nesnelerini (çizgiler, dikdörtgenler vb.) içerir.
Zaman Çizelgesi Dilimleyici görseli, aralık seçiciyi ilgili veri aralıklarına değiştirir.
Görselin filtre durumunu kaydetme
Yer işareti için filtrenin koşullarını kaydetmeye ek olarak, diğer filtre yönlerini de kaydedebilirsiniz.
Örneğin, Zaman Çizelgesi Dilimleyicisi özellik değerlerini filtre durumu olarak depolar Granularity
. Yer işaretlerini değiştirdiğinizde zaman çizelgesinin ayrıntı düzeyinin (gün, ay, yıl vb.) değişmesine olanak tanır.
özelliği, filterState
filtre yönünü özellik olarak kaydeder. Görsel, çeşitli filterState
değerleri yer işaretlerinde depolayabilir.
Bir özellik değerini filtre durumu olarak kaydetmek için nesne özelliğini capabilities.json dosyasında olduğu gibi "filterState": true
ayarlayın.