다음을 통해 공유


식에 사용자 지정 코드 참조 사용(보고서 작성기 2.0)

보고서에 포함된 사용자 지정 코드에 대한 참조를 추가할 수 있습니다. 단일 보고서에서 여러 번 사용된 함수, 사용자 지정 상수 또는 복잡한 함수에는 포함 코드를 사용합니다.

런타임에 한 번 계산되고 보고서 처리 과정에서 같은 값을 유지해야 하는 시간적 제한을 받는 계산의 경우 보고서 또는 그룹 변수 사용을 고려하십시오. 자세한 내용은 식에서 보고서 및 그룹 변수 컬렉션 참조 사용(보고서 작성기 2.0)을 참조하십시오.

사용자 지정 코드에는 새로운 사용자 지정 상수, 변수, 함수 또는 서브루틴이 포함될 수 있습니다. Parameters 컬렉션과 같은 기본 제공 컬렉션에 대한 읽기 전용 참조를 포함할 수 있습니다. 그러나 사용자 지정 함수에 보고서 데이터 값 집합을 전달할 수 없으며 특히 사용자 지정 집계는 지원되지 않습니다.

포함 코드

보고서에 포함 코드를 추가하려면 보고서 속성 대화 상자의 코드 페이지를 사용합니다. 만드는 코드 블록에는 여러 메서드가 포함될 수 있습니다. 포함 코드의 메서드는 MicrosoftVisual Basic으로 작성되고 인스턴스를 기반으로 해야 합니다. 보고서 처리기는 System.ConvertSystem.Math 네임스페이스에 대한 참조를 자동으로 추가합니다. 이외 다른 어셈블리에 대한 참조는 보고서 작성기 2.0에서 지원되지 않습니다.

포함 코드의 메서드는 전역적으로 정의된 Code 멤버를 통해 사용할 수 있습니다. Code 멤버와 메서드 이름을 참조하여 이러한 메서드에 액세스합니다. 다음 예에서는 StandardCost 필드 값을 달러 값으로 변환하는 ToUSD 메서드를 호출합니다.

=Code.ToUSD(Fields!StandardCost.Value)

사용자 지정 코드에서 기본 제공 컬렉션을 참조하려면 기본 제공 Report 개체에 대한 참조를 포함합니다.

=Report.Parameters!Param1.Value

다음 예에서는 몇 가지 사용자 지정 상수 및 변수를 정의하는 방법을 보여 줍니다.

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로 처리됩니다.

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

기본 제공 개체 컬렉션 및 초기화에 대한 자세한 내용은 식에 전역 컬렉션 사용을 참조하십시오.

사용자 지정 코드의 매개 변수 참조의 예

보고서 정의의 코드 블록 또는 사용자가 제공하는 사용자 지정 어셈블리에서 사용자 지정 코드를 통해 전역 매개 변수 컬렉션을 참조할 수 있습니다. 매개 변수 컬렉션은 읽기 전용이며 공개 반복기는 없습니다. Visual BasicFor Each 구조를 사용하여 컬렉션을 단계별로 실행할 수 없습니다. 보고서 정의에 정의된 매개 변수 이름을 알아야 사용자의 코드에서 해당 매개 변수를 참조할 수 있습니다. 하지만 다중값 매개 변수의 모든 값을 반복할 수 있습니다. 자세한 내용은 식에 사용자 지정 코드 참조 사용(보고서 작성기 2.0)을 참조하십시오.

다음 표에는 사용자 지정 코드에서 기본 제공 컬렉션 Parameters를 참조하는 예가 들어 있습니다.

설명

식에서의 참조

사용자 지정 코드 정의

전체 전역 매개 변수 컬렉션을 사용자 지정 코드에 전달.

이 함수는 특정 보고서 매개 변수 MyParameter의 값을 반환합니다.

=Code.DisplayAParameterValue(Parameters)

Public Function DisplayAParameterValue(

ByVal parameters as Parameters) as Object

Return parameters("MyParameter").Value

End Function

개별 매개 변수를 사용자 지정 코드에 전달.

이 예에서는 전달된 매개 변수의 값을 반환합니다. 매개 변수가 다중값 매개 변수일 경우 반환 문자열은 모든 값의 연결입니다.

=Code.ShowParametersValues(Parameters!DayOfTheWeek)

Public Function ShowParameterValues(ByVal parameter as Parameter)
 as String
   Dim s as String 
   If parameter.IsMultiValue then
      s = "Multivalue: " 
      For i as integer = 0 to parameter.Count-1
         s = s + CStr(parameter.Value(i)) + " " 
      Next
   Else
      s = "Single value: " + CStr(parameter.Value)
   End If
   Return s
End Function

사용자 지정 어셈블리

보고서 작성기 2.0에서 사용자 지정 어셈블리는 보고서 서버에서만 사용할 수 있습니다. 보고서 서버에 코드가 설치된 후 코드에 액세스하는 방법은 SQL Server 온라인 설명서의 Reporting Services 설명서에 있는 "식을 통해 사용자 지정 어셈블리 액세스"를 참조하십시오.