Share via


Ifade örnekleri (Reporting Services)

İfadeler sık sık raporlarda, içerik ve rapor görünümünü kontrol etmek için kullanılır.Expressions are written in Microsoft Visual Basic, and can use built-in functions, custom code, global variables, report and group variables, and user-defined variables.

Bu konu, bir raporda, ortak görevleri için kullanılan ifade örnekleri içermektedir.

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

  • Rapor işlevleri   Toplamları ve diğer yerleşik rapor işlevleri örnekleri.

  • Rapor verilerini görünümü   Örnekler, bir rapor görünümünü değiştirmek için.

  • Ö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ımlar için ifade örnekleri için aşağıdaki konulara bakın:

Burada, ifadeler ve bir ifade içerebilir başvuruları türlerini kullanabilirsiniz, basit ve karmaşık ifadeler hakkında daha fazla bilgi için altında konularına bakın... Rapor İfadeleriyle Çalışma. Ifadeler toplamları hesaplamak için değerlendirilme içerik hakkında daha fazla bilgi için bkz: Toplamlar ve (Reporting Services) diğer Aggregates hesaplanıyor.

Buna ek olarak, ifade Düzenleyicisi hiyerarşik görünümünü yerleşik işlevler içerir.Bir kod örneği, işlev seçtiğinizde, değerleri bölmesinde görüntülenir.Daha fazla bilgi için bkz: İfade İletişim Kutusu.

İş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.You can write expressions that use functions from the Microsoft Visual Basic run-time library, and from the Convert and Math namespaces.İşlevlere diğer derlemelerden veya özel koddan başvuru ekleyebilirsiniz.You can also use classes from the Microsoft .NET Framework, including RegularExpressions.Daha fazla bilgi için Visual Basicişlevler, msdn.microsoft.com "Visual Basic çalışma zamanı kitaplığı" konusuna bakın.

The .NET Framework provides many ways to specify custom formats, for example, for specific tarih formats. Daha fazla bilgi için bkz: Biçimlendirme türleri msdn.

Visual Basic İşlevleri

Kullanabileceğiniz Visual Basic metin kutularında görüntülenir veya parametreleri, özelliklerini ve diğer alanları raporun kullanılan verileri işlemek için işlevler'ı tıklatın. Bu bölüm, bu işlevlerin bazılarını gösteren örnekler sağlar.Bu örneklerde belirtin. Visual Basic Numaralandırma değerleri olarak sabitler DateInterval.Month. Bu değerleri için ıntellisense deyim Düzenleyicisi desteklemez, ancak bunlar bir ifade doğru derleyin.

Daha fazla bilgi için Visual Basic işlevler, bkz: Visual Basic belgeleri.

Tarih İşlevleri

  • The Today işlev provides the current tarih. 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()
    
  • The DateAdd işlev is useful for supplying a aralık of dates based on a single parameter. Aşağıdaki ifade türünde bir parametre tarihinden sonra altı ayda bir tarih sağlar. DateTime adlı StartDate.

    =DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
    
  • The Year işlev displays the year for a particular tarih. 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.The Month işlev and other functions can also be used to manipulate dates. Daha fazla bilgi için bkz: Visual Basic belgeleri.

    =Year(Fields!OrderDate.Value)
    

Dize İşlevleri

  • Birden fazla alan birleşik bağ kümeleri) işleçlerini kullanarak birleştirin ve Visual Basic sabitler. 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 
    
  • Tarihleri ve sayıları ile bir dize biçimi Format işlev. Aşağıdaki ifade değerlerini görüntüler StartDate ve EndDate Parametreler, uzun tarih biçimi:

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

    Metin kutusunu, yalnızca bir tarih veya sayı içeriyorsa, kullanmanız gereken Format özellik, yerine biçimlendirmeyi uygulamak için metin kutusunun Format metin kutusunun içindeki işlev.

  • The Right, Len, and InStr functions are useful for returning a substring, for example, trimming etki alanı\username to just the user name.Aşağıdaki ifade kısmını verir dize için adlandırılmış bir parametre bir ters eğik çizgi (\) karakter sağdan User:

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

    The following expression results in the same value as the previous one, using members of the .NET FrameworkString class instead of Visual Basic functions:

    =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 örnek Join Seçili parametre değerlerini art arda bağlamak için fonksiyon MySelection tek bir dize halinde küme değeri için bir metin kutusunun bir rapor öğesindeki ifade olarak:

    = Join(Parameters!MySelection.Value)
    
  • The Regex functions from the .NET FrameworkRegularExpressions are useful for changing the format of existing strings, for example, formatting a telephone number.Aşağıdaki ifade kullanan Replaceişlev, alan on basamak telefon numarası biçimini değiştirmek için"NNN-NNN-nnnn" to "(NNN) NNN-nnnn":

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

    Not

    Doğrulamak için değer Fields!Phone.Value fazladan boşluk içermeyen ve türü String.

Dönüştürme İşlevleri

Kullanabileceğiniz Visual Basic alan bir verileri dönüştürmek için işlevler, farklı bir veri türü için yazın. 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 için karşılaştırmak için ondalık yazmak için sabit 500 dönüştüren bir Transact-SQL Money veri türü için bir süzgeç ifadesi Değer alanındaki.

    =CDec(500)
    
  • Aşağıdaki ifade multivalue parametresi için seçili değerlerin sayısını görüntüler. MySelection.

    =CStr(Parameters!MySelection.Count)
    

Karar İşlevleri

  • The Iif işlev returns one of two values depending on whether the ifade is true or not. Aşağıdaki ifade kullanan Iif işlevin bir Boole değeri döndürür. True değeri LineTotal 100 aşıyor. Aksi durumda döndürür False:

    =IIF(Fields!LineTotal.Value > 100, True, False)
    
  • Birden çok kullanın. IIFdeğerine bağlı olarak üç değerden birini veren işlevleri (olarak da bilinen "iç içe geçmiş IIFs") PctComplete. 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.

  • Farklı BIR şekilde aynı işlevselliği elde etmek için kullandığı Switch işlev. The Switch işlev is useful when you have three or more conditions to test. The Switch işlev returns the value associated with the first ifade in a series that evaluates to true:

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

    Büyük veya eşit bir yeşil arka plana sahip, bir mavi arka planı, sarı bir arka plan, ekran 1 değerine eşit ekran 1 ile 9 arasındaki 0 veya daha az olan görüntü kırmızı arka plana sahip 10 görüntü değerleri.

  • Aynı işlevselliği elde etmek için üçüncü bir yol kullanan Choose işlev. The Choose işlev uses the first parameter as an index to one of the remaining işlev parameters. Ilk parametre bir tamsayı olmalıdır.Tablo içinde bir metin kutusu arka plan rengini olup olmadığını küme bu deyime değeri MyIndex rengi denetler.

    =Choose(Fields!MyIndex.Value,"Red","Green","Yellow")
    

    Örneğin, zaman MyIndex1, "Kırmızı" arka plan rengidir. Sorgunun sonuç kümesi, doğrulamak için veri MyIndex parametre listesi aralık geçmediği.

  • Değeri sınama ImportantDatealan ve bir hafta ise "Kırmızı" döndürmek "Mavi" değilse ve eski. 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")
    
  • Değeri sınama PhoneNumberalan ve dönüş "Hayır ise, değer" null (Nothing içinde Visual Basic); aksi durumda, telefon numarası değeri 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)
    
  • Değeri sınama Department alan ve bir alt rapor adını döndürmek veya null (Nothing içinde Visual Basic). 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 denetlemek için kullanılan Hidden bir Görüntü raporunun özellik öğe. Aşağıdaki örnekte, alan tarafından belirtilen resim [LargePhoto], yalnızca alanın değeri boş değilse görüntülenir.

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

Rapor İşlevleri

Reporting Services bir rapordaki veriyi yönetmek için kullanabileceğiniz ek rapor işlevleri sağlar.Bu bölümde, bu işlevlerden ikisinin örnekleri sağlanmaktadır.Rapor işlevleri ve örnekler hakkında daha fazla bilgi için bkz: Yerleşik rapor ve toplamak işlevleri (Reporting Services) deyimler içinde kullanma.

Sum

  • The Sum işlev can total the values in a group or data bölge. 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")
    
  • Ayrıca Sum Koşullu toplamak hesaplamalar için işlev. Ö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

  • The RowNumber işlev, when used in a text box within a data bölge, displays the row number for each örnek of the text box in which the ifade appears. 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 bkz: Sayfa sonu Bu konudaki.

    Belirlediğiniz kapsam RowNumber yeniden numaralandırılması başladığında denetler. The Nothing keyword indicates that the işlev will start counting at the first row in the outermost data bölge. İç 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.saat ile biçimlendirilmiş .NET Framework dize, kısa tarih için biçimlendirme:

    =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
    
  • Aşağıdaki ifade, bir metin kutusuna, rapor altbilgisindeki yerleştirilen sayfa numarası ve toplam sayfa rapora sağlar:

    =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.Örnek veri varsayar bölge adlı bir metin kutusu içeren LastName.

  • Ilk değer, aşağıdaki ifade, bir metin kutusunda sayfa başlığının sol tarafındaki yerleştirilen sağlar LastName sayfadaki metin kutusu:

    =First(ReportItems("LastName").Value)
    
  • Son değer aşağıdaki ifade, bir metin kutusunda sayfa başlığının sağ tarafındaki yerleştirilen sağlar LastName sayfadaki metin kutusu:

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

Aşağıdaki örnekte sayfa toplamının nasıl görüntüleneceği açıklanmaktadır.Örnek veri varsayar bölge adlı bir metin kutusu içeren Cost.

  • Aşağıdaki ifade, sayfa üstbilgisi veya altbilgisi, verilen değerler toplamını sağlar Cost metin kutusuna sayfa için:

    =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.

    =CInt(Ceiling(RowNumber(Nothing)/25))
    

    Kullanıcıya izin vermek için küme sayfa başına satır sayısı için bir değer, adlandırılmış bir parametre oluşturmak RowsPerPage ve, parametre üzerinde grup ifadesi aşağıdaki deyimde gösterildiği gibi temel:

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

    Bir grup için sayfa sonlarını ayarlama hakkında daha fazla bilgi için bkz: Nasıl Yapılır: (Reporting Services) bir sayfa sonu ekleme.

Ö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

  • Kullanıldığında aşağıdaki ifade Color özellik bir metin kutusunun değerini bağlı metin rengini değiştirir Profit alan:

    =Iif(Fields!Profit.Value < 0, "Red", "Black")
    
  • Kullanıldığında aşağıdaki ifade BackgroundColor Raporun özellik öğe arka plan rengini Beyaz Uçuk Yeşil arasındaki her satır bir veri bölgede alternatifler:

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

    Belirtilen kapsam için bir ifade kullanıyorsanız, veri kümesi için toplamak işlevini göstermek gerekebilir:

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

Not

Available colors come from the .NET FrameworkKnownColor enumeration.

Visibility

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.

  • Bir gruptaki ayrıntı satırları ilk görünürlüğünü kullanıldığında aşağıdaki ifade yüzde 90'aşan tüm satışların ayrıntı satırlarını gösterir PctQuota alan:

    =Iif(Fields!PctQuota.Value>.9, False, True)
    
  • Aşağıdaki ifade, ne zaman küme, Hidden bir tablonun özellik 12'den fazla satır varsa, yalnızca tablo gösterir:

    =IIF(CountRows()>12,true,false)
    

URL’ler

Rapor verilerini kullanarak URL'leri özelleştirme ve de koşullu URL'leri bir metin kutusu için bir eylem olarak eklenmiş olup olmadığını denetler.

  • Bir metin kutusunda, bir eylem olarak kullanıldığında aşağıdaki ifade dataset alan belirten bir özelleştirilmiş URL oluşturur. EmployeeID URL parametresi.

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

    Daha fazla bilgi için bkz: Nasıl Yapılır: Bir URL (Reporting Services) için bir köprü ekleme.

  • Aşağıdaki ifade, metin kutusuna bir URL eklenip eklenmeyeceğini koşullu bir şekilde denetler.Bu ifade adında bir parametreyi bağlıdır. IncludeURLs etkin bir URL bir rapora dahil etmek karar vermek bir kullanıcı, izin verir. 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.Parameterelere ve diğer rapor bilgilerine başvurabilirsiniz.Rapor için veri almak amacıyla kullanılan sorguyu da değiştirebilirsiniz.

Parameters

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.

  • Varsayılan değer olarak, bir parametre için kullanıldığında aşağıdaki ifade, raporu çalıştıran kişinin kullanıcı KIMLIĞINI toplar:

    =User!UserID
    
  • Parametre sorgu parametresi, süzgeç ifadesi, metin kutusunun veya diğer alan raporun başvurmak için , kullanmak Parameters Genel koleksiyon. Bu örnek parametre adlı varsayar. Department:

    =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 adlı parametresi için varsayılan parametre değeri tarafından belirtilen alan tanımlar. ParameterField:

    =Fields(Parameters!ParameterField.Value).Value
    

    Daha fazla bilgi için bkz: Yayımlanan bir rapor için parametre özellikleri ayarlama.

Ö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: Özel kod başvurular (Reporting Services) deyimler içinde kullanma.

  • Aşağıdaki örnek adlı bir katıştırılmış kod yöntem çağırır. ToUSD, hangi dönüştürür StandardCost bir lira değerine alan değeri:

    =Code.ToUSD(Fields!StandardCost.Value)
    
  • Aşağıdaki örnek, bazı özel sabit ve değişken nasıl tanımlandığını gösterir.

    [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 sabitleri oluşturmak veya bir ifade için bir değer özelleştirmek için başka bir yol, raporu bir değişken mi, yoksa bir grup değişken kullanmaktır.

Özel toplama için grup değişkenleri kullanma

Bir özel grup kapsamını yerel olan bir grup değişken değeri başlatılamıyor ve sonra da bu değişken için başvuru ifadelerinde içerir.Değişken grubu özel koduyla kullanabileceğiniz şekilde özel bir toplamak uygulamak biridir.Daha fazla bilgi için bkz: Grup değişkenleri Reporting Services 2008'de özel toplama için kullanma.

Değişkenler hakkında daha fazla bilgi için bkz: Rapor ve grup değişkenleri koleksiyon başvurular (Reporting Services) deyimler içinde kullanma.

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

Aşağıdaki örnek adlı katıştırılmış yöntem çağırır. FixSpelling, metnin tüm tekrarlarını "içinde bisiklet için", "Bicycle" değiştirir SubCategory.Value.

=Code.FixSpelling(Fields!SubCategory.Value)

Rapor tanımında, katıştırılmış aşağıdaki kod uygulaması gösterir FixSpelling yöntem. This example shows you how to refer to the .NET FrameworkStringBuilder class.Daha fazla bilgi için bkz: Nasıl Yapılır: Bir raporu (Reporting Services) için kodu ekleme ve Nasıl Yapılır: (Reporting Services) bir rapor için bir derleme başvurusu Ekle.

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, çalışma zamanı hatalarının oluşturabilirsiniz. # Hata değerlendirilmiş ifade yerine metin kutusunu görüntüleme.The IIF işlev is particularly sensitive to this behavior because, unlike an If-Then-Else deyim, each part of the IIF deyim is evaluated (including işlev calls) before being passed to the routine that tests for true or false. deyim =IIF(Fields!Sales.Value is NOTHING, 0, Fields!Sales.Value) oluşturur # Hata işlenmiş rapor, Fields!Sales.Value hiçbir şey olur.

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ğerleri arasındaki farkı hesaplama için kullanılabilir ve önceki değerini ya da geçerli bir değer mi, kenar durum (olduğunda hiçbir önceki değeri) ilk karşılaştırma ve servis taleplerini işleme null (Nothing Visual Basic'te).

    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))
    

Değişiklik Geçmişi

Güncelleştirilmiş içerik

Örnek işlev seçin ve özel kod ile grup değişkenleri'ni kullanarak, özel toplamları hesaplamak için eklendi.