Tek Değer ve Birden Fazla Değer İçeren Parametreleri Kullanma (Rapor Oluşturucusu 2,0)
Parametreler tek değer veya birden fazla değer içerebilir.Birden fazla değer içeren bir parametre birden fazla değere ayarlanabilir.Birden fazla değer içeren bir parametre için kullanılabilir değerler listesi tanımladığınızda, rapor araç çubuğu açılır listesinde otomatik olarak Tümünü Seç seçeneği görüntüler.Bu seçeneği, listedeki tüm değerleri seçmek veya işaretlerini kaldırmak için kullanın.
Tasarım yüzeyindeki metin kutularında hem tek değer hem de birden fazla değer içeren parametreler @ simgesi ile başlayan basit ifadeler olarak görüntülenir.Örneğin, görünen Store adlı bir parametre olarak[@Store].Daha fazla bilgi için bkz:Basit ve Karmaşık İfadeleri Anlama (Rapor Oluşturucusu 2.0).
İçin küme multivalue bir parametre seçinİzin birden çok değerRaporu Parameter Properties iletişim kutusu. seçeneği Yapabilirsiniz küme multivalue dışında herhangi bir parametre türüneBoolean.
Multivalue parametreler birincil kullanımı, bir sorgu sınırlaması yan için örneğin, izin vermektirTransact-SQLWHERE yan tümce veya MDX filtre yan tümce, bir değerler kümesi dizisi yerine, tek bir değer. eşitlik eklenmesi için sınamaMultivalue parametreleri oluşturma hakkında daha fazla bilgi için bkz:Öğretici: Rapor verilerini (Report Builder 2.0) süzme için gerekli parametreleri eklemeveRapor Parametreleri Oluşturma ve Rapor Parametresi Özelliklerini Ayarlama (Rapor Oluşturucusu 2.0).
Security Note: |
---|
Türünde bir parametre içeren bir rapordakiStringKullanılabilir değerler liste (geçerli değerler listesi olarak da bilinir) kullanın ve raporu çalıştıran her kullanıcı yalnızca izinleri raporu. verileri görüntülemek için gerekli olan sahip olduğundan emin olun emin olunDize türünde parametre tanımladığınızda, kullanıcıya herhangi bir değer alabilecek bir metin kutusu sunulur.Kullanılabilir değerler listesi, girilebilen değerleri sınırlar.Rapor parametresi sorgu parametresine bağlı ise ve kullanılabilir değerler listesi kullanmıyorsanız, bir rapor kullanıcısının metin kutusuna SQL söz dizimi yazarak raporu ve sunucunuzu SQL saldırısına açık hale getirme olasılığı vardır.Kullanıcı yeni SQL deyimini çalıştırmak için yeterli izne sahipse, sunucuda istenmeyen sonuçlara yol açabilir. Rapor parametresi sorgu parametresine bağlı değilse ve parametre değerleri rapora dahil edilmişse, bir rapor kullanıcısı parametre değerine ifade söz dizimi veya URL yazabilir ve raporu Excel’e veya HTML’ye işleyebilir.Ardından başka bir kullanıcı raporu görüntüler ve işlenen parametre içeriklerini tıklatırsa, kullanıcı istemeden zararlı komut dosyasını veya bağlantıyı çalıştırabilir. İstemeden zararlı komut dosyası çalıştırma riskini azaltmak için, yalnızca güvenilir kaynaklardan işlenen raporları açın.Güvenli raporları hakkında daha fazla bilgi için "Raporları ve kaynaklar güvenliğini sağlama" konusuna bakın.Reporting Servicesbelgelerinde. |
Birden Fazla Değer İçeren Rapor Parametreleri için Sorgu Yazma
Oluşturduğunuz her rapor parametresi için birden fazla değer içeren bir parametre tanımlayabilirsiniz.Ancak sorguyu kullanarak bir veri kaynağına birden fazla parametre değeri geçirmek isterseniz aşağıdaki gereksinimlerin sağlanması gerekir:
Veri kaynağının SQL Server, Oracle, Analysis Services, SAP BI NetWeaver veya Hyperion Essbase olması gerekir.
Veri kaynağı depolanan bir yordam olamaz.Reporting Services, depolanan bir yordama birden fazla değer içeren bir parametre dizisi geçirmeyi desteklemez.
Sorgu, parametreyi belirtmek için bir IN yan tümcesi kullanmalıdır.
Aşağıdaki örnek WHERE yan tümcesinde bir ın anahtar kullanımını gösterir birTransact-SQLdeyim., "Transact-SQL ()" ın anahtar sözcük ya da bu sorgunun döndürdüğü sonuçlar hakkında daha fazla bilgi için bkz:SQL Server 2008BelgelerSQL Server Çevrimiçi Kitaplar.
SELECT FirstName, LastName, e.Title
FROM HumanResources.Employee AS e
JOIN Person.Contact AS c
ON e.ContactID = c.ContactID
WHERE e.Title IN (@Title)
Bir raporda bunu denemek için, bu sorguyu kullanarak bir veri kümesi tanımlayın.Otomatik olarak oluşturulan rapor parametresi Başlık'ın özelliklerini aşağıdaki şekilde değiştirin:
SeçinMulti-Value option.
InKullanılabilir değerlerdeğil sorgulanan seçenek. seçin Aşağıdaki listede girinDeğer sütun ( Etiket sütununu boş bırakın): Tasarım Mühendisi, alıcı, pazarlama yardımcı.
InVarsayılan değeri, enter Buyer.
Önizlemeyi çalıştırın.Farklı kombinasyonlar için değerleri seçin.Başlık ve aldığınız, beklenen sonuçlar.
Not
Rapor sunucusu, parametreleri dizi olarak işleyemeyen veri kaynaklarının sorgularını yeniden yazar.Sorguyu yeniden yazmak, istenen sonucu oluşturmak için gereklidir.Sorgunun yeniden yazılması, parametre birden fazla değer içerecek biçimde tanımlandığında ve sorgu parametreyi belirtmek için bir IN deyimi kullandığında otomatik olarak tetiklenir.IN deyimi içermeyen bir sorgu oluşturuyorsanız, rapor sunucusunun birden fazla değer içeren parametreleri desteklemek üzere sağladığı mantığı engellediğinizi unutmayın.
Veri, veri bölgeleri ve gruplar için filtre ifadeleri tanımlanırFiltre ilgili özellikleri iletişim kutusu. sayfa Birden fazla değer içeren bir parametreye başvuran bir filtre ifadesi tanımladıysanız, filtre ifadesinde IN işlecini kullanmalısınız.IN dışındaki işleçleri kullanan filtre ifadeleri işleme hatalarına yol açar.Daha fazla bilgi için bkz:Nasıl Yapılır: Bir süzgeci (Report Builder 2.0) Ekle.
Birden Fazla Değer İçeren Parametrelere Başvuran İfadeler Yazma
Bir ifadede bir parametre için bakın, yerleşik kullanınParameterskoleksiyon.İfadelerde birden fazla değer içeren parametreleri kullanırken, hem tek değer hem de tüm değerler dizisi ile nasıl çalışacağınızı anlamanız gerekir.Aşağıdaki tabloda, çoklu değerlere izin verecek şekilde ayarlanmış parametrelere ait parametre özelliklerinin örnekleri ve açıklamaları sağlanmıştır.
Örnek |
Açıklama |
---|---|
Parameters!<ParameterName>.Value |
Parametre için değişken veri değerlerinin dizisi. |
Parameters!<ParameterName>.Label |
Parametre için etiketler olan dizelerin bir dizisi. |
Parameters!<ParameterName>.IsMultiValue |
Belirten Boole özellik olup olmadığını parametreİzin birden çok değer seçeneği seçildi. |
Parameters!<ParameterName>.Count |
Sayı değerleri dizisi. |
Parameters!<ParameterName>.Value(0) |
Birden fazla değer içeren bir dizideki ilk değer. |
Parameters!<ParameterName>.Label(0) |
Birden fazla değer içeren bir dizideki ilk etiket. |
Parameters!<ParameterName>.Value(Parameters! <ParameterName>.Count-1) |
Birden fazla değer içeren bir dizideki son değer. |
Parameters!<ParameterName>.Label(Parameters! <ParameterName>.Count-1) |
Birden fazla değer içeren bir dizideki son etiket. |
=Join(Parameters!<ParameterName>.Value,", ") |
ifade türü multivalue parametre dizisi tüm değerleri birleştirirStringbir dize. |
=Split("Value1, Value2, Value3",",") |
Bir dize alýr ve nesneleri geçirmek için bir alt rapor veya detaylandırma raporu bekleniyor için kullanılabilecek bir dizi oluşturur multivalue bir parametre. |
Bir ifadedeki dizide yer alan değerleri ayırmak veya birleştirmek için SPLIT ve JOIN işlevlerini kullanabilirsiniz.Değerleri dize veya tamsayılara dönüştürmek için STRING ve CINT işlevlerini kullanabilirsiniz.
Tek değerli ve birden çok değerli parametreleri, deyimlerde örnekleri ve daha fazla bilgi görmek içinİfadelerde Parametre Koleksiyonu Başvurularını Kullanma (Rapor Oluşturucusu 2,0).
See Also