Aracılığıyla paylaş


İfade Örnekleri (Rapor Oluşturucusu ve SSRS)

İfadeler sık sık raporlarda, içerik ve rapor görünümünü denetlemek için kullanılır. İfadeler Microsoft Visual Basic programında yazılır ve yerleşik işlevler, özel kod, rapor ve grup değişkenleri ve kullanıcı tanımlı değişkenleri kullanabilir. İfadeler eşittir işaretiyle (=) başlar. İfade düzenleyicisi ve ekleyebileceğiniz başvuru türleri hakkında daha fazla bilgi için, bkz. Raporlarda İfade Kullanımı (Rapor Oluşturucusu ve SSRS) ve İfade Ekleme (Rapor Oluşturucusu ve SSRS).

Bu başlık altında, raporlarda sık kullanılan görevler için kullanılabilecek ifade örnekleri sağlanmıştır.

  • Visual Basic İşlevleri   Tarih, dize, dönüştürme ve koşullu Visual Basic işlevleri örnekleri.

  • Rapor İşlevleri   Toplamalar ve diğer yerleşik rapor işlevleri örnekleri.

  • Rapor Verilerinin Görünümü   Bir raporun görünümünü değiştirme örnekleri.

  • Özellikler   Biçim veya görünürlüğü kontrol etmek için rapor öğesi özelliklerini ayarlama örnekleri.

  • Parametreler   Bir ifadede parametre kullanma örnekleri.

  • Özel Kod   Katıştırılmış özel kod örnekleri.

Belirli kullanımlara yönelik ifade örnekleri için aşağıdaki konulara bakın:

Basit ve karmaşık ifadeler, ifadelerin kullanıldığı yerler ve ifadeye ekleyebileceğiniz başvuru türleri hakkında daha fazla bilgi için İfadeler (Rapor Oluşturucusu ve SSRS) konusunun altındaki bölümlere bakın. Toplamları hesaplamak için ifadelerin değerlendirilme bağlamı hakkında daha fazla bilgi için, bkz. Toplamlar, Toplamalar ve Yerleşik Koleksiyonlar İçin İfade Kapsamı (Rapor Oluşturucusu ve SSRS).

Bu konuda da kullanılan işlevlerin ve işleçlerin birçoğunu bir rapor yazma bağlamında kullanan ifadeler yazmayı öğrenmek için, bkz. Öğretici: İfadelere Giriş.

İfade düzenleyicisi, yerleşik işlevlerin hiyerarşik bir görünümünü içerir. İşlevi seçtiğinizde, Değerler bölmesinde bir kod örneği görünür. Daha fazla bilgi için, bkz. Expression Dialog Box veya İfade İletişim Kutusu (Rapor Oluşturucusu).

Veri kaynağı olarak rapor modelini kullanan bir veri kümesi sorgusunu tasarlamak için Rapor Modeli Sorgu Tasarımcısı'nı kullanıyorsanız, ifadelerin yerine formülleri kullanırsınız. Bu formüller, sorguyla tümleştirilmiş özel hesaplamalar kullanılarak rapor verilerini belirlemeye yardımcı olur. Bu sorgu, rapor modeli veri kaynağından hangi verilerin döndürüleceğini belirtir. Daha fazla bilgi için bkz. Rapor Modeli Sorgularındaki Formüller (Rapor Oluşturucusu ve SSRS).

[!NOT]

SQL Server Data Tools'daki Rapor Oluşturucusu ve Rapor Tasarımcısı ile rapor tanımları (.rdl) oluşturabilir ve bunları değiştirebilirsiniz. Her yazma ortamı raporları ve ilişkili öğeleri oluşturmak, açmak ve kaydetmek için farklı yollar sağlar. Daha fazla bilgi için, Web'de microsoft.com sitesinde Rapor Tasarımcısı'nda ve Oluşturucusu'nda Rapor Tasarlama makalesine bakın.

İşlevler

Bir rapordaki birçok ifade işlev içerir. Bu işlevleri kullanarak verileri biçimlendirebilir, mantık uygulayabilir ve rapor meta verilerine erişebilirsiniz. Microsoft Visual Basic çalıştırma zamanı kitaplığından ve System.Convert ve System.Math ad alanlarından işlevler kullanan ifadeler yazabilirsiniz. İşlevlere diğer derlemelerden veya özel koddan başvuru ekleyebilirsiniz. Aynı zamanda, System.Text.RegularExpressions gibi Microsoft .NET Framework sınıflarını kullanabilirsiniz.

Visual Basic İşlevleri

Metin verilerinde görüntülenen veya parametreler, özellikler ve raporun diğer alanlarında kullanılan verilerin üzerinde çalışmak için Visual Basic işlevlerini kullanabilirsiniz. Bu bölümde, bu işlevlerden bazılarını gösteren örnekler sağlanmaktadır. Daha fazla bilgi için, MSDN üzerindeki Visual Basic Çalışma Zamanı Kitaplığı Üyeleri konusuna bakın.

.NET Framework, özel tarih biçimleri örneğinde olduğu gibi birçok özel biçimlendirme seçeneği sağlar. Daha fazla bilgi için, MSDN'de Biçimlendirme Türleri konusuna bakın.

Matematik İşlevleri

  • Round işlevi, sayı en yakın tamsayıya yuvarlamak için kullanışlı bir işlevdir. Aşağıdaki ifade, 1,3 değerini 1'e yuvarlar:

    = Round(1.3)
    

    Değeri, belirttiğiniz bir sayının katına yuvarlayan, Excel'in MRound işlevine benzer bir ifade de yazabilirsiniz. Değeri tamsayı oluşturacak bir katsayıyla çarpın, yuvarlayın ve sonra aynı katsayıya bölün. Örneğin, 1,3'ü 0,2'nin en yakın çarpanına (1,4) yuvarlamak için aşağıdaki ifadeyi kullanın:

    = Round(1.3*5)/5
    

Tarih İşlevleri

  • Today işlevi geçerli tarihi verir. Bu ifade, raporda tarihi görüntülemek için bir metin kutusunda veya geçerli tarihe dayanarak tarihi filtrelemek için bir parametrede kullanılabilir.

    =Today()
    
  • DateAdd işlevi, tek parametreye dayanan bir tarih aralığı sağlamak için yararlıdır. Aşağıdaki ifade, StartDate adlı parametreden altı ay sonrasının tarihini verir.

    =DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
    
  • Year işlevi, belirli bir tarihin yılını görüntüler. Bu parametreyi, tarihleri gruplamak veya yılı bir tarih kümesi için etiket olarak görüntülemek amacıyla kullanabilirsiniz. Bu ifade, belirli bir satış siparişi tarihleri grubunun yılını sağlar. Month işlevi ile diğer işlevler de tarihlerin üzerinde çalışmak için kullanılabilir. Daha fazla bilgi için Visual Basic belgelerine bakın.

    =Year(Fields!OrderDate.Value)
    
  • Biçimi özelleştirmek için işlevleri bir ifadede bir araya getirebilirsiniz. Aşağıdaki ifade, tarihin ay-gün-yıl olan biçimini ay-hafta-hafta numarası olarak değiştirir. Örneğin, 12/23/2009'dan Aralık Hafta 3'e:

    =Format(Fields!MyDate.Value, "MMMM") & " Week " & _
    (Int(DateDiff("d", DateSerial(Year(Fields!MyDate.Value), _
    Month(Fields!MyDate.Value),1), Fields!FullDateAlternateKey.Value)/7)+1).ToString
    

    Veri kümesinde bir hesaplanan alan olarak kullanıldığında, bu ifadeyi bir grafikte değerleri her ayın içindeki haftaya göre toplamak için kullanabilirsiniz.

Dize İşlevleri

  • Birden çok alanı, birleştirme işleçlerini ve Visual Basic sabitlerini kullanarak birleştirin. Aşağıdaki ifade, her biri aynı metin kutusunda ayrı bir satırda olmak üzere iki alan döndürür:

    =Fields!FirstName.Value & vbCrLf & Fields!LastName.Value 
    
  • Dizedeki tarih ve sayıları Format işlevi ile biçimlendirin. Aşağıdaki ifade, StartDate ve EndDate parametrelerinin değerlerini uzun tarih biçiminde görüntüler:

    =Format(Parameters!StartDate.Value, "D") & " through " &  Format(Parameters!EndDate.Value, "D")  
    

    Metin kutusu yalnızca tarih veya sayı içeriyorsa, biçimlendirmeyi uygulamak için, metin içersinde Format işlevi yerine metin kutusunun Format özelliğini kullanmalısınız.

  • Right, Len ve InStr işlevleri bir alt dize döndürmek için yararlıdır; örneğin, DOMAIN\username dizesini yalnızca user name (kullanıcı adı) olarak kısaltırken. Aşağıdaki ifade, User adlı parametreden, dizenin ters eğik çizgi (\) karakterinin sağında kalan kısmını döndürür:

    =Right(Parameters!User.Value, Len(Parameters!User.Value) - InStr(Parameters!User.Value, "\"))
    

    Aşağıdaki ifade, Visual Basic işlevleri yerine .NET Framework System.String sınıfının üyelerini kullanarak öncekiyle aynı değere yol açar:

    =Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)
    
  • Seçilen değerleri çok değerli bir parametreden görüntüler. Aşağıdaki örnekte, MySelection parametresinin seçili değerlerini, bir rapor öğesindeki metin kutusunun değeri için ifade olarak ayarlanabilen tek bir dizede birleştirmek için Join işlevini kullanır:

    = Join(Parameters!MySelection.Value)
    
  • .NET Framework System.Text.RegularExpressions kaynaklı Regex işlevleri, varolan dizelerin biçimini değiştirmek, örneğin bir telefon numarasını biçimlendirmek için yararlıdır. Aşağıdaki ifade, Replace işlevini kullanarak bir alandaki on basamaklı bir telefon numarasının "nnn-nnn-nnnn" olan biçimini "(nnn) nnn-nnnn" olarak değiştirir:

    =System.Text.RegularExpressions.Regex.Replace(Fields!Phone.Value, "(\d{3})[ -.]*(\d{3})[ -.]*(\d{4})", "($1) $2-$3")
    

    [!NOT]

    Fields!Phone.Value değerinde fazladan boşluk olmadığından ve değerin String türünde olduğundan emin olun.

Lookup

  • Bir anahtar alanı belirterek, anahtar/değer çifti örneğindeki gibi birebir ilişkiye yönelik olarak veri kümesinden bir değer almak için Lookup işlevini kullanabilirsiniz. Aşağıdaki ifade, eşlenecek ürün tanımlayıcısı verildiğinde bir veri kümesindeki ürün adını görüntüler:

    =Lookup(Fields!PID.Value, Fields!ProductID.Value, Fields.ProductName.Value, "Product")
    

LookupSet

  • Bir anahtar alanı belirterek, bire çok ilişkiye yönelik olarak veri kümesinden bir değer kümesi almak için LookupSet işlevini kullanabilirsiniz. Örneğin, bir kişinin birden çok telefon numarası olabilir. Aşağıdaki örnekte, PhoneList veri kümesinin her satırda bir kişi tanımlayıcısı ve bir telefon numarası içerdiğini varsayalım. LookupSet bir değer dizisi döndürür. Aşağıdaki ifade, döndürülen değerleri tek bir dize halinde birleştirir ve ContactID ile belirtilen kişinin telefon numaralarının listesini görüntüler:

    =Join(LookupSet(Fields!ContactID.Value, Fields!PersonID.Value, Fields!PhoneNumber.Value, "PhoneList"),",")
    

Dönüştürme İşlevleri

Bir alanı bir veri türünden farklı bir veri türüne dönüştürmek için Visual Basic işlevlerini kullanabilirsiniz. Dönüştürme işlevleri, bir alanın varsayılan veri türünü, hesaplamalar ya da metin birleştirmek için gerekli veri türüne dönüştürmek amacıyla kullanılabilir.

  • Aşağıdaki ifade, 500 sabitini, filtre ifadesi için Değer alanındaki bir Transact-SQL para veri türü ile karşılaştırmak üzere Ondalık türüne dönüştürür. 

    =CDec(500)
    
  • Aşağıdaki ifade, birden fazla değer içeren MySelection parametresi için seçilen değerlerin sayısını görüntüler:

    =CStr(Parameters!MySelection.Count)
    

Karar İşlevleri

  • Iif işlevi, ifadenin doğru olup olmamasına bağlı olarak iki değerden birini döndürür. Aşağıdaki ifade, LineTotal değeri 100'ü geçiyorsa True değerinin Boole değerini döndürmek için Iif işlevini kullanır. Aksi takdirde False değerini döndürür:

    =IIF(Fields!LineTotal.Value > 100, True, False)
    
  • PctComplete değerine bağlı olarak üç değerden birini döndürmek için birden çok IIF işlevini ("iç içe IIF'ler" olarak da bilinir) kullanın. Aşağıdaki ifade, metin kutusunun değerine bağlı olarak arka plan rengini değiştirmek için metin kutusunun dolgu rengine yerleştirilebilir.

    =IIF(Fields!PctComplete.Value >= 10, "Green", IIF(Fields!PctComplete.Value >= 1, "Blue", "Red"))
    

    10 veya daha büyük değerler yeşil bir arka plan ile görüntülenir, 1 – 9 arası değerler mavi arka plan ile görüntülenir ve 1'den düşük değerler kırmızı arka plan ile görüntülenir.

  • Aynı işlevselliği elde etmenin farklı bir yolunda Switch işlevi kullanılır. Switch işlevi, sınanacak üç veya daha çok koşulunuz olduğunda yararlıdır. Switch işlevi, true (doğru) değerini veren bir serideki ilk ifadeyle ilişkili değeri verir.

    =Switch(Fields!PctComplete.Value >= 10, "Green", Fields!PctComplete.Value >= 1, "Blue", Fields!PctComplete.Value = 1, "Yellow", Fields!PctComplete.Value <= 0, "Red",)
    

    10 veya daha büyük değerler yeşil bir arka plan ile görüntülenir, 1 – 9 arası değerler mavi arka plan ile görüntülenir, 1 değeri sarı arka planla görüntülenir ve 0 veya daha düşük değerler kırmızı arka plan ile görüntülenir.

  • ImportantDate alanının değerini sınar ve bir haftadan eskiyse "Kırmızı", değilse "Mavi" döndürür. Bu ifade, bir rapor öğesindeki metin kutusunun Renk özelliğini denetlemek için kullanılabilir:

    =IIF(DateDiff("d",Fields!ImportantDate.Value, Now())>7,"Red","Blue")
    
  • PhoneNumber alanının değerini sınar ve null ise (Visual Basic'de Nothing) "Değer yok", değilse telefon numarası değerini döndürür. Bu ifade, bir rapor öğesindeki metin kutusunun değerini denetlemek için kullanılabilir.

    =IIF(Fields!PhoneNumber.Value Is Nothing,"No Value",Fields!PhoneNumber.Value)
    
  • Department alanının değerini sınar ve bir alt rapor adı veya null (Visual Basic'de Nothing) döndürür. Bu ifade, koşullu detaylandırma alt raporları için kullanılabilir.

    =IIF(Fields!Department.Value = "Development", "EmployeeReport", Nothing)
    
  • Bir alan değerinin boş olup olmadığını sınar. Bu ifade, bir resim rapor öğesinin Hidden özelliğini denetlemek için kullanılabilir. Aşağıdaki örnekte, [LargePhoto] alanı tarafından belirtilen resim, yalnızca alanın değeri boş değilse görüntülenir.

    =IIF(IsNothing(Fields!LargePhoto.Value),True,False)
    

Rapor İşlevleri

İfadede, bir rapordaki verileri kullanan ek rapor işlevlerine başvuru ekleyebilirsiniz. Bu bölümde, bu işlevlerden ikisinin örnekleri sağlanmaktadır. Rapor işlevleri ve örnekleri hakkında daha fazla bilgi için, bkz. Toplama İşlevleri Başvurusu (Rapor Oluşturucusu ve SSRS).

Sum

  • Sum işlevi, bir grup veya bir veri bölgesindeki değerleri toplayabilir. Bu işlev, bir grubun üstbilgi ve altbilgisinde yararlı olabilir. Aşağıdaki ifade, Sipariş grubu veya veri bölgesindeki verilerin toplamını görüntüler.

    =Sum(Fields!LineTotal.Value, "Order")
    
  • Sum işlevini, koşullu toplama hesaplamaları için de kullanabilirsiniz. Örneğin, bir veri kümesi Başlatılmadı, Başlatıldı, Sonlandırıldı olası değerleriyle Durum adında bir alana sahipse, aşağıdaki ifade bir grup üstbilgisine yerleştirildiğinde yalnızca Sonlandırıldı değerinin toplu toplamını hesaplar:

    =Sum(IIF(Fields!State.Value = "Finished", 1, 0))
    

RowNumber

  • RowNumber işlevi bir veri bölgesi içersindeki bir metin kutusunda kullanıldığında, ifadenin görüntülendiği her metin kutusu örneği için satır sayısını görüntüler. Bu işlev, bir tablodaki satırları numaralandırmakta yararlı olabilir. Satır sayısına dayanan sayfa sonları sağlamak gibi daha karmaşık görevler için de yararlı olabilir. Daha fazla bilgi için, bu konudaki Sayfa Sonları konusuna bakın.

    RowNumber için belirttiğiniz kapsam yeniden numaralandırmanın ne zaman başlayacağını denetler. Nothing anahtar sözcüğü, işlevin en son veri bölgesindeki ilk satırdan saymaya başlayacağını gösterir. İç içe veri bölgeleri içersinde sayımı başlatmak için, veri bölgesinin adını kullanın. Bir grup içersindeki sayımı başlatmak için, grubun adını kullanın.

    =RowNumber(Nothing)
    

Rapor Verilerinin Görünümü

Verilerin raporda nasıl görüntülendiği üzerinde çalışmak için ifadeleri kullanabilirsiniz. Örneğin, iki alanın değerini tek bir metin kutusunda görüntüleyebilir, rapor hakkındaki bilgileri görüntüleyebilir veya sayfa sonlarının rapora nasıl eklendiğini etkileyebilirsiniz.

Sayfa Üstbilgileri ve Altbilgileri

Bir rapor tasarlarken, rapor altbilgisinde raporun adını ve sayfa numarasını görüntülemek isteyebilirsiniz. Bunun için aşağıdakileri ifadeleri kullanabilirsiniz:

  • Aşağıdaki ifade, raporun adını ve çalıştırılma zamanını sağlar. Rapor altbilgisi veya raporun gövdesinde bir metin kutusuna yerleştirilebilir. Zaman, kısa tarih için olan .NET Framework biçimlendirme dizesi ile biçimlendirilir:

    =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
    
  • Raporun altbilgisindeki metin kutusuna yerleştirilen aşağıdaki ifade, rapordaki sayfa numarasını ve toplam sayfa sayısını verir:

    =Globals.PageNumber & " of " & Globals.TotalPages
    

Aşağıdaki örneklerde, bir dizin listesinde gördüğünüze benzer olarak, sayfa üstbilgisindeki bir sayfadan ilk ve son değerlerin nasıl görüntüleneceği açıklanmaktadır. Örnekte, LastName adlı bir metin kutusu içeren bir veri bölgesi olduğu varsayılır.

  • Sayfa üstbilgisinin sol tarafındaki metin kutusuna yerleştirilen aşağıdaki ifade, sayfadaki LastName metin kutusunun ilk değerini sağlar:

    =First(ReportItems("LastName").Value)
    
  • Sayfa üstbilgisinin sağ tarafındaki metin kutusuna yerleştirilen aşağıdaki ifade, sayfadaki LastName metin kutusunun son değerini sağlar:

    =Last(ReportItems("LastName").Value)
    

Aşağıdaki örnekte sayfa toplamının nasıl görüntüleneceği açıklanmaktadır. Örnekte, Cost adlı bir metin kutusu içeren bir veri bölgesi olduğu varsayılır.

  • Sayfa üstbilgisine veya altbilgisine yerleştirilen aşağıdaki ifade, sayfadaki Cost metin kutusunda yer alan değerlerin toplamını sağlar:

    =Sum(ReportItems("Cost").Value)
    

[!NOT]

Sayfa üstbilgisi veya altbilgisindeki her ifade için yalnızca bir rapor öğesine başvurabilirsiniz. Ayrıca, sayfa üstbilgi ve altbilgi ifadelerindeki metin kutusu içersinde yer alan gerçek veri ifadesine değil ancak metin kutusu adına başvurabilirsiniz.

Sayfa Sonları

Bazı raporlarda, grup veya rapor öğeleri yerine veya bunlara ek olarak, belirtilen bir satır sayısının sonuna sayfa sonu koymak isteyebilirsiniz. Bunun için, istediğiniz grupları veya detay raporlarını içeren bir grup oluşturun, gruba bir sayfa sonu ekleyin ve gruba belirtilen satır sayısına göre bir grup ifadesi ekleyin.

  • Aşağıdaki ifade grup ifadesine yerleştirildiğinde, her 25 satırlık kümeye bir sayı atar. Grup için bir sayfa sonu tanımlandığında, bu ifade her 25 satırda bir sayfa sonuna yol açar.

    =Ceiling(RowNumber(Nothing)/25)
    

    Kullanıcının sayfa başına satır sayısı için bir değer ayarlamasına izin vermek için, RowsPerPage adında bir parametre oluşturun ve grup ifadesini, aşağıdaki ifadede gösterildiği gibi parametreye dayandırın:

    =Ceiling(RowNumber(Nothing)/Parameters!RowsPerPage.Value)
    

    Grup için sayfa sonları ayarlamak hakkında daha fazla bilgi için, bkz. Sayfa Sonu Ekleme (Rapor Oluşturucusu ve SSRS).

Özellikler

İfadeler yalnızca metin kutularında veri görüntülemek için kullanılmaz. Aynı zamanda özelliklerin rapor öğelerine nasıl uygulandığını değiştirmek için de kullanılabilirler. Bir rapor öğesinin stil bilgilerini veya görünürlüğünü değiştirebilirsiniz.

Biçimlendirme

  • Aşağıdaki ifade, metin kutusunun Color özelliğinde kullanıldığında, Profit alanının değerine bağlı olarak metnin rengini değiştirir:

    =Iif(Fields!Profit.Value < 0, "Red", "Black")
    

    Aynı zamanda Visual Basic nesne değişkeni olan Me değişkenini de kullanabilirsiniz. Bu değişken, metin kutusunun değerine başvurmak için kullanılan başka bir yöntemdir.

    =Iif(Me.Value < 0, "Red", "Black")

  • Aşağıdaki ifade, bir veri bölgesindeki rapor öğesinin BackgroundColor özelliğinde kullanıldığında, her satırın arka plan rengini bir soluk yeşil bir beyaz yapar:

    =Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")
    

    Belirtilen bir kapsam için bir ifade kullanıyorsanız, toplama işlevi için veri kümesini belirtmeniz gerekebilir:

    =Iif(RowNumber("Employees") Mod 2, "PaleGreen", "White")
    

[!NOT]

Kullanılabilir renkler .NET Framework KnownColor numaralandırmasından gelir.

Grafik Renkleri

Bir Şekil grafiği için renk belirtmek üzere özel kod kullanarak renklerin veri noktası değerlerine eşleşme sırasını denetleyebilirsiniz. Bu, aynı kategori gruplarına sahip birden fazla grafik için tutarlı renkler kullanmanıza yardımcı olur. Daha fazla bilgi için bkz. Birden Çok Şekil Grafiği Üzerinde Tutarlı Renkler Belirtme (Rapor Oluşturucusu ve SSRS).

Görünürlük

Rapor öğesinin görünürlük özelliklerini kullanarak bir raporda yer alan öğeleri gösterebilir veya gizleyebilirsiniz. Tablo gibi bir veri bölgesinde, detay satırlarını başta, bir ifadedeki değere dayanarak gizleyebilirsiniz.

  • Aşağıdaki ifade, bir gruptaki detay satırlarının ilk görünürlüğü için kullanıldığında, PctQuota alanında, yüzde 90'u geçen tüm satışların detay satırlarını gösterir:

    =Iif(Fields!PctQuota.Value>.9, False, True)
    
  • Aşağıdaki ifade, tablonun Hidden özelliğinde ayarlandığında, yalnızca 12'den çok satırı varsa tabloyu gösterir:

    =IIF(CountRows()>12,true,false)
    
  • Aşağıdaki ifade, bir sütunun Gizli özelliğinde ayarlandığında, yalnızca veriler veri kaynağından alındıktan sonra alan rapor veri kümesinde varsa sütunu gösterir:

    =IIF(Fields!Column_1.IsMissing, true, false)
    

URL'ler

Rapor verilerini kullanarak URL'leri özelleştirebilir ve ayrıca URL'lerin bir metin kutusu eylemi olarak eklenip eklenmediklerini koşullu olarak denetleyebilirsiniz.

  • Aşağıdaki ifade, eylem olarak veya bir metin kutusunda kullanıldığında, EmployeeID veri kümesi alanını bir URL parametresi olarak tanımlayan özelleştirilmiş bir URL oluşturur.

    ="http://adventure-works/MyInfo?ID=" & Fields!EmployeeID.Value
    

    Daha fazla bilgi için bkz. URL'ye Köprü Ekleme (Rapor Oluşturucusu ve SSRS).

  • Aşağıdaki ifade, metin kutusuna bir URL eklenip eklenmeyeceğini koşullu bir şekilde denetler. Bu ifade, kullanıcının rapora etkin URL ekleyip eklemeyeceğine karar vermesini sağlayan IncludeURLs adlı parametreye dayanır. Bu ifade, metin kutusunda bir eylem olarak ayarlanır. Parametreyi False olarak ayarlayıp, ardından raporu görüntüleyerek raporu köprüler olmadan Microsoft Excel'e verebilirsiniz.

    =IIF(Parameters!IncludeURLs.Value,"http://adventure-works.com/productcatalog",Nothing)
    

Rapor Verileri

İfadeler, raporda kullanılan verilerin üzerinde çalışmak için kullanılabilir. Parametrelere ve diğer rapor bilgilerine başvurabilirsiniz. Rapor için veri almak amacıyla kullanılan sorguyu da değiştirebilirsiniz.

Parametreler

Parametredeki ifadeleri, parametrenin varsayılan değerini değiştirmek için kullanabilirsiniz. Örneğin, raporu çalıştırmak için kullanılan kullanıcı kimliğine dayanarak verilere belirli bir kullanıcı elde etmek üzere filtre uygulamak için bir parametre kullanabilirsiniz.

  • Aşağıdaki ifade, parametre için varsayılan değer olarak kullanıldığında, raporu çalıştıran kişinin kullanıcı kimliğini toplar:

    =User!UserID
    
  • Sorgu parametresi, filtre ifadesi, metin kutusu veya raporun başka bir alanındaki bir parametreye başvurmak için Parameters genel koleksiyonunu kullanın. Bu örnekte, parametrenin adının Department olduğu varsayılmaktadır:

    =Parameters!Department.Value
    
  • Parametreler raporda oluşturulabilir ancak gizli olacak şekilde ayarlanabilir. Rapor, rapor sunucusunda çalıştığında, parametre araç çubuğunda görüntülenmez ve rapor okuyucu varsayılan değeri değiştiremez. Varsayılan bir değeri özel sabit olarak ayarlamak için gizli bir parametre kullanabilirsiniz. Bu değeri, alan ifadesi dahil her türlü ifadede kullanabilirsiniz. Aşağıdaki ifade, ParameterField adlı parametrenin varsayılan değeri tarafından belirtilen alanı tanımlar.

    =Fields(Parameters!ParameterField.Value).Value
    

Özel Kod

Raporda özel kod kullanabilirsiniz. Özel kod ya rapora katılır ya da raporda kullanılan bir özel derlemede saklanır. Özel kod hakkında daha fazla bilgi için bkz. Custom Code in Expressions in Report Designer (SSRS).

  • Aşağıdaki örnek, StandardCost alan değerini Dolar değerine dönüştüren ToUSD adındaki katılmış kod yöntemi çağırır:

    =Code.ToUSD(Fields!StandardCost.Value)
    
  • Aşağıdaki örnekte, bazı özel sabit ve değişkenlerin nasıl tanımlanacağı gösterilmektedir.

    [Visual Basic]

    Public Const MyNote = "Authored by Bob"
    Public Const NCopies As Int32 = 2
    Public Dim  MyVersion As String = "123.456"
    Public Dim MyDoubleVersion As Double = 123.456
    

    Özel sabitler ve değişkenler İfade Düzenleyicisi Sabitleri görünümünde (yalnızca yerleşik sabitleri kullanır), aşağıdaki örneklerde gösterildiği gibi, bunlara herhangi bir ifadeden başvuru ekleyebilirsiniz. Bunlar Değişken olarak değerlendirilir.

    [Visual Basic]

    =Code.MyNote
    =Code.NCopies 
    =Code.MyVersion
    =Code.MyDoubleVersion
    

Özel Toplama İçin Grup Değişkenlerini Kullanma

Belirli bir grup kapsamında yerel olan bir grup değişkeninin değerini başlatabilir ve sonra ifadelerde o değişkene başvuru ekleyebilirsiniz. Grup değişkenini özel kodla kullanma yollarından biri özel toplam uygulamaktır. Daha fazla bilgi için, bkz. Reporting Services 2008'de Özel Toplama İçin Grup Değişkenlerini Kullanma.

Değişkenler hakkında daha fazla bilgi için bkz. Rapor ve Grup Değişkenleri Koleksiyonları Başvuruları (Rapor Oluşturucusu ve SSRS).

Çalışma Zamanında Bir Alandaki Metni Değiştirme

Aşağıdaki örnek, SubCategory.Value içindeki tüm "Bike" sözcüklerini "Bicycle" olarak değiştiren FixSpelling adında katıştırılmış bir yöntemi çağırır:

=Code.FixSpelling(Fields!SubCategory.Value)

Aşağıdaki kod bir rapor tanımına katıldığında, FixSpelling yönteminin uygulanmasını gösterir. Bu örnekte, .NET Framework System.Text.StringBuilder sınıfına nasıl başvuru yapacağınız gösterilmektedir. Daha fazla bilgi için bkz. How to: Add Code to a Report (SSRS).

Public Function FixSpelling(ByVal s As String) As String
   Dim strBuilder As New System.Text.StringBuilder(s)
   If s.Contains("Bike") Then
      strBuilder.Replace("Bike", "Bicycle")
      Return strBuilder.ToString()
      Else : Return s
   End If
End Function

Çalışma Zamanında Boş veya Sıfır Değerleri Bastırma

Bir ifadedeki bazı değerler boş olarak hesaplanabilir veya rapor işleme zamanında tanımsız olabilir. Bu, hesaplanan ifade yerine metin kutusunda #Hata'nın görüntülenmesine neden olan çalışma zamanı hataları oluşturabilir. If-Then-Else deyiminin tersine, true veya false sınaması yapan rutine geçirilmeden önce IIF deyiminin her parçası hesaplandığından (işlev çağrıları dahil), IIF işlevi özellikle bu davranışa karşı hassastır. Fields!Sales.Value NOTHING ise =IIF(Fields!Sales.Value is NOTHING, 0, Fields!Sales.Value) deyimi oluşturulan raporda #Hata verir.

Bu koşuldan kaçınmak için, aşağıdaki stratejilerden birini seçin:

  • B alanının değeri 0 veya tanımsız ise, payı 0 ve paydayı 1 olarak ayarlayın; aksi takdirde, payı A alanının değerine ve paydayı B alanının değerine ayarlayın.

    =IIF(Field!B.Value=0, 0, Field!A.Value / IIF(Field!B.Value =0, 1, Field!B.Value))
    
  • İfade için değeri döndürmek üzere bir özel kod işlevi kullanın. Aşağıdaki örnek geçerli değer ile önceki değer arasındaki yüzde farkını döndürür. Bu, iki ardışık değer arasındaki farkı hesaplamak için kullanılır ve ilk karşılaştırmanın uç durumunu (önceki değerin olmaması durumu) ve önceki değerin ya da geçerli değerin null olduğu (Visual Basic içinde Nothing) durumları işler.

    Public Function GetDeltaPercentage(ByVal PreviousValue, ByVal CurrentValue) As Object
        If IsNothing(PreviousValue) OR IsNothing(CurrentValue) Then
            Return Nothing
        Else if PreviousValue = 0 OR CurrentValue = 0 Then
            Return Nothing
        Else 
            Return (CurrentValue - PreviousValue) / CurrentValue
        End If
    End Function
    

    Aşağıdaki ifadede, bu özel kodun metin kutusundan nasıl çağrılacağı gösterilmektedir:

    =Code.GetDeltaPercentage(Previous(Sum(Fields!Sales.Value),"ColumnGroupByYear"), Sum(Fields!Sales.Value))
    

    Bu ifade, çalışma zamanı özel durumlarına engel olunmasına yardımcı olur. Değerlerin 0'dan büyük veya küçük olmasına bağlı olarak metni koşullu olarak görüntülemek için, artık metin kutusunun Color özelliğinde =IIF(Me.Value < 0, "red", "black") gibi bir ifade kullanabilirsiniz.

Ayrıca bkz.

Kavramlar

Filtre Denklemi Örnekleri (Rapor Oluşturucusu ve SSRS)

Grup İfadesi Örnekleri (Rapor Oluşturucusu ve SSRS)

Raporlarda İfade Kullanımı (Rapor Oluşturucusu ve SSRS)

İfadeler (Rapor Oluşturucusu ve SSRS)

Tek Değer ve Birden Fazla Değer İçeren Parametreler (Rapor Oluşturucusu ve SSRS)