식 예(보고서 작성기 2.0)

식은 보고서에서 내용과 보고서 모양을 제어하는 데 자주 사용됩니다. 식은 Microsoft Visual Basic에서 작성할 수 있으며 기본 제공 함수, 사용자 지정 코드, 전역 변수 및 사용자 정의 변수를 사용할 수 있습니다. 식 편집기와 포함할 수 있는 참조 유형에 대한 자세한 내용은 식 사용(보고서 작성기 2.0)방법: 식 추가(보고서 작성기 2.0)를 참조하십시오.

이 항목에서는 보고서의 일반적인 태스크에 사용할 수 있는 식 예를 제공합니다.

  • Visual Basic 함수   날짜, 문자열, 변환 및 조건 Visual Basic 함수 예

  • 보고서 함수   집계 및 다른 기본 제공 보고서 함수 예

  • 보고서 데이터 모양   보고서의 모양 변경 예

  • 속성   형식 또는 표시 유형을 제어하는 보고서 항목 속성 설정 예

  • 매개 변수   식에서의 매개 변수 사용 예

  • 사용자 지정 코드   포함된 사용자 지정 코드 예

함수

보고서의 여러 식에는 함수가 포함됩니다. 이러한 함수를 사용하여 데이터의 형식을 지정하고, 논리를 적용하고, 보고서 메타데이터에 액세스할 수 있습니다. MicrosoftVisual Basic 런타임 라이브러리와 System..::..ConvertSystem..::..Math 네임스페이스의 함수를 사용하는 식을 작성할 수 있습니다. 다른 어셈블리 또는 사용자 지정 코드에서 함수에 대한 참조를 추가할 수 있습니다. 또한 System.Text.RegularExpressions를 포함하여 Microsoft.NET Framework의 클래스도 사용할 수 있습니다. Visual Basic 함수에 대한 자세한 내용은 msdn.microsoft.com에서 "Visual Basic 런타임 라이브러리(Visual Basic Run-Time Library)"를 참조하십시오.

Visual Basic 함수

Visual Basic 함수를 사용하여 입력란에 표시되는 데이터나 매개 변수, 속성 또는 보고서의 다른 영역에 사용되는 데이터를 조작할 수 있습니다. 이 섹션에서는 이러한 함수 중 몇 가지를 보여 주는 예를 제공합니다. Visual Basic 함수에 대한 자세한 내용은 Visual Basic 설명서를 참조하십시오.

날짜 함수

  • Today 함수는 현재 날짜를 제공합니다. 이 식은 보고서에 날짜를 표시할 경우 입력란에 사용하거나 현재 날짜를 기반으로 데이터를 필터링할 경우 매개 변수에 사용할 수 있습니다.

    =Today()
    
  • DateAdd 함수는 단일 매개 변수를 기반으로 날짜 범위를 제공하는 데 유용합니다. 다음 식에서는 StartDate라는 매개 변수로부터 6개월 후의 날짜를 제공합니다.

    =DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
    
  • Year 함수는 특정 날짜의 연도를 표시합니다. 이 함수를 사용하여 날짜를 그룹화하거나 연도를 일련의 날짜 레이블로 표시할 수 있습니다. 이 식은 지정된 판매 주문 날짜 그룹에 대한 연도를 제공합니다. 날짜 처리에 Month 함수 및 다른 함수를 사용할 수 있습니다. 자세한 내용은 Visual Basic 설명서를 참조하십시오.

    =Year(Fields!OrderDate.Value)
    

문자열 함수

  • 연결 연산자와 Visual Basic 상수를 사용하여 둘 이상의 필드를 결합합니다. 다음 식에서는 두 필드를 같은 입력란에서 별도의 줄에 반환합니다.

    =Fields!FirstName.Value & vbCrLf & Fields!LastName.Value 
    
  • Format 함수를 사용하여 문자열의 날짜와 숫자 형식을 지정합니다. 다음 식에서는 StartDate와 EndDate 매개 변수의 값을 자세한 날짜 형식으로 표시합니다.

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

    입력란에 날짜 또는 숫자만 있는 경우 형식을 적용하려면 입력란의 Format 함수 대신 입력란의 Format 속성을 사용해야 합니다.

  • Right, Len 및 InStr 함수는 부분 문자열을 반환하는 데 유용합니다. 예를 들어 DOMAIN\username에서 사용자 이름만 잘라서 반환할 수 있습니다. 다음 식에서는 User라는 매개 변수에서 백슬래시(\) 문자의 오른쪽에 있는 문자열 부분을 반환합니다.

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

    다음 식에서는 Visual Basic 함수 대신 .NET FrameworkSystem..::..String 클래스의 멤버를 사용한 것으로 위의 값과 동일한 값을 반환합니다.

    =Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)
    
  • 다중값 매개 변수에서 선택한 값을 표시합니다. 다음 예에서는 Join 함수를 사용하여 MySelection 매개 변수의 선택한 값을 보고서 항목에 있는 입력란의 값에 대해 식으로 설정할 수 있는 단일 문자열에 연결합니다.

    = Join(Parameters!MySelection.Value)
    
  • .NET FrameworkRegularExpressions의 Regex 함수는 전화 번호 형식을 지정하는 등 기존 문자열의 형식을 변경하는 데 유용합니다. 다음 식에서는 Replace 함수를 사용하여 필드의 10자리 전화 번호를 "nnn-nnn-nnnn" 형식에서 "(nnn) nnn-nnnn" 형식으로 변경합니다.

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

변환 함수

Visual Basic 함수를 사용하여 필드를 한 데이터 형식에서 다른 데이터 형식으로 변환할 수 있습니다. 필드의 기본 데이터 형식을 계산이나 텍스트 결합에 필요한 다른 데이터 형식으로 변환하는 데에 변환 함수를 사용할 수 있습니다. 

  • 다음 식에서는 상수 500을 필터 식의 값 필드에 있는 Transact-SQL money 데이터 형식과 비교하기 위해 Decimal 유형으로 변환합니다. 

    =CDec(500)
    
  • 다음 식에서는 다중값 매개 변수 MySelection에 대해 선택된 값의 수를 표시합니다.

    =CStr(Parameters!MySelection.Count)
    

결정 함수

  • Iif 함수는 식이 True인지 여부에 따라 두 값 중 하나를 반환합니다. 다음 식에서는 Iif 함수를 사용하여 LineTotal 값이 100을 초과하면 부울 값 True를 반환하며 그렇지 않으면 False를 반환합니다.

    =IIF(Fields!LineTotal.Value > 100, True, False)
    
  • IIF 함수("중첩 IIF"라고도 함)를 사용하여 PctComplete의 값에 따라 3개의 값 중 하나를 반환할 수 있습니다. 다음 식을 입력란의 채우기 색에 배치하면 입력란의 값에 따라 배경색을 변경할 수 있습니다.

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

    값이 10 이상이면 녹색 배경을 표시하고 1에서 9 사이면 파란색 배경을, 1 미만이면 빨간색 배경을 표시합니다.

  • 같은 기능을 구현하는 다른 방법으로 Switch 함수를 사용하는 방법이 있습니다. Switch 함수는 테스트할 조건이 3개 이상인 경우에 유용합니다. Switch 함수는 계열에서 True로 계산되는 첫 번째 식과 연결된 값을 반환합니다.

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

    값이 10 이상이면 녹색 배경을 표시하고 1에서 9 사이면 파란색 배경을 표시하고 1이면 노란색 배경을 표시하고 0 이하면 빨간색 배경을 표시합니다.

  • ImportantDate 필드의 값을 테스트하여 해당 날짜가 1주 넘게 경과된 경우 "Red"를 반환하고, 그렇지 않은 경우 "Blue"를 반환합니다. 이 식은 보고서 항목에 있는 입력란의 Color 속성을 제어하는 데 사용할 수 있습니다.

    =IIF(DateDiff("d",Fields!ImportantDate.Value, Now())>7,"Red","Blue")
    
  • PhoneNumber 필드의 값을 테스트하여 null(Visual Basic의 Nothing)인 경우 "No Value"를 반환하고 그렇지 않으면 전화 번호 값을 반환합니다. 이 식은 보고서 항목에 있는 입력란의 값을 제어하는 데 사용할 수 있습니다.

    =IIF(Fields!PhoneNumber.Value Is Nothing,"No Value",Fields!PhoneNumber.Value)
    
  • Department 필드의 값을 테스트하여 포함된 보고서의 이름 또는 null(Visual Basic의 Nothing)을 반환합니다. 이 식은 포함된 조건부 드릴스루 보고서에 사용할 수 있습니다.

    =IIF(Fields!Department.Value = "Development", "EmployeeReport", Nothing)
    
  • 필드 값이 Null인지 여부를 테스트합니다. 이 식은 이미지 보고서 항목의 Hidden 속성을 제어하는 데 사용할 수 있습니다. 다음 예에서 [LargePhoto] 필드로 지정된 이미지는 필드의 값이 Null이 아닌 경우에만 표시됩니다.

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

보고서 함수

Reporting Services에서는 보고서의 데이터를 조작하는 데 사용할 수 있는 추가 보고서 함수를 제공합니다. 이 섹션에서는 이러한 함수 중 두 가지 예를 제공합니다. 보고서 함수 및 예에 대한 자세한 내용은 식에서 기본 제공 보고서 및 집계 함수 사용(보고서 작성기 2.0)을 참조하십시오.

Sum

  • Sum 함수는 그룹 또는 데이터 영역에서 값의 합계를 구합니다. 이 함수는 그룹의 머리글 또는 바닥글에서 유용하게 사용됩니다. 다음 식에서는 Order 그룹 또는 데이터 영역에 데이터의 합계를 표시합니다.

    =Sum(Fields!LineTotal.Value, "Order")
    
  • 조건부 집계 계산에도 Sum 함수를 사용할 수 있습니다. 예를 들어 가능한 값이 Not Started, Started, Finished인 State라는 필드가 데이터 집합에 있는 경우 다음 식을 그룹 머리글에 배치하면 Finished 값에 대해서만 집계 합을 계산합니다.

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

RowNumber

  • RowNumber 함수는 데이터 영역의 입력란에 사용될 경우 식이 나타나는 입력란의 각 인스턴스에 대한 행 번호를 표시합니다. 이 함수는 테이블에서 행 번호를 지정하는 데 유용합니다. 또한 행 수에 따라 페이지를 나누는 등 더욱 복잡한 태스크에 유용합니다. 자세한 내용은 이 항목에서 페이지 나누기를 참조하십시오.

    RowNumber에 지정한 범위는 번호 다시 매기기를 시작하는 시점을 제어합니다. Nothing 키워드는 함수가 가장 바깥쪽 데이터 영역의 첫 번째 행부터 계산을 시작하는 것을 나타냅니다. 중첩 데이터 영역에서 계산을 시작하려면 데이터 영역의 이름을 사용합니다. 그룹 내에서 계산을 시작하려면 그룹의 이름을 사용합니다.

    =RowNumber(Nothing)
    

보고서 데이터 모양

식을 사용하여 데이터가 보고서에 나타나는 모양을 조작할 수 있습니다. 예를 들어 단일 입력란에서 두 필드의 값을 표시하거나, 보고서에 대한 정보를 표시하거나, 페이지 나누기가 보고서에 삽입되는 모양에 영향을 줄 수 있습니다.

페이지 머리글 및 바닥글

보고서를 디자인할 때 보고서 이름 및 보고서 바닥글에 페이지 번호를 표시할 수 있습니다. 이렇게 하려면 다음 식을 사용합니다.

  • 다음 식에서는 보고서 이름과 보고서가 실행된 시간을 제공합니다. 식은 보고서 바닥글이나 보고서 본문의 입력란에 배치할 수 있습니다. 시간 형식은 .NET Framework 형식 문자열(간단한 날짜)로 지정됩니다.

    =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
    
  • 다음 식을 보고서 바닥글에 사용하면 보고서의 페이지 번호와 총 페이지 수를 제공합니다.

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

다음 예에서는 디렉터리 목록에서 찾을 수 있는 페이지와 유사한 페이지의 첫 번째와 마지막 값을 페이지 머리글에 표시하는 방법을 설명합니다. 이 예에서는 데이터 영역에 LastName라는 입력란이 있다고 가정합니다.

  • 다음 식을 페이지 머리글 왼쪽의 입력란에 사용하면 페이지에서 LastName 입력란의 첫 번째 값을 제공합니다.

    =First(ReportItems("LastName").Value)
    
  • 다음 식을 페이지 머리글 오른쪽의 입력란에 사용하면 페이지에서 LastName 입력란의 마지막 값이 제공됩니다.

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

다음 예에서는 총 페이지 수를 표시하는 방법을 설명합니다. 이 예에서는 데이터 영역에 Cost라는 입력란이 있다고 가정합니다.

  • 다음 식을 페이지 머리글 또는 바닥글에 사용하면 페이지의 Cost 입력란에 값의 합계를 제공합니다.

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

[!참고]

페이지 머리글 또는 바닥글에서 식마다 보고서 항목을 하나만 참조할 수 있습니다. 또한 페이지 머리글과 바닥글 식에서 입력란 이름을 참조할 수 있지만 입력란 내의 실제 데이터 식은 참조할 수 없습니다.

페이지 나누기

일부 보고서에서는 페이지 나누기를 그룹 또는 보고서 항목 외에도 지정된 행 수의 끝에 배치할 수 있습니다. 이렇게 하려면 그룹이나 원하는 세부 레코드를 포함하는 그룹을 만들고, 페이지 나누기를 그룹에 추가한 다음 그룹 식을 지정된 행 수에 따라 그룹에 추가합니다.

  • 다음 식을 그룹 식에 사용하면 25행마다 번호를 할당합니다. 그룹에 페이지 나누기가 정의되어 있는 경우 이 식을 사용하면 25행마다 페이지가 나눠집니다.

    =Ceiling(RowNumber(Nothing)/25)
    

    사용자가 페이지당 행 수에 대한 값을 설정하도록 허용하려면 RowsPerPage라는 매개 변수를 만들고 다음 식에서 볼 수 있듯이 그룹 식이 매개 변수에 기반을 두도록 합니다.

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

    그룹의 페이지 나누기를 설정하는 방법은 방법: 페이지 나누기 추가(보고서 작성기 2.0)를 참조하십시오.

속성

식은 입력란에서 데이터를 표시하는 데 사용될 뿐만 아니라 속성이 보고서 항목에 적용되는 방식을 변경하는 데에도 사용됩니다. 보고서 항목에 대한 스타일 정보를 변경하거나 보고서 항목의 표시 유형을 변경할 수 있습니다.

서식

  • 다음 식을 입력란의 Color 속성에 사용하면 Profit 필드의 값에 따라 텍스트 색이 달라집니다.

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

    Visual Basic 개체 변수 Me를 사용할 수도 있습니다. 이 변수는 입력란의 값을 참조할 수 있는 다른 방법입니다.

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

  • 다음 식을 데이터 영역에 있는 보고서 항목의 BackgroundColor 속성에 사용하면 각 행의 배경색을 연녹색과 흰색으로 번갈아 표시합니다.

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

    특정 범위에 식을 사용할 경우 집계 함수의 데이터 집합을 나타내야 할 수도 있습니다.

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

[!참고]

.NET FrameworkKnownColor 열거형에 있는 색을 사용할 수 있습니다.

표시 유형

보고서 항목에 대해 표시 유형 속성을 사용하여 보고서에서 항목을 표시하거나 숨길 수 있습니다. 테이블과 같은 데이터 영역에서 처음에 식의 값을 기반으로 정보 행을 숨길 수 있습니다.

  • 다음 식을 그룹에서 정보 행의 초기 표시 유형에 사용하면 PctQuota 필드에서 90%를 초과하는 모든 판매액에 대해 정보 행을 표시합니다.

    =Iif(Fields!PctQuota.Value>.9, False, True)
    
  • 다음 식을 테이블의 Hidden 속성에 설정하면 테이블에 13개 이상의 행이 있는 경우에만 테이블이 표시됩니다.

    =IIF(CountRows()>12,true,false)
    
  • 다음 식을 열의 Hidden 속성에 설정하면 데이터 원본에서 데이터를 검색한 후에 보고서 데이터 집합에 필드가 있는 경우에만 열이 표시됩니다.

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

URL

보고서 데이터를 사용하여 URL을 사용자 지정할 수 있으며 테스트 상자에 대한 동작으로 URL을 추가할지 여부를 조건부로 제어할 수도 있습니다.

  • 다음 식을 입력란에서 동작으로 사용하면 데이터 집합 필드 EmployeeID를 URL 매개 변수로 지정하는 사용자 지정 URL이 생성됩니다.

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

    자세한 내용은 방법: URL에 하이퍼링크 추가(보고서 작성기 2.0)를 참조하십시오.

  • 다음 식은 입력란에 URL을 추가할지 여부를 조건부로 제어합니다. 이 식은 보고서에 활성 URL을 포함할지 여부를 사용자가 결정하도록 허용하는 IncludeURLs라는 매개 변수를 사용합니다. 이 식은 입력란의 동작으로 설정됩니다. 이 매개 변수를 False로 설정하고 보고서를 보면 하이퍼링크 없이 Microsoft Excel로 보고서를 내보낼 수 있습니다.

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

보고서 데이터

식을 사용하여 보고서에 사용되는 데이터를 조작할 수 있습니다. 매개 변수 및 다른 보고서 정보를 참조할 수 있습니다. 보고서 데이터 검색에 사용하는 쿼리를 변경할 수도 있습니다.

매개 변수

매개 변수의 식을 사용하여 매개 변수에 대한 기본값을 다양화할 수 있습니다. 예를 들어 매개 변수를 사용하여 보고서 실행에 사용하는 사용자 ID에 따라 특정 사용자에 대한 데이터를 필터링할 수 있습니다.

  • 다음 식을 매개 변수에 대한 기본값으로 사용하면 보고서를 실행하는 사람의 사용자 ID를 수집합니다.

    =User!UserID
    
  • 쿼리 매개 변수, 필터 식, 입력란 또는 보고서의 다른 영역에서 매개 변수를 참조하려면 Parameters 전역 컬렉션을 사용합니다. 이 예에서는 매개 변수 이름을 Department라고 가정합니다.

    =Parameters!Department.Value
    
  • 매개 변수는 보고서에서 만들 수 있지만 숨김으로 설정됩니다. 보고서 서버에서 보고서를 실행할 때 매개 변수는 도구 모음에 나타나지 않으며 보고서를 읽는 사용자는 기본값을 변경할 수 없습니다. 기본값으로 설정된 숨겨진 매개 변수를 사용자 지정 상수로 사용할 수 있습니다. 이 값을 필드 식을 포함한 모든 식에 사용할 수 있습니다. 다음 식은 ParameterField라는 매개 변수에 대한 기본 매개 변수 값으로 지정된 필드를 식별합니다.

    =Fields(Parameters!ParameterField.Value).Value
    

사용자 지정 코드

보고서에 사용자 지정 코드를 사용할 수 있습니다. 사용자 지정 코드는 보고서에 포함되거나 보고서에서 사용되는 사용자 지정 어셈블리에 저장됩니다. 사용자 지정 코드에 대한 자세한 내용은 식에 사용자 지정 코드 참조 사용(보고서 작성기 2.0)을 참조하십시오.

  • 다음 예에서는 StandardCost 필드 값을 달러 값으로 변환하는 ToUSD라는 포함된 코드 메서드를 호출합니다.

    =Code.ToUSD(Fields!StandardCost.Value)
    
  • 다음 예에서는 몇 가지 사용자 지정 상수 및 변수를 정의하는 방법을 보여 줍니다.

    [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
    

    식 편집기 상수 뷰에서는 기본 제공 상수만 표시되고 사용자 지정 상수 및 변수는 표시되지 않지만 아래 예와 같이 식에서 사용자 지정 상수 및 변수에 대한 참조를 추가할 수 있습니다. 이러한 참조는 Variant로 처리됩니다.

    [Visual Basic]

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

런타임에 필드의 텍스트 바꾸기

다음 예에서는 SubCategory.Value의 모든 "Bike" 텍스트를 "Bicycle"로 대체하는 FixSpelling라는 포함된 메서드를 호출합니다.

=Code.FixSpelling(Fields!SubCategory.Value)

다음 코드를 보고서 정의에 포함하면 FixSpelling 메서드의 구현을 볼 수 있습니다. 이 예에서는 .NET FrameworkSystem.Text..::..StringBuilder 클래스를 참조하는 방법을 보여 줍니다. 자세한 내용은 방법: 보고서에 코드 추가(보고서 작성기 2.0)를 참조하십시오.

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

런타임에 Null 또는 0 값 표시하지 않기

식의 일부 값은 보고서를 처리할 때 Null이나 정의되지 않은 값으로 계산될 수 있습니다. 이 경우 런타임 오류가 발생하여 입력란에 계산된 식이 아닌 #Error가 표시될 수 있습니다. IIF 함수는 이러한 동작에 특히 민감합니다. If-Then-Else 문과 달리 IIF 문의 각 부분(함수 호출 포함)은 true 또는 false를 테스트하는 루틴에 전달되기 전에 계산되기 때문입니다. Fields!Sales.Value가 NOTHING인 경우 =IIF(Fields!Sales.Value is NOTHING, 0, Fields!Sales.Value) 문은 렌더링된 보고서에서 #Error를 생성합니다.

이러한 상황을 방지하려면 다음 전략 중 하나를 사용합니다.

  • 필드 B의 값이 0이거나 정의되지 않은 경우 분자를 0으로, 분모를 1로 설정합니다. 그렇지 않은 경우 분자를 필드 A의 값으로, 분모를 필드 B의 값으로 설정합니다.

    =IIF(Field!B.Value=0, 0, Field!A.Value / IIF(Field!B.Value =0, 1, Field!B.Value))
    
  • 사용자 지정 코드 함수를 사용하여 식의 값을 반환합니다. 다음 예에서는 현재 값과 이전 값의 차이를 백분율로 반환합니다. 이 식은 연속하는 두 값의 차이를 계산하는 데에 사용할 수 있으며 경계 사례인 첫 번째 비교(이전 값이 없는 경우)와 이전 값이나 현재 값이 null(Visual Basic의 Nothing)인 경우도 처리할 수 있습니다.

    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
    

    다음 식은 입력란에서 이 사용자 지정 코드를 호출하는 방법을 보여 줍니다.

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

    이 방법으로 런타임 예외를 방지할 수 있으며 입력란의 Color 속성에서 =IIF(Me.Value < 0, "red", "black")와 같은 식을 사용하여 값에 따라 조건부로 텍스트를 표시할 수 있습니다.