식 예(보고서 작성기 및 SSRS)Expression Examples (Report Builder and SSRS)

식은 Reporting ServicesReporting Services 페이지를 매긴 보고서에서 내용과 보고서 모양을 제어하는 데 자주 사용됩니다.Expressions are used frequently in Reporting ServicesReporting Services paginated reports to control content and report appearance. 식은 MicrosoftMicrosoft Visual BasicVisual Basic에서 작성되며 기본 제공 함수, 사용자 지정 코드, 보고서와 그룹 변수 및 사용자 정의 변수를 사용할 수 있습니다.Expressions are written in MicrosoftMicrosoft Visual BasicVisual Basic, and can use built-in functions, custom code, report and group variables, and user-defined variables. 식은 등호(=)로 시작됩니다.Expressions begin with an equal sign (=). 식 편집기와 포함할 수 있는 참조 유형에 대한 자세한 내용은 보고서에 사용되는 식(보고서 작성기 및 SSRS)식 추가(보고서 작성기 및 SSRS)를 참조하세요.For more information about the expression editor and the types of references that you can include, see Expression Uses in Reports (Report Builder and SSRS), and Add an Expression (Report Builder and SSRS).

중요

RDL 샌드박싱 기능이 설정되면 보고서를 게시할 때 특정 형식 및 멤버만 식 텍스트에서 사용할 수 있습니다.When RDL Sandboxing is enabled, only certain types and members can be used in expression text at report publish time. 자세한 내용은 Enable and Disable RDL Sandboxing을 참조하세요.For more information, see Enable and Disable RDL Sandboxing.

이 항목에서는 보고서의 일반적인 태스크에 사용할 수 있는 식 예를 제공합니다.This topic provides examples of expressions that can be used for common tasks in a report.

특정 용도에 맞는 식 예는 다음 항목을 참조하십시오.For expression examples for specific uses, see the following topics:

간단한 식과 복잡한 식, 식을 사용할 수 있는 위치 및 식에 포함할 수 있는 참조 유형에 대한 자세한 내용은 식(보고서 작성기 및 SSRS)를 참조하세요.For more information about simple and complex expressions, where you can use expressions, and the types of references that you can include in an expression, see topics under Expressions (Report Builder and SSRS). 집계 계산을 위해 식이 계산되는 컨텍스트에 대한 자세한 내용은 합계, 집계 및 기본 제공 컬렉션의 식 범위(보고서 작성기 및 SSRS)를 참조하세요.For more information about the context in which expressions are evaluated for calculating aggregates, see Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).

이 항목의 식 예에서도 사용하는 함수와 연산자 중 상당수를 사용하는 식을 작성하는 방법을 보고서 작성의 맥락에서 배우려면 Tutorial: Introducing Expressions를 참조하십시오.To learn how to write expressions that use many of the functions and operators also used by expression examples in this topic, but in the context of writing a report, see Tutorial: Introducing Expressions.

함수Functions

보고서의 여러 식에는 함수가 포함됩니다.Many expressions in a report contain functions. 이러한 함수를 사용하여 데이터의 형식을 지정하고, 논리를 적용하고, 보고서 메타데이터에 액세스할 수 있습니다.You can format data, apply logic, and access report metadata using these functions. 함수에서 사용 하는 식을 작성할 수 있습니다는 MicrosoftMicrosoft Visual BasicVisual Basic 런타임 라이브러리에서는 ConvertMath 네임 스페이스입니다.You can write expressions that use functions from the MicrosoftMicrosoft Visual BasicVisual Basic run-time library, and from the Convert and Math namespaces. 다른 어셈블리 또는 사용자 지정 코드에서 함수에 대한 참조를 추가할 수 있습니다.You can add references to functions from other assemblies or custom code. 클래스를 사용할 수도 있습니다는 MicrosoftMicrosoft .NET Framework.NET Framework를 포함 하 여 System.Text.RegularExpressions합니다.You can also use classes from the MicrosoftMicrosoft .NET Framework.NET Framework, including System.Text.RegularExpressions.

Visual Basic 함수 Visual Basic Functions

Visual BasicVisual Basic 함수를 사용하여 입력란에 표시되는 데이터나 매개 변수, 속성 또는 보고서의 다른 영역에 사용되는 데이터를 조작할 수 있습니다.You can use Visual BasicVisual Basic functions to manipulate the data that is displayed in text boxes or that is used for parameters, properties, or other areas of the report. 이 섹션에서는 이러한 함수 중 몇 가지를 보여 주는 예를 제공합니다.This section provides examples demonstrating some of these functions. 자세한 내용은 MSDN의 Visual Basic 런타임 라이브러리 멤버 를 참조하세요.For more information, see Visual Basic Runtime Library Members on MSDN.

.NET Framework.NET Framework 에서는 특정 데이터 형식 등에 대한 다양한 사용자 지정 형식 옵션을 제공합니다.The .NET Framework.NET Framework provides many custom format options, for example, for specific date formats. 자세한 내용은 MSDN의 형식 지정 을 참조하십시오.For more information, see Formatting Types on MSDN.

수치 연산 함수Math Functions

  • Round 함수는 숫자를 가장 가까운 정수로 반올림하거나 내림하려는 경우 유용합니다.The Round function is useful to round numbers to the nearest integer. 다음 식에서는 1.3을 1로 반내림합니다.The following expression rounds a 1.3 to 1:

    = Round(1.3)  
    

    Excel의 MRound 함수와 같이 지정한 배수로 값을 반올림하거나 내림하는 식을 작성할 수도 있습니다.You can also write an expression to round a value to a multiple that you specify, similar to the MRound function in Excel. 정수를 만드는 계수로 값을 곱해 숫자를 반올림하거나 내림한 다음 동일한 계수로 나눕니다.Multiply the value by a factor that creates an integer, round the number, and then divide by the same factor. 예를 들어 1.3을 .2의 배수 중 가장 가까운 배수인 1.4로 반올림하려면 다음 식을 사용합니다.For example, to round 1.3 to the nearest multiple of .2 (1.4), use the following expression:

    = Round(1.3*5)/5  
    

날짜 함수 Date Functions

  • Today 함수는 현재 날짜를 제공합니다.The Today function provides the current date. 이 식은 보고서에 날짜를 표시할 경우 입력란에 사용하거나 현재 날짜를 기반으로 데이터를 필터링할 경우 매개 변수에 사용할 수 있습니다.This expression can be used in a text box to display the date on the report, or in a parameter to filter data based on the current date.

    =Today()  
    
  • 사용 하 여는 DateInterval 날짜의 특정 부분을 추출 하는 함수입니다.Use the DateInterval function to pull out a specific part of a date. 다음 몇 가지 유효한은 DateInterval 매개 변수:Here are some valid DateInterval parameters:

    • DateInterval.SecondDateInterval.Second
    • DateInterval.MinuteDateInterval.Minute
    • DateInterval.HourDateInterval.Hour
    • DateInterval.WeekdayDateInterval.Weekday
    • DateInterval.DayDateInterval.Day
    • DateInterval.DayOfYearDateInterval.DayOfYear
    • DateInterval.WeekOfYearDateInterval.WeekOfYear
    • DateInterval.MonthDateInterval.Month
    • 고작DateInterval.Quarter
    • 뿐인DateInterval.Year

    예를 들어이 식은 현재 날짜에 대 한 현재 연도에 주 수가 표시 됩니다.For example, this expression will show the number of the week in the current year for today's date:

    =DatePart(DateInterval.WeekOfYear, today()) 
    
  • DateAdd 함수는 단일 매개 변수를 기반으로 날짜 범위를 제공하는 데 유용합니다.The DateAdd function is useful for supplying a range of dates based on a single parameter. 다음 식에서는 StartDate라는 매개 변수로부터 6개월 후의 날짜를 제공합니다.The following expression provides a date that is six months after the date from a parameter named StartDate.

    =DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)  
    
  • Year 함수는 특정 날짜의 연도를 표시합니다.The Year function displays the year for a particular date. 이 함수를 사용하여 날짜를 그룹화하거나 연도를 일련의 날짜 레이블로 표시할 수 있습니다.You can use this to group dates together or to display the year as a label for a set of dates. 이 식은 지정된 판매 주문 날짜 그룹에 대한 연도를 제공합니다.This expression provides the year for a given group of sales order dates. 날짜 처리에 Month 함수 및 다른 함수를 사용할 수 있습니다.The Month function and other functions can also be used to manipulate dates. 자세한 내용은 Visual BasicVisual Basic 설명서를 참조하십시오.For more information, see the Visual BasicVisual Basic documentation.

    =Year(Fields!OrderDate.Value)  
    
  • 식에서 함수를 결합하여 형식을 사용자 지정할 수 있습니다.You can combine functions in an expression to customize the format. 다음 식에서는 월-일-연도 형식의 날짜를 월-주-주 번호 형식의 날짜로 변경합니다.The following expression changes the format of a date in the form month-day-year to month-week-week number. 예를 들어 12/23/2009를 12월 주 3으로 변경합니다.For example, 12/23/2009 to December 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).ToString  
    

    이 식을 데이터 집합에서 계산 필드로 사용할 경우 차트에서 이 식을 사용하면 각 달의 주를 기준으로 값을 집계할 수 있습니다.When used as a calculated field in a dataset, you can use this expression on a chart to aggregate values by week within each month.

  • 다음 식은 SellStartDate 값을 MMM-YY 형식으로 지정합니다.The following expression formats the SellStartDate value as MMM-YY. SellStartDate 필드는 datetime 데이터 형식입니다.SellStartDate field is a datetime data type.

    =FORMAT(Fields!SellStartDate.Value, "MMM-yy")  
    
  • 다음 식은 SellStartDate 값을 dd/MM/yyyy 형식으로 지정합니다.The following expression formats the SellStartDate value as dd/MM/yyyy. SellStartDate 필드는 datetime 데이터 형식입니다.The SellStartDate field is a datetime data type.

    =FORMAT(Fields!SellStartDate.Value, "dd/MM/yyyy")  
    
  • CDate 함수는 값을 날짜로 변환합니다.The CDate function converts the value to a date. Now 함수는 현재 날짜와 시스템에 따른 시간을 포함하는 날짜 값을 반환합니다.The Now function returns a date value containing the current date and time according to your system. DateDiff 는 두 날짜 값 사이의 시간 간격을 지정하는 Long 값을 반환합니다.DateDiff returns a Long value specifying the number of time intervals between two Date values.

    다음 예제는 현재 연도의 시작 날짜를 표시합니다.The following example displays the start date of the current year

    =DateAdd(DateInterval.Year,DateDiff(DateInterval.Year,CDate("01/01/1900"),Now()),CDate("01/01/1900"))  
    
  • 다음 예제는 현재 달을 기준으로 이전 달의 시작 날짜를 표시합니다.The following example displays the start date for the previous month based on the current month.

    =DateAdd(DateInterval.Month,DateDiff(DateInterval.Month,CDate("01/01/1900"),Now())-1,CDate("01/01/1900"))  
    
  • 다음 식은 SellStartDate와 LastReceiptDate 사이의 간격 연도를 생성합니다.The following expression generates the interval years between SellStartDate and LastReceiptDate. 이러한 필드는 두 가지 다른 데이터 집합 즉, DataSet1 및 DataSet2에 있습니다.These fields are in two different datasets, DataSet1 and DataSet2. 집계 함수인 First 함수(보고서 작성기 및 SSRS)는 DataSet1에 있는 SellStartDate의 첫 번째 값과 DataSet2에 있는 LastReceiptDate의 첫 번째 값을 반환합니다.The First Function (Report Builder and SSRS), which is an aggregate function, returns the first value of SellStartDate in DataSet1 and the first value of LastReceiptDate in DataSet2.

    =DATEDIFF(“yyyy”, First(Fields!SellStartDate.Value, "DataSet1"), First(Fields!LastReceiptDate.Value, "DataSet2"))  
    
  • DatePart 함수는 주어진 날짜 값의 지정된 구성 요소를 포함하는 정수 값을 반환합니다. 다음 식은 DataSet1에 있는 SellStartDate의 첫 번째 값에 대한 연도를 반환합니다.The DatePart function returns an Integer value containing the specified component of a given Date value.The following expression returns the year for the first value of the SellStartDate in DataSet1. 보고서에 여러 개의 데이터 집합이 있으므로 데이터 집합 범위가 지정됩니다.The dataset scope is specified because there are multiple datasets in the report.

    =Datepart("yyyy", First(Fields!SellStartDate.Value, "DataSet1"))  
    
  • DateSerial 함수는 자정으로 설정된 시간 정보와 함께 지정된 년, 월, 일을 나타내는 날짜 값을 반환합니다.The DateSerial function returns a Date value representing a specified year, month, and day, with the time information set to midnight. 다음 예제는 현재 달을 기준으로 이전 달의 마지막 날짜를 표시합니다.The following example displays the ending date for the prior month, based on the current month.

    =DateSerial(Year(Now()), Month(Now()), "1").AddDays(-1)  
    
  • 다음 식은 사용자가 선택한 날짜 매개 변수 값을 기준으로 여러 날짜를 표시합니다.The following expressions display various dates based on a date parameter value selected by the user.

예제 설명Example Description 예제Example
어제Yesterday =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-1)
2일 전Two Days Ago =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-2)
1개월 전One Month Ago =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-1,Day(Parameters!TodaysDate.Value))
2개월 전Two Months Ago =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-2,Day(Parameters!TodaysDate.Value))
1년 전One Year Ago =DateSerial(Year(Parameters!TodaysDate.Value)-1,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value))
2년 전Two Years Ago =DateSerial(Year(Parameters!TodaysDate.Value)-2,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value))

문자열 함수 String Functions

  • 연결 연산자와 Visual BasicVisual Basic 상수를 사용하여 둘 이상의 필드를 결합합니다.Combine more than one field by using concatenation operators and Visual BasicVisual Basic constants. 다음 식에서는 두 필드를 같은 입력란에서 별도의 줄에 반환합니다.The following expression returns two fields, each on a separate line in the same text box:

    =Fields!FirstName.Value & vbCrLf & Fields!LastName.Value   
    
  • Format 함수를 사용하여 문자열의 날짜와 숫자 형식을 지정합니다.Format dates and numbers in a string with the Format function. 다음 식에서는 StartDateEndDate 매개 변수의 값을 자세한 날짜 형식으로 표시합니다.The following expression displays values of the StartDate and EndDate parameters in long date format:

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

    입력란에 날짜 또는 숫자만 있는 경우 입력란 내에서 Format 함수 대신 서식을 적용하려면 입력란의 Format 속성을 사용해야 합니다.If the text box contains only a date or number, you should use the Format property of the text box to apply formatting instead of the Format function within the text box.

  • Right, LenInStr 함수는 하위 문자열을 반환하는 데 유용합니다. 예를 들어 DOMAIN\username 에서 사용자 이름만 잘라서 반환할 수 있습니다.The Right, Len, and InStr functions are useful for returning a substring, for example, trimming DOMAIN\username to just the user name. 다음 식에서는\User 라는 매개 변수에서 백슬래시() 문자의 오른쪽에 있는 문자열 부분을 반환합니다.The following expression returns the part of the string to the right of a backslash (\) character from a parameter named User:

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

    다음 식의 멤버를 사용 하는 이전 쿼리에서와 같은 값의 결과 .NET Framework.NET Framework String 클래스 대신 Visual BasicVisual Basic 함수:The following expression results in the same value as the previous one, using members of the .NET Framework.NET Framework String class instead of Visual BasicVisual Basic functions:

    =Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)  
    
  • 다중값 매개 변수에서 선택한 값을 표시합니다.Display the selected values from a multivalue parameter. 다음 예에서는 Join 함수를 사용하여 MySelection 매개 변수의 선택한 값을 보고서 항목에 있는 입력란의 값에 대해 식으로 설정할 수 있는 단일 문자열에 연결합니다.The following example uses the Join function to concatenate the selected values of the parameter MySelection into a single string that can be set as an expression for the value of a text box in a report item:

    = Join(Parameters!MySelection.Value)  
    

    다음 예에서는 선택한 값 목록 이전의 텍스트 문자열을 표시할 뿐 아니라 위의 예와 동일한 작업을 수행합니다.The following example does the same as the above example, as well as displays a text string prior to the list of selected values.

    =”Report for “ & JOIN(Parameters!MySelection.Value, “ & “)  
    
  • Regex 에서 함수는 .NET Framework.NET Framework System.Text.RegularExpressions 서식을 변경 하면 기존 문자열의 예를 들어, 전화 번호 형식을 지정 하는 데 유용 합니다.The Regex functions from the .NET Framework.NET Framework System.Text.RegularExpressions are useful for changing the format of existing strings, for example, formatting a telephone number. The following expression uses the Replace function to change the format of a ten-digit telephone number in a field from "nnn-nnn-nnnn" to "(nnn) nnn-nnnn":The following expression uses the Replace function to change the format of a ten-digit telephone number in a field from "nnn-nnn-nnnn" to "(nnn) nnn-nnnn":

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

    Fields!Phone.Value에 추가 공백이 없고 String 형식인지 확인합니다.Verify that the value for Fields!Phone.Value has no extra spaces and is of type String.

조회Lookup

  • 키 필드를 지정하면 Lookup 함수를 사용하여 키-값 쌍과 같이 일 대 일 관계가 있는 데이터 집합에서 값을 검색할 수 있습니다.By specifying a key field, you can use the Lookup function to retrieve a value from a dataset for a one-to-one relationship, for example, a key-value pair. 일치시킬 제품 식별자가 제공된 경우 다음 식은 데이터 집합에서 제품 이름(“Product”)을 표시합니다.The following expression displays the product name from a dataset (“Product”), given the product identifier to match on:

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

LookupSetLookupSet

  • 키 필드를 지정하면 LookupSet 함수를 사용하여 일 대 다 관계가 있는 데이터 집합에서 값 집합을 검색할 수 있습니다.By specifying a key field, you can use the LookupSet function to retrieve a set of values from a dataset for a one-to-many relationship. 예를 들어 한 사람이 전화 번호를 여러 개 가질 수 있습니다.For example, a person can have multiple telephone numbers. 다음 예에서는 PhoneList 데이터 집합의 각 행에 개인 식별자와 전화 번호가 포함되어 있다고 가정합니다.In the following example, assume the dataset PhoneList contains a person identifier and a telephone number in each row. LookupSet 은 값 배열을 반환합니다.LookupSet returns an array of values. 다음 식은 반환 값을 단일 문자열로 결합하고 ContactID로 지정된 사람의 전화 번호 목록을 표시합니다.The following expression combines the return values into a single string and displays the list of telephone numbers for the person specified by ContactID:

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

변환 함수 Conversion Functions

Visual BasicVisual Basic 함수를 사용하여 필드를 한 데이터 형식에서 다른 데이터 형식으로 변환할 수 있습니다.You can use Visual BasicVisual Basic functions to convert a field from the one data type to a different data type. 필드의 기본 데이터 형식을 계산이나 텍스트 결합에 필요한 다른 데이터 형식으로 변환하는 데에 변환 함수를 사용할 수 있습니다.Conversion functions can be used to convert the default data type for a field to the data type needed for calculations or to combine text.

  • 다음 식에서는 상수 500을 필터 식의 값 필드에 있는 Transact-SQLTransact-SQL money 데이터 형식과 비교하기 위해 10진수 형식으로 변환합니다.The following expression converts the constant 500 to type Decimal in order to compare it to a Transact-SQLTransact-SQL money data type in the Value field for a filter expression.

    =CDec(500)  
    
  • 다음 식에서는 다중값 매개 변수 MySelection에 대해 선택된 값의 수를 표시합니다.The following expression displays the number of values selected for the multivalue parameter MySelection.

    =CStr(Parameters!MySelection.Count)  
    

의사 결정 함수 Decision Functions

  • Iif 함수는 식이 True인지 여부에 따라 두 값 중 하나를 반환합니다.The Iif function returns one of two values depending on whether the expression is true or not. 다음 식에서는 Iif 함수를 사용하여 의 값이 100을 초과하면 부울 값 True LineTotal 를 반환하고,The following expression uses the Iif function to return a Boolean value of True if the value of LineTotal exceeds 100. 그렇지 않으면 False를 반환합니다.Otherwise it returns False:

    =IIF(Fields!LineTotal.Value > 100, True, False)  
    
  • 여러 IIF 함수(“중첩 IIF”라고도 함)를 사용하여 PctComplete의 값에 따라 3개의 값 중 하나를 반환할 수 있습니다.Use multiple IIF functions (also known as "nested IIFs") to return one of three values depending on the value of PctComplete. 다음 식을 입력란의 채우기 색에 배치하면 입력란의 값에 따라 배경색을 변경할 수 있습니다.The following expression can be placed in the fill color of a text box to change the background color depending on the value in the text box.

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

    값이 10 이상이면 녹색 배경을 표시하고 1에서 9 사이면 파란색 배경을, 1 미만이면 빨간색 배경을 표시합니다.Values greater than or equal to 10 display with a green background, between 1 and 9 display with a blue background, and less than 1 display with a red background.

  • 같은 기능을 구현하는 다른 방법으로 Switch 함수를 사용하는 방법이 있습니다.A different way to get the same functionality uses the Switch function. Switch 함수는 테스트할 조건이 3개 이상인 경우에 유용합니다.The Switch function is useful when you have three or more conditions to test. Switch 함수는 계열에서 True로 계산되는 첫 번째 식과 연결된 값을 반환합니다.The Switch function returns the value associated with the first expression 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")  
    

    값이 10 이상이면 녹색 배경을 표시하고 1에서 9 사이면 파란색 배경을 표시하고 1이면 노란색 배경을 표시하고 0 이하면 빨간색 배경을 표시합니다.Values greater than or equal to 10 display with a green background, between 1 and 9 display with a blue background, equal to 1 display with a yellow background, and 0 or less display with a red background.

  • ImportantDate 필드의 값을 테스트하여 해당 날짜가 1주 넘게 경과된 경우 "Red"를 반환하고, 그렇지 않은 경우 "Blue"를 반환합니다.Test the value of the ImportantDate field and return "Red" if it is more than a week old, and "Blue" otherwise. 이 식은 보고서 항목에 있는 입력란의 Color 속성을 제어하는 데 사용할 수 있습니다.This expression can be used to control the Color property of a text box in a report item:

    =IIF(DateDiff("d",Fields!ImportantDate.Value, Now())>7,"Red","Blue")  
    
  • PhoneNumber 필드의 값을 테스트하여 null ( Nothing Visual BasicVisual Basic)이면 "No Value"를 반환하고, 그렇지 않으면 전화 번호 값을 반환합니다.Test the value of the PhoneNumber field and return "No Value" if it is null (Nothing in Visual BasicVisual Basic); otherwise return the phone number value. 이 식은 보고서 항목에 있는 입력란의 값을 제어하는 데 사용할 수 있습니다.This expression can be used to control the value of a text box in a report item.

    =IIF(Fields!PhoneNumber.Value Is Nothing,"No Value",Fields!PhoneNumber.Value)  
    
  • Department 필드의 값을 테스트하여 하위 보고서의 이름 또는 null ( Nothing Visual BasicVisual Basic)을 반환합니다.Test the value of the Department field and return either a subreport name or a null (Nothing in Visual BasicVisual Basic). 이 식은 포함된 조건부 드릴스루 하위 보고서에 사용할 수 있습니다.This expression can be used for conditional drillthrough subreports.

    =IIF(Fields!Department.Value = "Development", "EmployeeReport", Nothing)  
    
  • 필드 값이 Null인지 여부를 테스트합니다.Test if a field value is null. 이 식은 이미지 보고서 항목의 Hidden 속성을 제어하는 데 사용할 수 있습니다.This expression can be used to control the Hidden property of an image report item. 다음 예에서 [LargePhoto] 필드로 지정된 이미지는 필드의 값이 Null이 아닌 경우에만 표시됩니다.In the following example, the image specified by the field [LargePhoto] is displayed only if the value of the field is not null.

    =IIF(IsNothing(Fields!LargePhoto.Value),True,False)  
    
  • MonthName 함수는 지정한 월의 이름을 포함하는 문자열 값을 반환합니다.The MonthName function returns a string value containing the name of the specified month. 다음 예제는 필드에 0 값이 포함된 경우 NA를 표시합니다.The following example displays NA in the Month field when the field contains the value of 0.

    IIF(Fields!Month.Value=0,"NA",MonthName(IIF(Fields!Month.Value=0,1,Fields!Month.Value)))  
    

보고서 함수 Report Functions

식에서 보고서의 데이터를 조작하는 데 사용할 수 있는 추가 보고서 함수에 대한 참조를 추가할 수 있습니다.In an expression, you can add a reference to additional report functions that manipulate data in a report. 이 섹션에서는 이러한 함수 중 두 가지 예를 제공합니다.This section provides examples for two of these functions. 집계 함수 참조(보고서 작성기 및 SSRS)보고서 함수 및 예제에 대한 자세한 내용은 집계 함수 참조 ( 보고서 작성기 및 SSRS )를 참조하세요.For more information about report functions and examples, see Aggregate Functions Reference (Report Builder and SSRS).

합계 Sum

  • Sum 함수는 그룹 또는 데이터 영역에서 값의 합계를 구합니다.The Sum function can total the values in a group or data region. 이 함수는 그룹의 머리글 또는 바닥글에서 유용하게 사용됩니다.This function can be useful in the header or footer of a group. 다음 식에서는 Order 그룹 또는 데이터 영역에 데이터의 합계를 표시합니다.The following expression displays the sum of data in the Order group or data region:

    =Sum(Fields!LineTotal.Value, "Order")  
    
  • 조건부 집계 계산에도 Sum 함수를 사용할 수 있습니다.You can also use the Sum function for conditional aggregate calculations. 예를 들어 가능한 값이 Not Started, Started, Finished인 State라는 필드가 데이터 집합에 있는 경우 다음 식을 그룹 머리글에 배치하면 Finished 값에 대해서만 집계 합을 계산합니다.For example, if a dataset has a field that is named State with possible values Not Started, Started, Finished, the following expression, when placed in a group header, calculates the aggregate sum for only the value Finished:

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

RowNumber RowNumber

  • RowNumber 함수는 데이터 영역의 입력란에 사용될 경우 식이 나타나는 입력란의 각 인스턴스에 대한 행 번호를 표시합니다.The RowNumber function, when used in a text box within a data region, displays the row number for each instance of the text box in which the expression appears. 이 함수는 테이블에서 행 번호를 지정하는 데 유용합니다.This function can be useful to number rows in a table. 또한 행 수에 따라 페이지를 나누는 등 더욱 복잡한 태스크에 유용합니다.It can also be useful for more complex tasks, such as providing page breaks based on number of rows. 자세한 내용은 이 항목에서 페이지 나누기 를 참조하십시오.For more information, see Page Breaks in this topic.

    RowNumber 에 지정한 범위는 번호 다시 매기기를 시작하는 시점을 제어합니다.The scope you specify for RowNumber controls when renumbering begins. Nothing 키워드는 함수가 가장 바깥쪽 데이터 영역의 첫 번째 행부터 계산을 시작하는 것을 나타냅니다.The Nothing keyword indicates that the function will start counting at the first row in the outermost data region. 중첩 데이터 영역에서 계산을 시작하려면 데이터 영역 이름을 사용하고,To start counting within nested data regions, use the name of the data region. 그룹 내에서 계산을 시작하려면 그룹 이름을 사용합니다.To start counting within a group, use the name of the group.

    =RowNumber(Nothing)  
    

보고서 데이터 모양 Appearance of Report Data

식을 사용하여 데이터가 보고서에 나타나는 모양을 조작할 수 있습니다.You can use expressions to manipulate how data appears on a report. 예를 들어 단일 입력란에서 두 필드의 값을 표시하거나, 보고서에 대한 정보를 표시하거나, 페이지 나누기가 보고서에 삽입되는 모양에 영향을 줄 수 있습니다.For example, you can display the values of two fields in a single text box, display information about the report, or affect how page breaks are inserted in the report.

페이지 머리글 및 바닥글 Page Headers and Footers

보고서를 디자인할 때 보고서 이름 및 보고서 바닥글에 페이지 번호를 표시할 수 있습니다.When designing a report, you may want to display the name of the report and page number in the report footer. 이렇게 하려면 다음 식을 사용합니다.To do this, you can use the following expressions:

  • 다음 식에서는 보고서 이름과 보고서가 실행된 시간을 제공합니다.The following expression provides the name of the report and the time it was run. 식은 보고서 바닥글이나 보고서 본문의 입력란에 배치할 수 있습니다.It can be placed in a text box in the report footer or in the body of the report. 시간 형식은 .NET Framework.NET Framework 형식 문자열(간단한 날짜)로 지정됩니다.The time is formatted with the .NET Framework.NET Framework formatting string for short date:

    =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")  
    
  • 다음 식을 보고서 바닥글에 사용하면 보고서의 페이지 번호와 총 페이지 수를 제공합니다.The following expression, placed in a text box in the footer of a report, provides page number and total pages in the report:

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

    다음 예에서는 디렉터리 목록에서 찾을 수 있는 페이지와 유사한 페이지의 첫 번째와 마지막 값을 페이지 머리글에 표시하는 방법을 설명합니다.The following examples describe how to display the first and last values from a page in the page header, similar to what you might find in a directory listing. 이 예에서는 데이터 영역에 LastName라는 입력란이 있다고 가정합니다.The example assumes a data region that contains a text box named LastName.

  • 다음 식을 페이지 머리글 왼쪽의 입력란에 사용하면 페이지에서 LastName 입력란의 첫 번째 값을 제공합니다.The following expression, placed in a text box on the left side of the page header, provides the first value of the LastName text box on the page:

    =First(ReportItems("LastName").Value)  
    
  • 다음 식을 페이지 머리글 오른쪽의 입력란에 사용하면 페이지에서 LastName 입력란의 마지막 값이 제공됩니다.The following expression, placed in a text box on the right side of the page header, provides the last value of the LastName text box on the page:

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

    다음 예에서는 총 페이지 수를 표시하는 방법을 설명합니다.The following example describes how to display a page total. 이 예에서는 데이터 영역에 Cost라는 입력란이 있다고 가정합니다.The example assumes a data region that contains a text box named Cost.

  • 다음 식을 페이지 머리글 또는 바닥글에 사용하면 페이지의 Cost 입력란에 값의 합계를 제공합니다.The following expression, placed in the page header or footer, provides the sum of the values in the Cost text box for the page:

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

페이지 머리글 또는 바닥글에서 식마다 보고서 항목을 하나만 참조할 수 있습니다.You can refer to only one report item per expression in a page header or footer. 또한 페이지 머리글과 바닥글 식에서 입력란 이름을 참조할 수 있지만 입력란 내의 실제 데이터 식은 참조할 수 없습니다.Also, you can refer to the text box name, but not the actual data expression within the text box, in page header and footer expressions.

페이지 나누기 Page Breaks

일부 보고서에서는 페이지 나누기를 그룹 또는 보고서 항목 외에도 지정된 행 수의 끝에 배치할 수 있습니다.In some reports, you may want to place a page break at the end of a specified number of rows instead of, or in addition to, on groups or report items. 이렇게 하려면 그룹이나 원하는 세부 레코드를 포함하는 그룹을 만들고, 페이지 나누기를 그룹에 추가한 다음 그룹 식을 지정된 행 수에 따라 그룹에 추가합니다.To do this, create a group that contains the groups or detail records you want, add a page break to the group, and then add a group expression to group by a specified number of rows.

  • 다음 식을 그룹 식에 사용하면 25행마다 번호를 할당합니다.The following expression, when placed in the group expression, assigns a number to each set of 25 rows. 그룹에 페이지 나누기가 정의되어 있는 경우 이 식을 사용하면 25행마다 페이지가 나눠집니다.When a page break is defined for the group, this expression results in a page break every 25 rows.

    =Ceiling(RowNumber(Nothing)/25)  
    

    사용자가 페이지당 행 수에 대한 값을 설정하도록 허용하려면 RowsPerPage 라는 매개 변수를 만들고 다음 식에서 볼 수 있듯이 그룹 식이 매개 변수에 기반을 두도록 합니다.To allow the user to set a value for the number of rows per page, create a parameter named RowsPerPage and base the group expression on the parameter, as shown in the following expression:

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

    그룹의 페이지 나누기 설정에 대한 자세한 내용은 페이지 나누기 추가(보고서 작성기 및 SSRS)를 참조하세요.For more information about setting page breaks for a group, see Add a Page Break (Report Builder and SSRS).

속성 Properties

식은 입력란에서 데이터를 표시하는 데 사용될 뿐만 아니라Expressions are not only used to display data in text boxes. 속성이 보고서 항목에 적용되는 방식을 변경하는 데에도 사용됩니다.They can also be used to change how properties are applied to report items. 보고서 항목에 대한 스타일 정보를 변경하거나 보고서 항목의 표시 유형을 변경할 수 있습니다.You can change style information for a report item, or change its visibility.

서식 Formatting

  • 다음 식을 입력란의 Color 속성에 사용하면 Profit 필드의 값에 따라 텍스트 색이 달라집니다.The following expression, when used in the Color property of a text box, changes the color of the text depending on the value of the Profit field:

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

    Visual BasicVisual Basic 개체 변수 Me를 사용할 수도 있습니다.You can also use the Visual BasicVisual Basic object variable Me. 이 변수는 입력란의 값을 참조할 수 있는 다른 방법입니다.This variable is another way of referring to the value of a text box.

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

  • 다음 식을 데이터 영역에 있는 보고서 항목의 BackgroundColor 속성에 사용하면 각 행의 배경색을 흐린 녹색과 흰색으로 번갈아 표시합니다.The following expression, when used in the BackgroundColor property of a report item in a data region, alternates the background color of each row between pale green and white:

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

    특정 범위에 식을 사용할 경우 집계 함수의 데이터 집합을 나타내야 할 수도 있습니다.If you are using an expression for a specified scope, you may have to indicate the dataset for the aggregate function:

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

사용 가능한 색은 .NET Framework.NET Framework KnownColor 열거형에서 제공됩니다.Available colors come from the .NET Framework.NET Framework KnownColor enumeration.

차트 색Chart Colors

셰이프 차트의 색을 지정하려면 사용자 지정 코드를 사용하여 색이 데이터 요소 값에 매핑되는 순서를 제어할 수 있습니다.To specify colors for a Shape chart, you can use custom code to control the order that colors are mapped to data point values. 이렇게 하면 범주 그룹이 동일한 여러 차트에 일관된 색을 사용할 수 있습니다.This helps you use consistent colors for multiple charts that have the same category groups. 자세한 내용은 여러 셰이프 차트에 일관된 색 지정(보고서 작성기 및 SSRS)을 참조하세요.For more information, see Specify Consistent Colors across Multiple Shape Charts (Report Builder and SSRS).

표시 유형 Visibility

보고서 항목에 대해 표시 유형 속성을 사용하여 보고서에서 항목을 표시하거나 숨길 수 있습니다.You can show and hide items in a report using the visibility properties for the report item. 테이블과 같은 데이터 영역에서 처음에 식의 값을 기반으로 정보 행을 숨길 수 있습니다.In a data region such as a table, you can initially hide detail rows based on the value in an expression.

  • 다음 식을 그룹에서 정보 행의 초기 표시 유형에 사용하면 PctQuota 필드에서 90%를 초과하는 모든 판매액에 대해 정보 행을 표시합니다.The following expression, when used for initial visibility of detail rows in a group, shows the detail rows for all sales exceeding 90 percent in the PctQuota field:

    =Iif(Fields!PctQuota.Value>.9, False, True)  
    
  • 다음 식을 테이블의 Hidden 속성에 설정하면 테이블에 13개 이상의 행이 있는 경우에만 테이블이 표시됩니다.The following expression, when set in the Hidden property of a table, shows the table only if it has more than 12 rows:

    =IIF(CountRows()>12,false,true)  
    
  • 다음 식을 열의 Hidden 속성에 설정하면 데이터 원본에서 데이터를 검색한 후에 보고서 데이터 집합에 필드가 있는 경우에만 열이 표시됩니다.The following expression, when set in the Hidden property of a column, shows the column only if the field exists in the report dataset after the data is retrieved from the data source:

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

URL URLs

보고서 데이터를 사용하여 URL을 사용자 지정할 수 있으며 입력란에 대한 동작으로 URL을 추가할지 여부를 조건부로 제어할 수도 있습니다.You can customize URLs by using report data and also conditionally control whether URLs are added as an action for a text box.

  • 다음 식을 입력란에서 동작으로 사용하면 데이터 집합 필드 EmployeeID 를 URL 매개 변수로 지정하는 사용자 지정 URL이 생성됩니다.The following expression, when used as an action on a text box, generates a customized URL that specifies the dataset field EmployeeID as a URL parameter.

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

    자세한 내용은 URL에 하이퍼링크 추가(보고서 작성기 및 SSRS)를 참조하세요.For more information, see Add a Hyperlink to a URL (Report Builder and SSRS).

  • 다음 식은 입력란에 URL을 추가할지 여부를 조건부로 제어합니다.The following expression conditionally controls whether to add a URL in a text box. 이 식은 보고서에 활성 URL을 포함할지 여부를 사용자가 결정하도록 허용하는 IncludeURLs 라는 매개 변수를 사용합니다.This expression depends on a parameter named IncludeURLs that allows a user to decide whether to include active URLs in a report. 이 식은 입력란의 동작으로 설정됩니다.This expression is set as an action on a text box. 이 매개 변수를 False로 설정하고 보고서를 보면 하이퍼링크 없이 Microsoft Excel로 보고서를 내보낼 수 있습니다.By setting the parameter to False and then viewing the report, you can export the report Microsoft Excel without hyperlinks.

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

보고서 데이터 Report Data

식을 사용하여 보고서에 사용되는 데이터를 조작할 수 있습니다.Expressions can be used to manipulate the data that is used in the report. 매개 변수 및 다른 보고서 정보를 참조할 수 있습니다.You can refer to parameters and other report information. 보고서 데이터 검색에 사용하는 쿼리를 변경할 수도 있습니다.You can even change the query that is used to retrieve data for the report.

매개 변수 Parameters

매개 변수의 식을 사용하여 매개 변수에 대한 기본값을 다양화할 수 있습니다.You can use expressions in a parameter to vary the default value for the parameter. 예를 들어 매개 변수를 사용하여 보고서 실행에 사용하는 사용자 ID에 따라 특정 사용자에 대한 데이터를 필터링할 수 있습니다.For example, you can use a parameter to filter data to a particular user based on the user ID that is used to run the report.

  • 다음 식을 매개 변수에 대한 기본값으로 사용하면 보고서를 실행하는 사람의 사용자 ID를 수집합니다.The following expression, when used as the default value for a parameter, collects the user ID of the person running the report:

    =User!UserID  
    
  • 쿼리 매개 변수, 필터 식, 입력란 또는 보고서의 다른 영역에서 매개 변수를 참조하려면 Parameters 전역 컬렉션을 사용합니다.To refer to a parameter in a query parameter, filter expression, text box, or other area of the report, use the Parameters global collection. 이 예에서는 매개 변수 이름을 Department라고 가정합니다.This example assumes that the parameter is named Department:

    =Parameters!Department.Value  
    
  • 매개 변수는 보고서에서 만들 수 있지만 숨김으로 설정됩니다.Parameters can be created in a report but set to hidden. 보고서 서버에서 보고서를 실행할 때 매개 변수는 도구 모음에 나타나지 않으며 보고서를 읽는 사용자는 기본값을 변경할 수 없습니다.When the report runs on the report server, the parameter does not appear in the toolbar and the report reader cannot change the default value. 기본값으로 설정된 숨겨진 매개 변수를 사용자 지정 상수로 사용할 수 있습니다.You can use a hidden parameter set to a default value as custom constant. 이 값을 필드 식을 포함한 모든 식에 사용할 수 있습니다.You can use this value in any expression, including a field expression. 다음 식은 ParameterField라는 매개 변수에 대한 기본 매개 변수 값으로 지정된 필드를 식별합니다.The following expression identifies the field specified by the default parameter value for the parameter named ParameterField:

    =Fields(Parameters!ParameterField.Value).Value  
    

사용자 지정 코드 Custom Code

보고서에 사용자 지정 코드를 사용할 수 있습니다.You can use custom code in a report. 사용자 지정 코드는 보고서에 포함되거나 보고서에서 사용되는 사용자 지정 어셈블리에 저장됩니다.Custom code is either embedded in a report or stored in a custom assembly which is used in the report. 사용자 지정 코드에 대한 자세한 내용은 보고서 디자이너의 식에 포함된 사용자 지정 코드 및 어셈블리 참조(SSRS)를 참조하세요.For more information about custom code, see Custom Code and Assembly References in Expressions in Report Designer (SSRS).

사용자 지정 집계를 위해 그룹 변수 사용Using Group Variables for Custom Aggregation

특정 그룹 범위에 대해 로컬인 그룹 변수의 값을 초기화한 다음 해당 변수에 대한 참조를 식에 포함할 수 있습니다.You can initialize the value for a group variable that is local to a particular group scope and then include a reference to that variable in expressions. 사용자 지정 코드가 있는 그룹 변수를 사용하려면 사용자 지정 집계를 구현합니다.One of the ways that you can use a group variable with custom code is to implement a custom aggregate. 자세한 내용은 사용자 지정 집계를 위해 Reporting Services 2008의 그룹 변수 사용(Using Group Variables in Reporting Services 2008 for Custom Aggregation)을 참조하십시오.For more information, see Using Group Variables in Reporting Services 2008 for Custom Aggregation.

변수에 대한 자세한 내용은 보고서 및 그룹 변수 컬렉션 참조(보고서 작성기 및 SSRS)를 참조하세요.For more information about variables, see Report and Group Variables Collections References (Report Builder and SSRS).

런타임에 Null 또는 0 값 표시하지 않기Suppressing Null or Zero Values at Run Time

식의 일부 값은 보고서를 처리할 때 Null이나 정의되지 않은 값으로 계산될 수 있습니다.Some values in an expression can evaluate to null or undefined at report processing time. 이 경우 런타임 오류가 발생하여 입력란에 계산된 식이 아닌 #Error 가 표시될 수 있습니다.This can create run-time errors that result in #Error displaying in the text box instead of the evaluated expression. IIF 함수는 이러한 동작에 특히 민감합니다. If-Then-Else 문과 달리 IIF 문의 각 부분(함수 호출 포함)이 true 또는 false를 테스트하는 루틴에 전달되기 전에 계산되기 때문입니다.The IIF function is particularly sensitive to this behavior because, unlike an If-Then-Else statement, each part of the IIF statement is evaluated (including function calls) before being passed to the routine that tests for true or false. =IIF(Fields!Sales.Value is NOTHING, 0, Fields!Sales.Value) 문은 가 NOTHING인 경우 렌더링된 보고서에서 #Error Fields!Sales.Value 를 생성합니다.The statement =IIF(Fields!Sales.Value is NOTHING, 0, Fields!Sales.Value) generates #Error in the rendered report if Fields!Sales.Value is NOTHING.

이러한 상황을 방지하려면 다음 전략 중 하나를 사용합니다.To avoid this condition, use one of the following strategies:

  • 필드 B의 값이 0이거나 정의되지 않은 경우 분자를 0으로, 분모를 1로 설정합니다. 그렇지 않은 경우 분자를 필드 A의 값으로, 분모를 필드 B의 값으로 설정합니다.Set the numerator to 0 and the denominator to 1 if the value for field B is 0 or undefined; otherwise, set the numerator to the value for field A and the denominator to the value for field B.

    =IIF(Field!B.Value=0, 0, Field!A.Value / IIF(Field!B.Value =0, 1, Field!B.Value))  
    
  • 사용자 지정 코드 함수를 사용하여 식의 값을 반환합니다.Use a custom code function to return the value for the expression. 다음 예에서는 현재 값과 이전 값의 차이를 백분율로 반환합니다.The following example returns the percentage difference between a current value and a previous value. 이 식은 연속하는 두 값의 차이를 계산하는 데에 사용할 수 있으며 경계 사례인 첫 번째 비교(이전 값이 없는 경우)와 이전 값이나 현재 값이 null ( Nothing Visual BasicVisual Basic)인 경우도 처리할 수 있습니다.This can be used to calculate the difference between any two successive values and it handles the edge case of the first comparison (when there is no previous value) and cases whether either the previous value or the current value is null (Nothing in Visual BasicVisual Basic).

    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  
    

    다음 식은 "ColumnGroupByYear" 컨테이너(그룹 또는 데이터 영역)에 대해 입력란에서 이 사용자 지정 코드를 호출하는 방법을 보여 줍니다.The following expression shows how to call this custom code from a text box, for the “ColumnGroupByYear” container (group or data region).

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

    이 방법으로 런타임 예외를 방지할 수 있습니다.This helps to avoid run-time exceptions. 이제 입력란의 =IIF(Me.Value < 0, "red", "black") Color 속성에서 같은 식을 사용하여 값이 0보다 큰지 작은지에 따라 조건부로 텍스트를 표시할 수 있습니다.You can now use an expression like =IIF(Me.Value < 0, "red", "black") in the Color property of the text box to conditionally the display text based on whether the values are greater than or less than 0.

관련 항목:See Also

필터 수식 예(보고서 작성기 및 SSRS) Filter Equation Examples (Report Builder and SSRS)
그룹 식 예(보고서 작성기 및 SSRS) Group Expression Examples (Report Builder and SSRS)
보고서에 사용되는 식(보고서 작성기 및 SSRS) Expression Uses in Reports (Report Builder and SSRS)
식(보고서 작성기 및 SSRS) Expressions (Report Builder and SSRS)
일반적으로 사용되는 필터(보고서 작성기 및 SSRS) Commonly Used Filters (Report Builder and SSRS)