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.
Şunlar için geçerlidir: SQL Server Veri Araçları'nda Microsoft Rapor Oluşturucusu (SSRS)
Power BI Rapor Oluşturucusu
Rapor Tasarımcısı
İfadeler, içeriği ve rapor görünümünü denetlemek için sayfalandırılmış raporlarda sık sık kullanılır. İfadeler Microsoft Visual Basic'te yazılır ve yerleşik işlevleri, özel kodu, rapor ve grup değişkenlerini 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. Sayfalandırılmış raporlarda ifade kullanımları (Rapor Oluşturucusu) ve Sayfalandırılmış rapora ifade ekleme (Rapor Oluşturucusu).
Önemli
RDL Korumalı Alanı etkinleştirildiğinde, rapor yayımlama zamanında ifade metninde yalnızca belirli türleri ve üyeleri kullanabilirsiniz. Daha fazla bilgi için bkz. SharePoint entegre modunda Reporting Services için RDL sandboxing'i etkinleştirme ve devre dışı bırakma.
Belirli kullanımlara yönelik ifade örnekleri için aşağıdaki makalelere bakın:
Sayfalandırılmış raporlarda grup ifadesi örnekleri (Rapor Oluşturucusu)
Sayfalandırılmış rapordaki denklem örneklerini filtreleme (Rapor Oluşturucusu)
Sayfalandırılmış raporda yaygın olarak kullanılan filtreler (Rapor Oluşturucusu)
Sayfalandırılmış raporda rapor ve grup değişkenleri referansları (Rapor Oluşturucusu)
İfadeleri kullanabileceğiniz basit ve karmaşık ifadeler ve ifadeye ekleyebileceğiniz başvuru türleri hakkında daha fazla bilgi için sayfalandırılmış rapordaki ifadeler (Rapor Oluşturucusu) altındaki makalelere bakın. İfadelerin toplamaları hesaplamak için değerlendirildiği bağlam hakkında daha fazla bilgi için bkz. Sayfalandırılmış rapordaki (Rapor Oluşturucusu) toplamlar, toplamalar ve yerleşik koleksiyonlar için ifade kapsamı.
Bu makaledeki ifade örnekleri tarafından da kullanılan işlevlerin ve işleçlerin birçoğunun kullanıldığı ifadelerin nasıl yazıldığını öğrenmek için bkz . Öğretici: İfadeleri tanıtma.
Functions
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ışma zamanı kitaplığındaki ve Convert ve Math ad alanlarının işlevlerini kullanan ifadeler yazabilirsiniz. Diğer derlemelerden veya özel koddan işlevlere başvurular ekleyebilirsiniz. Ayrıca, dahil olmak üzere System.Text.RegularExpressionsMicrosoft .NET Framework sınıflarını da kullanabilirsiniz.
Visual Basic işlevleri
Metin kutularında veya parametrelerinizde, özelliklerinizde veya raporunuzun diğer alanlarında görüntülenen verileri işlemek için Visual Basic işlevlerini kullanabilirsiniz. Bu bölümde, bu işlevlerden bazılarını gösteren örnekler verilmiştir. Daha fazla bilgi için bkz. Visual Basic çalışma zamanı kitaplık üyeleri.
.NET Framework, örneğin belirli tarih biçimleri için birçok özel biçim seçeneği sağlar.
Matematik İşlevleri
Round işlevi sayıları en yakın tamsayıya yuvarlamada kullanışlıdır. Aşağıdaki ifade 1,3'i 1'e yuvarlar:
= Round(1.3)Bir değeri, Excel'deki MRound işlevine benzer şekilde belirttiğiniz bir katına yuvarlayan bir ifade de yazabilirsiniz. Bu işlevle, bir değeri tamsayı oluşturan bir faktörle çarpabilir, sayıyı yuvarlayabilir ve sonra aynı faktöre bölebilirsiniz. Örneğin, 1,3'ün 0,2'nin (1,4) en yakın katına yuvarlamasını sağlamak için aşağıdaki ifadeyi kullanın:
= Round(1.3*5)/5
Tarih işlevleri
Today işlevi geçerli tarihi sağlar. Bu ifade, rapordaki tarihi görüntülemek için bir metin kutusunda veya geçerli tarihe göre verileri filtrelemek için bir parametrede kullanılabilir:
=Today()Tarihin belirli bir bölümünü çekmek için DateInterval işlevini kullanın. Bazı geçerli DateInterval parametreleri şunlardır:
DateInterval.Second
DateInterval.Minute
DateInterval.Hour
DateInterval.Weekday
DateInterval.Day
DateInterval.DayOfYear
DateInterval.WeekOfYear
DateInterval.Month
DateInterval.Quarter
DateInterval.Year
Örneğin, bu ifade bugünün tarihi için geçerli yılın hafta sayısını gösterir:
=DatePart(DateInterval.WeekOfYear, today())
DateAdd işlevi, tek bir parametreyi temel alan bir tarih aralığı sağlamak için kullanışlıdır. Aşağıdaki ifade, StartDate adlı bir parametreden alınan tarihten altı ay sonrasına ait bir tarih verir:
=DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)Year işlevi, belirli bir tarihin yılını görüntüler. Bu işlevi, tarihleri birlikte gruplandırmak veya yılı bir tarih kümesi etiketi olarak görüntülemek için kullanabilirsiniz. Bu ifade, belirli bir satış siparişi tarihleri grubunun yılını sağlar. Month işlevi ve diğer işlevler tarihleri işlemek için de kullanılabilir:
=Year(Fields!OrderDate.Value)Biçimi özelleştirmek için bir ifadedeki işlevleri birleştirebilirsiniz. Aşağıdaki ifade, ay-gün-yıl biçimindeki bir tarihin biçimini ay-hafta-hafta numarası olarak değiştirir. Örneğin,
12/23/2009ileDecember Week 3:=Format(Fields!MyDate.Value, "MMMM") & " Week " & (Int(DateDiff("d", DateSerial(Year(Fields!MyDate.Value), Month(Fields!MyDate.Value),1), Fields!FullDateAlternateKey.Value)/7)+1).ToStringBir veri kümesinde hesaplanan alan olarak kullanıldığında, her ay içindeki değerleri haftalık olarak toplamak için grafikte bu ifadeyi kullanabilirsiniz.
Aşağıdaki ifade SellStartDate değerini MMM-YY olarak biçimlendiriyor. SellStartDate alanı bir Datetime veri türüdür:
=FORMAT(Fields!SellStartDate.Value, "MMM-yy")Aşağıdaki ifade SellStartDate değerini gg/AA/yyyy olarak biçimlendiriyor. SellStartDate alanı bir Datetime veri türüdür:
=FORMAT(Fields!SellStartDate.Value, "dd/MM/yyyy")CDate işlevi değeri bir tarihe dönüştürür. Now işlevi, sisteminize göre geçerli tarih ve saati içeren bir Tarih değeri döndürür. DateDiff , iki Tarih değeri arasındaki zaman aralıklarının sayısını belirten bir Long değeri döndürür.
Aşağıdaki örnek geçerli yılın başlangıç tarihini görüntüler:
=DateAdd(DateInterval.Year,DateDiff(DateInterval.Year,CDate("01/01/1900"),Now()),CDate("01/01/1900"))Aşağıdaki örnek, geçerli aya göre önceki ayın başlangıç tarihini görüntüler:
=DateAdd(DateInterval.Month,DateDiff(DateInterval.Month,CDate("01/01/1900"),Now())-1,CDate("01/01/1900"))Aşağıdaki ifade SellStartDate ile LastReceiptDate arasındaki aralık yıllarını oluşturur. Bu alanlar DataSet1 ve DataSet2 olarak iki farklı veri kümesinde yer alır. Rapor Oluşturucusu işlevleri - Sayfalandırılmış rapordaki (Rapor Oluşturucusu) ilk işlev( toplama işlevidir), DataSet1'de SellStartDate değerinin ilk değerini ve DataSet2'de LastReceiptDate'ın ilk değerini döndürür:
=DATEDIFF("yyyy", First(Fields!SellStartDate.Value, "DataSet1"), First(Fields!LastReceiptDate.Value, "DataSet2"))DatePart işlevi, belirli bir Date değerinin belirtilen bileşenini içeren bir Tamsayı değeri döndürür. Aşağıdaki ifade, DataSet1'deki SellStartDate değerinin ilk değerinin yılını döndürür. Raporda birden çok veri kümesi olduğundan veri kümesi kapsamı belirtilir:
=Datepart("yyyy", First(Fields!SellStartDate.Value, "DataSet1"))DateSerial işlevi, belirtilen yıl, ay ve günü temsil eden bir Tarih değeri döndürür ve saat bilgileri gece yarısı olarak ayarlanır. Aşağıdaki örnek, geçerli aya göre önceki ayın bitiş tarihini görüntüler:
=DateSerial(Year(Now()), Month(Now()), "1").AddDays(-1)Aşağıdaki ifadeler, kullanıcı tarafından seçilen tarih parametresi değerine göre çeşitli tarihleri görüntüler:
| Örnek Açıklama | Example |
|---|---|
| Dün | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-1) |
| İki Gün Önce | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-2) |
| Bir Ay Önce | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-1,Day(Parameters!TodaysDate.Value)) |
| İki Ay Önce | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-2,Day(Parameters!TodaysDate.Value)) |
| Bir Yıl Önce | =DateSerial(Year(Parameters!TodaysDate.Value)-1,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)) |
| İki Yıl Önce | =DateSerial(Year(Parameters!TodaysDate.Value)-2,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)) |
Dize işlevleri
Birleştirme işleçlerini ve Visual Basic sabitlerini kullanarak birden fazla alanı birleştirin. Aşağıdaki ifade, her birinin aynı metin kutusunda ayrı bir satırda yer alan iki alan döndürür:
=Fields!FirstName.Value & vbCrLf & Fields!LastName.ValueFormat işleviyle bir dizedeki tarihleri ve sayıları 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 bir tarih veya sayı içeriyorsa, metin kutusunun içindeki Biçim işlevi yerine biçimlendirme uygulamak için metin kutusunun Format özelliğini kullanmanız gerekir.
Right, Len ve InStr işlevleri, bir alt dizeyi döndürmek için kullanışlıdır; örneğin, kırpma yalnızca kullanıcı adıyla yapılır
DOMAIN\username. Aşağıdaki ifade, dizenin User adlı bir parametreden ters eğik çizgi (\) karakterinin sağındaki bölümü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 String sınıfının üyelerini kullanarak öncekiyle aynı değere neden olur:
=Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)Birden çok değerli parametreden seçilen değerleri görüntüleme. Aşağıdaki örnek, 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)Aşağıdaki örnek, önceki örnekle aynı işlemi yapar ve seçili değerler listesinden önce bir metin dizesi görüntüler:
="Report for " & JOIN(Parameters!MySelection.Value, " & ")işlevleri, telefon numarasını biçimlendirme gibi mevcut dizelerin biçimini değiştirmek için kullanışlıdır. Aşağıdaki ifade, bir alandaki telefon numarasının biçimini "nnn-nnn-nnnn" yerine "(n) nnn-nn" olarak değiştirmek için Replace işlevini kullanır:
=System.Text.RegularExpressions.Regex.Replace(Fields!Phone.Value, "(\d{3})[ -.]*(\d{3})[ -.]*(\d{4})", "($1) $2-$3")Uyarı
Alanlar için değerin doğrulandığını doğrulayın! Phone.Value'de fazladan boşluk yoktur ve türündedir String.
Arama Listesi
Anahtar alanı belirterek, arama işlevini kullanarak bire bir ilişki (örneğin, anahtar-değer çifti) için bir veri kümesinden değer alabilirsiniz. Aşağıdaki ifade, eşleşmesi gereken ürün tanımlayıcısı verilip Product adlı bir veri kümesindeki ürün adını görüntüler:
=Lookup(Fields!PID.Value, Fields!ProductID.Value, Fields!ProductName.Value, "Product")
LookupSet
Anahtar alanı belirterek LookupSet işlevini kullanarak bire çok ilişkisi için bir veri kümesinden değer kümesi alabilirsiniz. Ö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önüş değerlerini tek bir dizede birleştirir ve ContactID tarafından 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 işlevleri
Visual Basic işlevlerini kullanarak bir alanı bir veri türünden farklı bir veri türüne dönüştürebilirsiniz. Bir alanın varsayılan veri türünü hesaplamalar için gereken veri türüne dönüştürmek veya metni birleştirmek için dönüştürme işlevlerini kullanabilirsiniz.
Aşağıdaki ifade, filtre ifadesinin Değer alanındaki Transact-SQL para veri türüyle karşılaştırmak için 500 sabitini Ondalık türüne dönüştürür:
=CDec(500)Aşağıdaki ifade , MySelection çok değerli parametresi için seçilen değerlerin sayısını görüntüler:
=CStr(Parameters!MySelection.Count)
Karar işlevleri
IIF işlevi, ifadenin doğru olup olmadığına bağlı olarak iki değerden birini döndürür. Aşağıdaki ifade, LineTotal değeri 100'ü aşarsa "True" 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)Birden çok IIF işlevi (aynı zamanda "iç içe IIF deyimleri" olarak da bilinir) kullanarak PctComplete değerine bağlı olarak üç değerden birini döndürün. Aşağıdaki ifade, metin kutusundaki değere 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'dan büyük veya 10'a eşit değerler yeşil arka planla görüntülenir. Bir ile dokuz arasındaki değerler mavi arka planla görüntülenir. birden küçük değerler kırmızı arka plan ile gösterilir.
Aynı işlevi elde etmenin farklı bir yolu Switch işlevini kullanır. Switch işlevi, test etmek için üç veya daha fazla koşulunuz olduğunda kullanışlıdır. Switch işlevi, DOĞRU olarak değerlendirilen bir serideki ilk ifadeyle ilişkili değeri döndürür:
=Switch(Fields!PctComplete.Value >= 10, "Green", Fields!PctComplete.Value >= 1, "Blue", Fields!PctComplete.Value = 1, "Yellow", Fields!PctComplete.Value <= 0, "Red")10'dan büyük veya 10'a eşit değerler yeşil arka planla görüntülenir. Bir ile dokuz arasındaki değerler mavi bir arka planla görüntülenir. Sarı arka planlı bir ekrana eşit değerler. 0 veya daha az değerler kırmızı arka plan ile görüntülenir.
ImportantDate alanının değerini test edin ve bir haftadan eskiyse "Kırmızı" değerini, değilse "Mavi" değerini döndür. Bu ifade, bir rapor öğesindeki metin kutusunun Color özelliğini denetlemek için kullanılabilir:
=IIF(DateDiff("d",Fields!ImportantDate.Value, Now())>7,"Red","Blue")PhoneNumber alanının değerini test edin ve Visual Basic'te Nothing adlı null bir değerse "Değer Yok" değerini döndürür. Aksi takdirde, telefon numarası değerini geri döndürün. 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 test edin ve bir alt rapor adı veya Visual Basic'te Nothing olarak adlandırılan bir null değer döndürün. Bu ifade, koşullu detaylandırma alt raporları için kullanılabilir:
=IIF(Fields!Department.Value = "Development", "EmployeeReport", Nothing)Alan değerinin null değer olup olmadığını test edin. Bu ifade, bir görüntü rapor öğesinin Hidden özelliğini denetlemek için kullanılabilir. Aşağıdaki örnekte, LargePhoto alanı tarafından belirtilen görüntü yalnızca alanın değeri null değer değilse görüntülenir:
=IIF(IsNothing(Fields!LargePhoto.Value),True,False)MonthName işlevi, belirtilen ayın adını içeren bir dize değeri döndürür. Aşağıdaki örnekte, alan 0 değerini içerdiğinde Ay alanında NA görüntülenir:
IIF(Fields!Month.Value=0,"NA",MonthName(IIF(Fields!Month.Value=0,1,Fields!Month.Value)))
Rapor işlevleri
İfadede, bir rapordaki verileri işleyen daha fazla rapor işlevine başvuru ekleyebilirsiniz. Bu bölümde, bu işlevlerden ikisi için örnekler sağlanmaktadır. Rapor işlevleri ve örnekleri hakkında daha fazla bilgi için bkz. Rapor Oluşturucusu işlevleri - sayfalandırılmış raporlarda toplama işlevleri başvurusu (Rapor Oluşturucusu).
Toplam
Sum işlevi, bir grup veya veri bölgesindeki değerleri toplayabilir. Bu işlev, bir grubun üst bilgisinde veya alt bilgisinde yararlı olabilir. Aşağıdaki ifade, Sipariş grubu veya veri bölgesindeki verilerin toplamını görüntüler:
=Sum(Fields!LineTotal.Value, "Order")Koşullu toplama hesaplamaları için Sum işlevini de kullanabilirsiniz. Örneğin, Durum adlı bir alanı olan bir veri kümeniz olduğunu ve bu alan için olası değerlerin Başlamadı, Başladı ve Bitti olduğunu düşünün. Aşağıdaki ifade, bir grup üst bilgisine yerleştirildiğinde yalnızca Tamamlanan değer için toplamı hesaplar:
=Sum(IIF(Fields!State.Value = "Finished", 1, 0))
SatırSayısı
RowNumber işlevi, veri bölgesindeki bir metin kutusunda kullanıldığında, ifadenin görüntülendiği metin kutusunun her örneğinin satır numarasını görüntüler. Bu işlev, tablodaki satırları numaralandırmak için yararlı olabilir. Satır sayısına göre sayfa sonları sağlama gibi daha karmaşık görevler için de yararlı olabilir. Daha fazla bilgi için bkz. Sayfa sonları.
RowNumber için belirttiğiniz kapsam, yeniden numaralandırma başladığında denetler. Nothing anahtar sözcüğü, işlevin en dıştaki veri bölgesindeki ilk satırda saymaya başladığını gösterir. İç içe veri bölgelerinde saymaya başlamak için veri bölgesinin adını kullanın. Bir grup içinde saymaya başlamak için grubun adını kullanın:
=RowNumber(Nothing)
Rapor verilerinin görünümü
Verilerin raporda nasıl görüneceğini değiştirmek için ifadeleri kullanabilirsiniz. Örneğin, iki alanın değerlerini tek bir metin kutusunda görüntüleyebilir, rapor hakkındaki bilgileri görüntüleyebilir veya sayfa sonlarının rapora nasıl ekleneceğini etkileyebilirsiniz.
Sayfa üst bilgileri ve alt bilgileri
Rapor tasarlarken, raporun adını ve sayfa numarasını rapor alt bilgisinde görüntülemek isteyebilirsiniz. Aşağıdaki ifadeleri kullanabilirsiniz:
Aşağıdaki ifade, raporun adını ve çalıştırıldığı zamanı sağlar. Rapor alt bilgisindeki veya raporun gövdesindeki bir metin kutusuna yerleştirilebilir. Saat, kısa tarih için .NET Framework biçimlendirme dizesiyle biçimlendirilir:
=Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")Raporun alt bilgisindeki metin kutusuna yerleştirilen aşağıdaki ifade, rapordaki sayfa numarasını ve toplam sayfaları sağlar:
=Globals.PageNumber & " of " & Globals.TotalPages
Aşağıdaki örneklerde, bir dizin listesinde bulabileceğinize benzer şekilde, sayfa üst bilgisindeki 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 üst bilgisinin sol tarafındaki bir metin kutusuna yerleştirilen aşağıdaki ifade, sayfadaki LastName metin kutusunun ilk değerini sağlar:
=First(ReportItems("LastName").Value)Sayfa üst bilgisinin sağ tarafındaki bir 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ı görüntüleme açıklanmaktadır. Örnekte Maliyet adlı bir metin kutusu içeren bir veri bölgesi olduğu varsayılır. Bu ifadeyi sayfa üst bilgisine veya alt bilgisine yerleştirdiğinizde, sayfanın Maliyet metin kutusundaki değerlerin toplamını sağlar:
=Sum(ReportItems("Cost").Value)
Uyarı
Sayfa üst bilgisinde veya alt bilgisinde ifade başına yalnızca bir rapor öğesine başvurabilirsiniz. Ayrıca, sayfa üst bilgisi ve alt bilgi ifadelerinde metin kutusu adına başvurabilirsiniz ancak metin kutusunun içindeki gerçek veri ifadesine başvuramayın.
Sayfa sonları
Bazı raporlarda, grup veya rapor öğeleri yerine veya bunlara ek olarak belirtilen sayıda satırın sonuna sayfa sonu yerleştirmek isteyebilirsiniz. İstediğiniz grupları veya ayrıntı kayıtlarını içeren bir grup oluşturun. Gruba sayfa sonu ekleyin ve ardından belirtilen sayıda satıra göre gruplandırmak için bir grup ifadesi ekleyin.
Aşağıdaki ifade, grup ifadesine yerleştirildiğinde her 25 satır kümesine bir sayı atar. Grup için bir sayfa sonu tanımlandığında, bu ifade her 25 satırda bir sayfa sonuyla sonuçlanır:
=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 adlı bir parametre oluşturun ve aşağıdaki ifadede gösterildiği gibi grup ifadesini parametresine dayandırın:
=Ceiling(RowNumber(Nothing)/Parameters!RowsPerPage.Value)Bir grup için sayfa sonları ayarlama hakkında daha fazla bilgi için bkz. Sayfalandırılmış rapora sayfa sonu ekleme (Rapor Oluşturucusu).
Özellikler
İfadeler yalnızca metin kutularındaki verileri görüntülemek için kullanılmaz. Bunlar, özelliklerin rapor öğelerine uygulanma biçimini değiştirmek için de kullanılabilir. Rapor öğesinin stil bilgilerini veya görünürlüğünü değiştirebilirsiniz.
Formatting
Aşağıdaki ifade, bir 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")Visual Basic nesne değişkenini
Mede kullanabilirsiniz. Bu değişken, metin kutusunun değerine başvurmanın başka bir yoludur.=Iif(Me.Value < 0, "Red", "Black")Aşağıdaki ifade, veri bölgesindeki bir rapor öğesinin BackgroundColor özelliğinde kullanıldığında, her satırın arka plan rengini soluk yeşil ve beyaz arasında değiştirmektedir:
=Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")Belirtilen 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")
Uyarı
Kullanılabilir renkler .NET Framework KnownColor numaralandırmasından gelir.
Grafik renkleri
Şekil grafiğinin renklerini belirtmek için, renklerin veri noktası değerleriyle eşlenmesi sırasını denetlemek için özel kod kullanabilirsiniz. Bu özel kod, aynı kategori gruplarına sahip birden çok grafik için tutarlı renkler kullanmanıza yardımcı olur. Daha fazla bilgi için bkz. Sayfalandırılmış raporda (Rapor Oluşturucusu) birden çok şekil grafiğinde tutarlı renkler belirtme.
Görünürlük
Rapor öğesinin görünürlük özelliklerini kullanarak rapordaki öğeleri gösterebilir ve gizleyebilirsiniz. Tablo gibi bir veri bölgesinde, başlangıçta ifadedeki değere göre ayrıntı satırlarını gizleyebilirsiniz.
Aşağıdaki ifade, bir gruptaki ayrıntı satırlarının ilk görünürlüğü için kullanıldığında, PctQuota alanında tüm satışların yüzde 90'ı aşan ayrıntı satırlarını gösterir:
=Iif(Fields!PctQuota.Value>.9, False, True)Aşağıdaki ifade, tablonun Hidden özelliğinde ayarlandığında tabloyu yalnızca 12'den fazla satırı varsa gösterir:
=IIF(CountRows()>12,false,true)Aşağıdaki ifade, bir sütunun Hidden özelliğinde ayarlandığında sütunu yalnızca veri kaynağından veri alındıktan sonra rapor veri kümesinde alanın mevcut olması durumunda 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 için eylem olarak eklenip eklenmeyeceğini koşullu olarak denetleyebilirsiniz.
Aşağıdaki ifade, bir metin kutusunda eylem olarak kullanıldığında EmployeeID veri kümesi alanını URL parametresi olarak belirten özelleştirilmiş bir URL oluşturur:
="https://contoso/MyInfo?ID=" & Fields!EmployeeID.ValueDaha fazla bilgi için bkz. Sayfalandırılmış raporda URL'ye köprü ekleme (Rapor Oluşturucusu).
Aşağıdaki ifade, metin kutusuna URL eklenip eklenmeyeceğini koşullu olarak denetler. Bu ifade, kullanıcının rapora etkin URL'ler ekleyip eklemeyeceğine karar vermesine olanak tanıyan IncludeURL'ler adlı bir parametreye bağlıdır. Bu ifade, metin kutusunda eylem olarak ayarlanır. Parametreyi YANLIŞ olarak ayarlayıp raporu görüntüleyerek Microsoft Excel raporunu köprü olmadan dışarı aktarabilirsiniz:
=IIF(Parameters!IncludeURLs.Value,"https://contoso.com/productcatalog",Nothing)
Rapor verileri
İfadeler, raporda kullanılan verileri işlemek için kullanılabilir. Parametrelere ve diğer rapor bilgilerine başvurabilirsiniz. Raporun verilerini almak için kullanılan sorguyu bile değiştirebilirsiniz.
Parametreler
Parametrenin varsayılan değerini değiştirmek için bir parametredeki ifadeleri kullanabilirsiniz. Örneğin, belirli bir kullanıcıya raporu çalıştırmak için kullanılan kullanıcı kimliğine göre verileri filtrelemek için bir parametre kullanabilirsiniz.
Aşağıdaki ifade, bir parametre için varsayılan değer olarak kullanıldığında raporu çalıştıran kişinin kullanıcı kimliğini toplar:
=User!UserIDSorgu parametresi, filtre ifadesi, metin kutusu veya raporun başka bir alanındaki parametreye başvurmak için Parametreler genel koleksiyonunu kullanın. Bu örnekte parametresinin Department olarak adlandırıldığını varsayar:
=Parameters!Department.ValueParametreler raporda oluşturulabilir ancak gizli olarak ayarlanabilir. Rapor rapor sunucusunda çalıştığında, parametre araç çubuğunda görünmez ve rapor okuyucu varsayılan değeri değiştiremez. Özel sabit olarak varsayılan değere ayarlanmış bir gizli parametre kullanabilirsiniz. Bu değeri alan ifadesi de dahil olmak üzere herhangi bir ifadede kullanabilirsiniz. Aşağıdaki ifade ParameterField adlı parametre için varsayılan parametre değeri tarafından belirtilen alanı tanımlar:
=Fields(Parameters!ParameterField.Value).Value
Özel kod
Raporda özel kod kullanabilirsiniz. Özel kod bir rapora eklenir veya raporda kullanılan özel bir derlemede depolanır. Özel kod hakkında daha fazla bilgi için bkz. Rapor Tasarımcısı'nda (SSRS) sayfalandırılmış rapordaki ifadelerde özel kod ve derleme başvuruları.
Özel toplama için grup değişkenlerini kullanma
Belirli bir grup kapsamı için yerel olan bir grup değişkeninin değerini başlatabilir ve ardından ifadelere bu değişkene bir başvuru ekleyebilirsiniz. Bir grup değişkenini özel kodla kullanmanın yollarından biri, özel bir toplama uygulamaktır. Daha fazla bilgi için bkz. Özel toplama için Reporting Services 2008'de grup değişkenlerini kullanma.
Değişkenler hakkında daha fazla bilgi için Sayfalandırılmış raporda rapor ve grup değişkenleri başvuruları (Rapor Oluşturucusu) bölümüne bakın.
Çalışma zamanında null veya sıfır değerlerini bastır.
İfadedeki bazı değerler, rapor işleme zamanında null veya tanımsız olarak değerlendirilebilir. Bu değerler, değerlendirilen ifade yerine metin kutusunda "#Error" görüntülenmesine neden olan çalışma zamanı hataları oluşturabilir.
IIF işlevi bu davranışa duyarlıdır. If-Then-Else deyiminden farklı olarak, DOĞRU veya YANLIŞ'ı test eden yordama geçirilmeden önce, işlev çağrıları dahil olmak üzere IIF deyiminin her bölümü değerlendirilir.
=IIF(Fields!Sales.Value is NOTHING, 0, Fields!Sales.Value) ifadesi, Fields!Sales.Value bir Nothing değeri olduğunda işlenen raporda "#Error" üretir.
Bu koşulu önlemek için aşağıdaki stratejilerden birini kullanın:
Eğer B alanının değeri 0 veya tanımlanmamışsa, 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))İfadenin değerini döndürmek için özel bir kod işlevi kullanın. Aşağıdaki örnek, geçerli değerle önceki değer arasındaki yüzde farkını döndürür. Bu değer, ardışık iki değer arasındaki farkı hesaplamak için kullanılabilir. Uç değer olmadığında ilk karşılaştırma durumunu ele alır ve önceki ya da geçerli değerin Visual Basic'te Nothing olarak adlandırılan null bir değer olması durumu için çalışır.
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 FunctionAşağıdaki ifadede, "ColumnGroupByYear" kapsayıcısı, bir grup veya veri bölgesi için bir metin kutusundan bu özel kodun nasıl çağrılacakları gösterilmektedir:
=Code.GetDeltaPercentage(Previous(Sum(Fields!Sales.Value),"ColumnGroupByYear"), Sum(Fields!Sales.Value))Bu kod, çalışma zamanı özel durumlarını önlemeye yardımcı olur. Artık metin kutusunun
=IIF(Me.Value < 0, "red", "black")özelliğindeki gibi bir ifade kullanarak değerlerin 0'dan büyük veya küçük olmasına bağlı olarak metni koşullu olarak görüntüleyebilirsiniz.