식을 통해 사용자 지정 어셈블리 액세스

사용자 지정 어셈블리를 만들고, 보고서 디자이너 또는 보고서 서버에서 사용할 수 있도록 하고, 적절한 보안 정책을 추가하고, 보고서 정의에서 사용자 지정 어셈블리에 대한 참조를 추가한 후에는 보고서 식을 사용하여 어셈블리의 클래스 멤버에 액세스할 수 있습니다. 식의 사용자 지정 코드를 참조하려면 어셈블리 내에서 클래스의 멤버를 호출해야 합니다. 이 방법은 메서드가 정적인지 아니면 인스턴스 기반인지에 따라 달라집니다.

보고서 정의 파일에서 정적 멤버 호출

정적 멤버는 인스턴스화된 개체가 아니라 클래스 또는 형식 자체에 속합니다. 이러한 멤버는 클래스에서 직접 호출하여 액세스할 수 있습니다. 정적 멤버가 기능을 가장 잘 수행하므로 보고서에서 사용자 지정 함수를 호출하려면 가능하면 항상 정적 멤버를 사용해야 합니다. 정적 멤버를 호출하려면 =Namespace.Class.Method 형식을 사용하는 식으로 참조해야 합니다.

정적 멤버 호출

  • 정적 멤버를 호출하려면 네임스페이스, 클래스 이름 및 멤버 이름을 포함하는 정규화된 멤버 이름과 같게 식을 설정합니다. 다음 예제에서는 StandardCost 필드 값을 달러에서 파운드 스털링으로 변환하고 보고서에 표시하는 ToGBP 메서드를 호출합니다.

    =CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)  
    

정적 필드 및 속성에 대한 중요한 정보

현재 모든 보고서는 동일한 애플리케이션에서 실행됩니다기본. 이것은 사용자별 정적 데이터가 있는 보고서에서 동일한 보고서의 다른 인스턴스에 이 데이터를 공개한다는 의미입니다. 이 조건을 사용하면 현재 특정 보고서를 실행하는 모든 사용자가 한 사용자의 정적 데이터를 사용할 수 있습니다. 이러한 이유로 사용자 지정 어셈블리 또는 Code 요소에서 정적 필드 또는 속성을 사용하지 않는 것이 좋습니다. 대신 보고서에서 인스턴스 필드 또는 속성을 사용합니다. 정적 메서드는 상태 또는 데이터를 저장하지 않으므로 계속 사용할 수 있습니다.

보고서 정의 파일에서 인스턴스 멤버 호출

사용자 지정 어셈블리에 보고서 정의에 액세스해야 하는 인스턴스 멤버가 포함된 경우 클래스의 인스턴스 이름을 보고서에 추가해야 합니다. 보고서 속성 대화 상자의 코드 탭을 사용하여 클래스의 인스턴스 이름을 추가할 수 있습니다. 보고서에 클래스의 인스턴스를 추가하는 방법에 대한 자세한 내용은 보고서 디자이너의 식에 포함된 사용자 지정 코드 및 어셈블리 참조(SSRS)를 참조하세요.

정적 멤버를 호출하려면 =Code*.InstanceName.Method* 형식의 식으로 정적 멤버를 참조해야 합니다.

인스턴스 멤버 호출

  • 사용자 지정 어셈블리의 인스턴스 멤버를 호출하려면 코드 키워드(keyword) 뒤에 인스턴스 이름과 메서드를 참조해야 합니다. 다음 예제에서는 StandardCost 필드 값을 달러에서 유로로 변환하고 보고서에 표시하는 ToEUR 인스턴스 메서드를 호출합니다.

    =Code.m_myDollarCoversion.ToEUR(Fields!StandardCost.Value)  
    

보고서에서 사용자 지정 어셈블리 사용