Aracılığıyla paylaş


Tek Değer ve Birden Fazla Değer İçeren Parametreleri Kullanma

Parametreler tek değer veya birden fazla değer içerebilir.Birden fazla değer içeren bir parametre birden fazla değere ayarlanabilir.Zaman çok değerli bir parametre için bir kullanılabilir değerler listesini tanımlarReporting Servicesotomatik olarak bir rapor araç çubuğundaki kapalı açılan liste. Tümünü Seç seçeneği sağlar.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:Anlama basit ve karmaşık ifadeleri (Reporting Services).

İç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: Rapora Parametreler EklemeveRapor Parametreleri Oluşturma ve Rapor Parametresi Özelliklerini Ayarlama.

Security noteSecurity 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.Gizli raporlar hakkında daha fazla bilgi için bkz:Raporları ve kaynakları güvenli hale getirme.

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.IN anahtar sözcük ya da bu sorgu tarafından döndürülen sonuçlar hakkında daha fazla bilgi için bkz:IN (Transact-SQL).

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 (Reporting Services'i) 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çinParametreler koleksiyon başvurular (Reporting Services) deyimler içinde kullanma.