Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dilimleyici API'lerini kullanarak Power BI dilimleyicisinin durumunualabilir ve ayarlayabilirsiniz. Ayrıca, bir raporu yüklerken dilimleyici durumunu değiştirmek için yük yapılandırmasını kullanabilirsiniz.
İki tür dilimleyici görseli vardır:
Hazır - Kullanıma hazır Power BI görselleri için dilimleyiciler. Kullanıma hazır dilimleyiciler, Power BI (Masaüstü ve hizmet) ile birlikte gelen tüm Power BI görsellerini destekler.
AppSource'tan Power BI görsellerini ve dosyaları
- AppSource'tan veya .pbiviz dosyası olarak sağlanan üçüncü taraf Power BI görselleri için dilimleyiciler. AppSource ve dosyalarındaki Power BI görselleri veya AppSource'taki kısa görseller veyadosyalar için dilimleyiciler, geliştiriciler tarafından oluşturulan Power BI görselleri için dilimleyicilerdir.
Dilimleyici nesnesi
Dört dilimleyici türü vardır:
- Kategorik dilimleyicileri
- aralık dilimleyicileri
- Göreli tarih dilimleyicileri
- Hiyerarşi dilimleyicileri
Kategorik dilimleyici
Kategorik dilimleyiciler aşağıdaki ekranları destekler:
- Liste
- Açılan menü
- Değer kartları
Raporu uygun şekilde filtrelemek için bu listelerden tek veya birden çok öğe seçebilirsiniz.
Bu tür dilimleyicilerin seçimini değiştirmek için bir IBasicFilter nesnesi oluşturmanız gerekir. Temel filtre oluşturma hakkında daha fazla bilgi için bkz. Temel filtre.
const basicFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Store",
column: "Count"
},
operator: "In",
values: [1, 2, 3, 4],
filterType: models.FilterType.BasicFilter
};
await visual.setSlicerState({
filters: [basicFilter]
});
Dilimleyici hedefi bir hiyerarşiyse, IFilterHierarchyTarget bir hedef sağlayın. Daha fazla bilgi için bkz. Hedefleri kullanaraküzerinde hangi veri alanının kullanılacağını seçme.
const basicFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "Store",
hierarchy: "Country",
hierarchyLevel: "Code"
},
operator: "In",
values: [456, 943],
filterType: models.FilterType.BasicFilter
};
await visual.setSlicerState({
filters: [basicFilter]
});
Aralık dilimleyicisi
Aralık dilimleyicileri aşağıdakiler gibi koşulları destekler:
- Arasında
- Önce
- Sonra
Aralık dilimleyicilerinin seçimini değiştirmek için bir IAdvancedFilter nesnesi oluşturun. Daha fazla bilgi için bkz. gelişmiş filtre
const advancedFilter = {
$schema: "http://powerbi.com/product/schema#advanced",
target: {
table: "Store",
column: "Number"
},
logicalOperator: "And",
conditions: [
{
operator: "GreaterThanOrEqual",
value: 30
},
{
operator: "LessThan",
value: 40
}
],
filterType: models.FilterType.AdvancedFilter
};
await visual.setSlicerState({
filters: [advancedFilter]
});
Göreli tarih dilimleyicisi
Göreli tarih dilimleyicileri aşağıdakiler gibi koşulları destekler:
- Geçen hafta
- Son beş yıl
Göreli tarih dilimleyicilerinin seçimini değiştirmek için bir IRelativeDateFilter nesnesi oluşturun. Daha fazla bilgi için bkz. Göreli tarih ve göreli saat filtre nesneleri.
const relativeDateFilter = {
$schema: "http://powerbi.com/product/schema#relativeDate",
target: {
table: "Sales",
column: "OrderDate"
},
operator: models.RelativeDateOperators.InLast,
timeUnitsCount: 30,
timeUnitType: models.RelativeDateFilterTimeUnit.Days,
includeToday: true,
filterType: models.FilterType.RelativeDate
};
await visual.setSlicerState({
filters: [relativeDateFilter]
});
Göreli zaman dilimleyicisi
Göreli zaman dilimleyicileri aşağıdakiler gibi koşulları destekler:
- Son beş dakika
- Bu saat
Göreli zaman dilimleyicilerinin seçimini değiştirmek için bir IRelativeTimeFilter nesnesi oluşturun. Daha fazla bilgi için bkz. Göreli tarih ve göreli saat filtreleri.
const relativeTimeFilter = {
$schema: "http://powerbi.com/product/schema#relativeTime",
target: {
table: "Sales",
column: "OrderDate"
},
operator: models.RelativeDateOperators.InLast,
timeUnitsCount: 5,
timeUnitType: models.RelativeDateFilterTimeUnit.Minutes,
filterType: models.FilterType.RelativeTime
};
await visual.setSlicerState({
filters: [relativeTimeFilter]
});
Hiyerarşi dilimleyicisi
Hiyerarşi dilimleyicileri birden çok ilgili alandan filtrelemenize olanak sağlar.
Hiyerarşi dilimleyicisi SDK 2.21 sürümünde desteklenir. setSlicerState API ile hiyerarşi dilimleyicisinde seçimleri ayarlayın veya getSlicerState APIile geçerli hiyerarşi seçimlerini alın.
hiyerarşi dilimleyicilerine alan ekleme
Hiyerarşi filtresi
IHierarchyFilter dilimleyici hiyerarşisini açıklar. Bu filtreyle getSlicerState ve setSlicerState yöntemlerini kullanın.
interface IHierarchyFilter extends IFilter {
target: (IFilterTarget | IFilterKeyTarget)[];
hierarchyData: IHierarchyFilterNode[];
}
hierarchyData: HerIHierarchyFilterNodetek bir değer seçimini temsil ettiği hiyerarşi ağacındaki seçili ve seçilmemiş öğeler.interface IHierarchyFilterNode { value?: PrimitiveValueType; keyValues?: PrimitiveValueType[]; children?: IHierarchyFilterNode[]; operator?: HierarchyFilterNodeOperators; }-
valueveyakeyValuesayarlanmalıdır -
children– Geçerli seçimle ilgili düğüm alt öğelerinin listesi -
operator: Ağaçtaki tek nesnelerin işleci. işleci aşağıdakilerden biri olabilir:
type HierarchyFilterNodeOperators = "Selected" | "NotSelected" | "Inherited";-
Selected– değer açıkça seçilir. -
NotSelected– değer açıkça seçilmedi. -
Inherited– değer seçimi hiyerarşideki üst değere göre veya kök değerse varsayılan değerdir.
operatoristeğe bağlıdır. Hiçbir işleç ayarlı değilse, varsayılan değerInheritedolur.-
Hiyerarşi dilimleyici örnekleri
Aşağıdaki örneklerde, setSlicerState API'sini hiyerarşi dilimleyicileriyle kullanmaya yönelik farklı senaryolar açıklanmaktadır.
Farklı düzeylerdeki değerleri seçin. Örneğin, 2013'te 'Çyr 1' ve 'Çyr 2' ve 2014'te 'Çyr 1' ve 'Çyr 2' seçeneğini belirleyin.
const filter = { "$schema": http://powerbi.com/product/schema#hierarchy, "target": [ { "table": "Dates", "hierarchy": "Date Hierarchy", "hierarchyLevel": "Year" }, { "table": "Dates", "hierarchy": "Date Hierarchy", "hierarchyLevel": "Quarter" } ], "filterType": 9, "hierarchyData": [ { "operator": "Inherited", "value": 2013, "children": [ { "operator": "Selected", "value": "Qtr 1" }, { "operator": "Selected", "value": "Qtr 2" } ] }, { "operator": "Inherited", "value": 2014, "children": [ { "operator": "Selected", "value": "Qtr 1" }, { "operator": "Selected", "value": "Qtr 2" } ] } ] }; await slicer.setSlicerState({ filters: [filter] });
Özel durumlar içeren farklı düzeylerdeki değerleri seçin. Örneğin, '1. Üç Aylık' olmadan 2014'i seçin.
const filter = { "$schema": http://powerbi.com/product/schema#hierarchy, "target": [ { "table": "Dates", "hierarchy": "Date Hierarchy", "hierarchyLevel": "Year" }, { "table": "Dates", "hierarchy": "Date Hierarchy", "hierarchyLevel": "Quarter" } ], "filterType": 9, "hierarchyData": [ { "operator": "Selected", "value": 2014, "children": [ { "operator": "NotSelected", "value": "Qtr 1" } ] } ] }; await slicer.setSlicerState({ filters: [filter] });
Belirli değerler için dışında
her şeyi seçmek için işleciyle başlayın. Örneğin, 2008 ve 2009'un '1. Üç Aylık Sayısı' dışında her şeyi seçin. const filter = { "$schema": http://powerbi.com/product/schema#hierarchy, "target": [ { "table": "Dates", "column": "Year" }, { "table": "Dates", "column": "Quarter" } ], "filterType": 9, "hierarchyData": [ { "operator": "NotSelected", "value": 2009 }, { "operator": "Inherited", "value": 2008, "children": [ { "operator": "NotSelected", "value": "Q1" } ] } ] } await slicer.setSlicerState({ filters: [filter] });
Dilimleyici API'leri
slicer türündeki görseller için aşağıdaki yöntemleri kullanabilirsiniz:
- dilimleyici durumunu
-
Dilimleyici durumunu ayarlama -
setSlicerState
Not
Bir rapora kaydedilen dilimleyicileri eşitleme yapılandırması dilimleyici API'leri tarafından tanınır. Bu, API kullanarak bir dilimleyici ayarlarsanız, aynı eşitleme grubundaki tüm dilimleyicilerin etkileneceği anlamına gelir.
Dilimleyici durumunu alma
Dilimleyici durumunu almak için dilimleyici görseli örneğini bulmanız ve getSlicerStateçağrısı yapmanız gerekir. Sonuç, ISlicerStatetüründedir.
Varsayılan olarak, dilimleyiciye filtre uygulanmaz. Bu gibi durumlarda, getSlicerState boş bir filtre dizisiyle ISlicerState döndürür.
getSlicerState hem hazır hem de AppSource'tan görseller veya dilimleyiciler dosyalar için çalışır.
let state = await visual.getSlicerState();
Dilimleyici durumunu ayarlama
Dilimleyici durumunu ayarlamak için dilimleyici görseli örneğini bulmanız, dilimleyici durumunu oluşturmanız ve oluşturduğunuz dilimleyici durumuyla setSlicerState çağırmanız gerekir.
await visual.setSlicerState(state);
Dilimleyici durumu bir ISlicerState nesnesidir.
interface ISlicerState {
filters: ISlicerFilter[];
targets?: SlicerTarget[];
}
Dilimleyiciyi sıfırlamak için boş bir filtre dizisiyle setSlicerState çağırın.
AppSource'tan veya dosyalardan görseller için dilimleyici ayarlama
AppSource'tan görselleri veya dilimleyici seçimi dosyaları ayarlamak için, aşağıdaki türlerden biri olabilecek bir ISlicerFilter nesnesi oluşturmanız gerekir:
IBasicFilterIAdvancedFilterIRelativeDateFilterIRelativeTimeFilter
AppSource'tan farklı görselleri veya dilimleyiciler dosyalar, farklı filtre türlerini destekler. Dilimleyiciyi değiştirmek için gereken filtre türünü belirlemek için visual.getSlicerState()öğesini çağırın.
Filtre türleri hakkında daha fazla bilgi için bkz.Rapor filtrelerini denetleme
Rapor yükünde dilimleyicileri ayarlama
Rapor yük yapılandırması dilimleyicilerin durumunu değiştirmeyi destekler. Bu, rapor yükleme sırasında rapor dilimleyicilerinin durumunu değiştirmenize olanak tanır. Bunu yapmak için bir ISlicer dizisi geçirin.
interface IReportLoadConfiguration {
...
slicers?: ISlicer[];
}
Her ISlicer nesnesi bir seçici ve dilimleyici durumu içerir.
interface ISlicer {
selector: SlicerSelector;
state: ISlicerState;
}
Hangi dilimleyicinin değiştireceğini seçmek için
Not
Aynı eşitleme grubundaki farklı ISlicer nesneleri geçirirseniz, sonuç beklenmeyen olur.
Yük örneklerine dilimleyici uygulama
Bu bölüm, dilimleyicilerle yük yapılandırmasına yönelik iki örnek içerir.
Belirli bir dilimleyiciyi ada göre ayarlama
let slicers = [ { selector: { $schema: "http://powerbi.com/product/schema#visualSelector", visualName: "d1feb8891635af3b335a" }, state: { filters: [advancedFilter] } } ]; let embedConfig = { ... slicers: slicers, };Dilimleyicileri dilimleyici hedeflerine göre ayarlama
let target = { table: "Store", column: "StoreNumber" }; let slicers = [ { selector: { $schema: "http://powerbi.com/product/schema#slicerTargetSelector", target: target }, state: { filters: [advancedFilter] } } ]; let embedConfig = { ... slicers: slicers, };
Dikkat edilmesi gerekenler ve sınırlamalar
Tanımlama grubu dilimleyicileri desteklenmez.
Hiyerarşi dilimleyicisi SDK 2.21 sürümünde desteklenir.
İlk çalıştırma dilimleyicileri yalnızca tek bir filtreyi destekler.
Dilimleyici olmayan bir görselde
setSlicerStateçağrılması reddedilen bir söz döndürür İşlem yalnızcadilimleyicilerde çalışır.Dilimleyici eşitleme yapılandırmasını değiştirmek için API yoktur.
İlgili içerik
- Filtreleri kullanarak ekleme
- sayfaları ve görselleri alma
- Rapor ayarlarını yapılandırma