URL'deki sorgu dizesi parametrelerini kullanarak raporu filtreleme
Bir raporu Power BI hizmeti açtığınızda, raporun her sayfasının kendi benzersiz URL'si vardır. Bu rapor sayfasını filtrelemek için rapor tuvalinde Filtreler bölmesini kullanabilirsiniz. İsterseniz, raporu önceden filtrelemek için URL'ye sorgu dizesi parametreleri de ekleyebilirsiniz. İş arkadaşlarınıza göstermek istediğiniz bir raporunuz olabilir ve bu raporu onlar için önceden filtrelemek isteyebilirsiniz. Bunu filtrelemenin bir yolu, raporun varsayılan URL'si ile başlamak, filtre parametrelerini URL'ye eklemek ve ardından yeni URL'nin tamamını e-postayla göndermektir.
Bu makalede Perakende Analizi Örneği raporu kullanılmaktadır. Takip etmek isterseniz örnek raporu indirebilirsiniz.
Sorgu dizesi parametrelerinin kullanımları
Power BI Desktop'ta çalıştığınızı varsayalım. Diğer Power BI raporlarına bağlantılar içeren bir rapor oluşturmak istiyorsunuz, ancak diğer raporlarda yalnızca bazı bilgileri göstermek istiyorsunuz. İlk olarak, sorgu dizesi parametrelerini kullanarak raporları filtreleyin ve URL'leri kaydedin. Ardından, Masaüstü'nde bu yeni rapor URL'leriyle bir tablo oluşturun. Ardından raporu yayımlayın ve paylaşın.
Sorgu dizesi parametrelerinin bir diğer kullanımı, gelişmiş bir Power BI çözümü oluşturan birinin kullanımıdır. DAX'ta, müşterinin geçerli raporda yaptığı seçime göre dinamik olarak filtrelenmiş rapor URL'si oluşturan bir rapor oluşturur. Müşteriler URL'yi seçtiğinde yalnızca hedeflenen bilgileri görür.
Filtreleme için sorgu dizesinin parametre söz dizimi
Parametrelerle, bu değerler boşluk veya özel karakterler içerse bile raporu bir veya daha fazla değer için filtreleyebilirsiniz. Temel söz dizimi oldukça basittir; rapor URL'si ile başlayın, ardından filtre söz diziminizi bir sorgu dizesine ekleyin. URL'deki sorgu dizesi soru işaretiyle (?) başlar, örneğin:
URL?filter=Tablo/Alanı 'value'
- Tablo ve Alan adları büyük/küçük harf duyarlılığına sahiptir; değer ise değil.
- Rapor görünümünden gizlenen alanlar yine filtrelenebilir.
Filtre parametresi sorgu dizesindeki ilk parametre değilse, bir öncekine ve işareti (&) ile bağlanır, örneğin:
URL?reportId=xxxxxxxx-xxxx-xxxx-xxxx-xxxxx&pageName=ReportSection&filter=Table/Field eq 'value'
Alan türleri
Alan türü bir sayı, tarih saat veya dize olabilir ve kullanılan türün anlam modelinde ayarlanan türle eşleşmesi gerekir. Örneğin, "dize" türünde bir tablo sütunu belirtmek, tarih olarak ayarlanmış bir anlam modeli sütununda bir tarih, saat veya sayısal değer arıyorsanız işe yaramaz. Örneğin Table/StringColumn eşittir 1 gibi.
- Dizeler 'yönetici adı' örneğinde olduğu gibi tek tırnak içine alınmalıdır.
- Sayılar için özel biçimlendirme gerekmez. Ayrıntılar için bu makaledeki Sayısal veri türleri bölümüne bakın.
- Tarihler ve saatler Bu makaledeki Tarih veri türlerine bakın.
Hala kafa karıştırıcıysa okumaya devam edin.
Bir alana filtre uygulama
Raporumuzun URL'sinin aşağıdaki olduğunu varsayalım.
Ve önceki harita görselleştirmemizde Kuzey Carolina'da mağazalarımız olduğunu görüyoruz. NC, Store tablosunun Territory alanında Kuzey Carolina'nın temsil ettiği değerdir. Bu nedenle raporu yalnızca "NC" içindeki depoların verilerini gösterecek şekilde filtrelemek için bu dizeyi URL'ye ekleriz:
?filter=Store/Territory eq 'NC'
Raporumuz artık Kuzey Carolina için filtrelendi; rapordaki tüm görselleştirmeler yalnızca Kuzey Carolina verilerini gösterir.
Alandaki birden fazla değere filtre uygulama
Tek bir alandaki birden fazla değere filtre uygulamak için in işlecini, ve işlecinin yerine kullanırsınız. Söz dizimi aşağıdaki gibidir:
URL?filter=Tablo/Alaniçinde ('değer1', 'değer2')
Aynı örneği kullanarak raporu yalnızca "NC" (Kuzey Carolina) veya "TN" (Tennessee) mağazalarının verilerini gösterecek şekilde filtrelemek için URL'yi aşağıdakiyle ekleyin;
?filter=Store/Territory in ('NC', 'TN')
Diğer yararlı işleçlerin listesi için makalenin devamında yer alan İşleçler tablosuna bakın.
Birden çok alana filtre uygulama
Ayrıca, URL'nize daha fazla parametre ekleyerek birden çok alanı filtreleyebilirsiniz. Özgün filtre parametremize geri dönelim.
?filter=Store/Territory eq 'NC'
Daha fazla alana filtre uygulamak için önceki örnekle aynı biçimde bir 've' ve başka bir alan ekleyin. İşte bir örnek.
?filter=Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'
İşleçler
Power BI, 've' özelliğine ek olarak birçok işleci destekler. Aşağıdaki tabloda bu işleçler ve destekledikleri içerik türü listelenmiştir.
Operatör | Tanım | String | Sayı | Tarih | Örnek |
---|---|---|---|---|---|
and | ve | evet | evet | evet | ürün/fiyat le 200 ve fiyat gt 3.5 |
Eq | eşittir | evet | evet | evet | Adres/Şehir eq 'Redmond' |
ne | eşit değil | evet | evet | evet | Adres/Şehir 'Londra' değil |
Ge | büyüktür veya eşittir | hayır | evet | evet | ürün/fiyat ge 10 |
Gt | büyüktür | hayır | evet | evet | ürün/fiyat gt 20 |
Le | küçüktür veya eşittir | hayır | evet | evet | ürün/fiyat le 100 |
Lt | daha az | hayır | evet | evet | ürün/fiyat lt 20 |
içinde* | içeren | evet | evet | evet | Öğrenci/Yaş (27, 29) |
* in kullandığınızda, in sağındaki ifadeler ya parantez içine alınmış virgülle ayrılmış bir liste ya da bir koleksiyon döndüren tek bir ifade olabilir. Örnekler için IN İşleci makalesine bakın.
Sayısal veri türleri
Power BI URL filtresi aşağıdaki biçimlerde sayılar içerebilir.
Sayı türü | Örnek |
---|---|
integer | 5 |
long | 5 L veya 5 l |
double | 5,5 veya 55e-1 ya da 0,55e+1 ya da 5D ya da 5d ya da 0,5e1D ya da 0,5e1d ya da 5,5D ya da 55e-1D veya 55e-1d |
ondalık | 5 M veya 5 m ya da 5,5 M veya 5,5 m |
float | 5 F veya 5 f veya 0,5e1 F veya 0,5e-1 d |
Tarih verisi türleri
Power BI, Date ve DateTimeOffset veri türleri için hem OData V3'ü hem de V4'ü destekler. OData V3 için tarihleri tek tırnak içine almanız ve bunların önüne datetime sözcüğünü eklemeniz gerekir. OData V4'te tek tırnak işaretlerine ve "datetime" sözcüğüne ihtiyacınız yoktur.
Tarihler EDM biçimi (2019-02-12T00:00:00: 00) kullanılarak gösterilir: Bir tarihi 'YYYY-AA-GG' olarak belirttiğinizde, Power BI bunu 'YYYY-MM-DDT00:00:00' olarak yorumlar. Ay ve günün mm ve DD olmak üzere iki basamak olduğundan emin olun.
Bu ayrım neden önemlidir? Table/Date gt '2018-08-03' sorgu dizesi parametresi oluşturduğunuzu varsayalım. Sonuçlar 3 Ağustos 2018'i içerecek mi yoksa 4 Ağustos 2018 ile mi başlayacak? Power BI sorgunuzu Table/Date gt '2018-08-03T00:00:00' olarak çevirir. Bu nedenle, sonuçlarınız sıfır olmayan bir zaman bölümüne sahip tarihleri içerir, çünkü bu tarihler '2018-08-03T00:00:00' değerinden büyük olur.
V3 ile V4 arasında başka farklar da vardır. OData V3 Tarihler'i desteklemez, yalnızca DateTime'ı destekler. Bu nedenle, V3 biçimini kullanıyorsanız tam tarih ve saat ile nitelemeniz gerekir. "datetime'2019-05-20'" gibi tarih sabitleri V3 gösteriminde desteklenmez. Bunu, V4 gösteriminde "2019-05-20" olarak yazabilirsiniz. V3 ve V4'te iki eşdeğer filtre sorgusu aşağıdadır:
- OData V4 biçimi: filter=Table/Date gt 2019-05-20
- OData V3 biçimi: filter=Table/Date gt datetime'2019-05-20T00:00:00'
URL filtrelerindeki özel karakterler
Tablo ve sütun adlarındaki özel karakterler
Tablo ve sütun adlarındaki özel karakterler, boşluklar ve baştaki sayılar daha fazla biçimlendirme gerektirir. Sorgunuzda boşluklar, tireler, baştaki sayılar veya diğer ASCII olmayan karakterler varsa, bu özel karakterlerin önüne alt çizgi ve X (_x) ile başlayan bir kaçış kodu, ardından dört basamaklı Unicode ve sonra başka bir alt çizgi ekleyin. Unicode dört karakterden azsa sıfırlarla doldurmanız gerekir. İşte bazı örnekler.
Tanımlayıcı | Unicode | Power BI için kodlama |
---|---|---|
Tablo Adı | Alan 00x20 | Tablo_x0020_Adı |
Sütun@Numarası | @ 00x40 | Column_x0040_Number |
[Sütun] | [ 0x005B ] 'dir' 0x005D | _x005B_Column_x005D_ |
Column+Plus | + 0x2B | Column_x002B_Plus |
2TableName | 2, x0032'dir | _x0032_TableName |
Table_x0020_Name/Column_x002B_Plus eq 3
Table_x0020_Special/_x005B_Column_x0020_Brackets_x005D_ eq '[C]'
Değerlerdeki özel karakterler
URL filtreleri alan değerlerinde çoğu özel karakteri destekler, ancak bazıları da kaçış kodları gerektirir. Örneğin, tek tırnak karakteri aramak için iki tek tırnak ('') kullanın.
?filter=Table/Name eq 'O''Brien'
Olur:?filter=Table/Name eq 'Lee''s Summit'
Olur:in
işleci bu kaçış yöntemi için de destek sağlar:?filter=Table/Name in ('Lee''s Summit', 'O''Brien')
olur:
Alan değerlerinde kaçış kodları gerektiren bazı özel karakterlerin listesi aşağıdadır.
Karakter | Kaçış kodu |
---|---|
(boşluk) | %20 |
' | '' |
% | %25 |
+ | %2B |
/ | %2F |
? | %3F |
# | %23 |
& | %26 |
Standart URL kaçış karakterleri
Bir URL'yi boşluklar ve diğer özel karakterlerle kullandığınızda, tarayıcılar bunları otomatik olarak standart kaçış karakterleriyle değiştirebilir. Bu URL sorgu dizesini oluşturduğunuzu varsayalım:
https://app.powerbi.com/groups/me/reports/b7dea1d4-d9f0-47aa-a88d-xxxxxxxxxxxx/ReportSection2?filter=Executives/Executive eq 'Andrew Ma'
Müşteri Kârlılığı Örneği'ni açar ve Andrew Ma için filtreler. Ancak URL'ye bakarsanız şu şekilde görünebilir:
https://app.powerbi.com/groups/me/reports/b7dea1d4-d9f0-47aa-a88d-xxxxxxxxxxxx/ReportSection2?filter=Executives%2FExecutive%20eq%20%27Andrew%20Ma%27
Tarayıcı, Andrew
ve Ma
arasındaki boşluğu %20
ile değiştirmiştir, diğer boşlukları da benzer şekilde değiştirmiştir. Tablo adı Executives
ile alan adı Executive
arasındaki eğik çizgiyi %2F
ile değiştirdi ve tek tırnak işaretini '
ile %27
ile değiştirdi.
URL'nin bu sürümü yararlı olabilir. Örneğin, Microsoft Teams'de sohbette yapıştırabilirsiniz ve istenen filtrelenmiş sonuçları döndürür.
Birden çok değere filtre uygulamak için DAX kullanma
Birden çok alanı filtrelemenin bir diğer yolu, hesaplanmış bir kolon oluşturarak iki alanı tek bir değerle birleştirmektir. Ardından bu değere göre filtreleyebilirsiniz.
Örneğin, iki alanımız vardır: Territory ve Chain. Power BI Desktop'ta TerritoryChain adlı yeni bir Hesaplanan sütun (Alan) oluşturun. Alan adında boşluk olamayacağını unutmayın. Bu sütunun DAX formülü aşağıdadır.
TerritoryZincir = [Bölge] & " - " & [Zincir]
Raporu Power BI hizmeti yayımlayın ve ardından NC'de yalnızca Lindseys depolarının verilerini filtrelemek ve görüntülemek için URL sorgu dizesini kullanın.
https://app.powerbi.com/groups/me/reports/8d6e300b-696f-498e-b611-41ae03366851/ReportSection3?filter=Store/TerritoryChain eq 'NC – Lindseys'
Filtrelenmiş rapordan bir kutucuğu sabitleyin
Sorgu dizesi parametrelerini kullanarak raporu filtreledikten sonra, bu rapordaki görselleştirmeleri panonuza sabitleyebilirsiniz. Panodaki kutucuk filtrelenmiş verileri görüntüler ve bu pano kutucuğu seçildiğinde, bu verileri oluşturmak için kullanılan rapor açılır. Ancak, URL'yi kullanarak yaptığınız filtreleme raporla birlikte kaydedilmez. Pano kutucuğunu seçtiğinizde rapor filtrelenmemiş durumda açılır. Bu nedenle, pano kutucuğunda görüntülenen veriler rapor görselleştirmesinde görüntülenen veriyle eşleşmez.
Bu tutarsızlık, farklı sonuçlar görmek istediğinizde yararlıdır; panoda filtrelenmiş ve raporda filtresiz görüntülenir.
Dikkat edilmesi gerekenler ve sorun giderme
Sorgu dizesi parametrelerini kullanırken dikkat etmeniz gereken birkaç şey vardır.
in işlecini kullandığınızda, in öğesinin sağındaki değerlerin parantez içine alınmış virgülle ayrılmış bir liste olması gerekir.
Power BI Rapor Sunucusu, "filter" URL parametresini kullanarak birden fazla filtre belirtme özelliğini de destekler. Power BI Rapor Sunucusu'da URL'nin nasıl görünebileceğine ilişkin bir örnek aşağıda verilmişti:
https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq 'NC' and Store/Chain eq 'Fashions Direct'
Rapor URL'si filtrelerinin 10 ifade sınırı vardır (AND tarafından bağlanan 10 filtre).
JavaScript sınırlamaları nedeniyle uzun veri türü (2^53-1) şeklindedir.
URL sorgu dizeleri 2000 karakterle sınırlıdır. Bu sınır, özel karakterler (boşluk, %, + gibi) için kaçış kodlarını içerir.
"BİlGİLER" ile başlayan bir tablo adı gibi inf harfiyle başlayan tablo veya sütun adlarına filtre ekleyemezsiniz. Büyük harflerle yazılan "INF", OData'da özel bir değerdir. "INF" ile bir tablo veya sütun adı başlatmak istiyorsanız, bunun yerine küçük harfle "inf" yapın.
Tablo ve alan adları Unicode biçiminde ifade edilen Çince karakterler içerebilir. Örneğin, 表/人 eq '张力' (Bu, Table/Person eq '张力' anlamına gelir) bir filtre uygulamak istediğinizi varsayalım. Filtre _x8868_/_x4eba_ '张力' ile eşit olacak şekilde dönüştürülür.
Ekleme senaryoları
URL filtreleri bazı ekleme senaryolarında desteklenir, diğerlerinde desteklenmez.
- Raporun güvenli bir portala veya web sitesine katıştırılması desteklenir.
- URL filtreleri Power BI Embedded'de desteklenir.
- Sorgu dizesi filtreleme, Web'de Yayınla veya PDF'ye Aktar ile çalışmaz.
- SharePoint Online'da rapor web bölümüyle ekleme, URL filtrelerini desteklemez.
- Teams URL belirtmeye izin vermez.
İlgili içerik
Başka sorunuz var mı? Power BI Topluluğu sormayı deneyin