SQL Server 2005 Reporting Services 보고서에서 .Net 어셈블리를 호출하시나요?

StackOverflow https://stackoverflow.com/questions/71488

  •  09-06-2019
  •  | 
  •  

문제

현재 .rdl 파일 내의 코드 블록에 여러 가지 공통 기능이 포함된 보고서 세트가 있습니다.이는 분명히 유지 관리 문제를 나타내며, 이러한 서로 다른 보고서가 공통 코드 라이브러리를 공유하는 방법을 아는 사람이 있는지 궁금합니다.

이상적으로는 모든 보고서가 액세스하고 함수를 호출할 수 있는 Reporting Services 프로젝트에 .Net 어셈블리를 연결하고 싶습니다.이렇게 하면 공통 기능을 변경해야 할 때마다 약 100개의 보고서를 업데이트하고 재배포해야 하는 번거로움을 덜 수 있습니다.

어떤 제안이 있으십니까?

도움이 되었습니까?

해결책

Visual Studio 내 보고서 속성의 '참조' 탭에서 관리 코드가 포함된 어셈블리에 대한 세부 정보를 추가합니다.이 코드는 지정된 인스턴스 이름을 사용하여 보고서 내의 표현식에서 호출할 수 있습니다.

이 어셈블리는 GAC 또는 Visual Studio의 PrivateAssemblies 디렉터리에 저장될 수 있으며 보고 서비스 서버의 보고서 서비스 'bin' 디렉터리에 배포될 수 있습니다.자세한 내용은 다음을 참조하세요. Reporting Services에서 사용자 지정 어셈블리 또는 포함 코드를 사용하는 방법

다른 팁

나는 이것으로 많은 고통을 겪었으므로 이것이 누군가에게 도움이되기를 바랍니다.MSDN 기사에서 얻을 수 있지만 아래에는 누군가가 이 작업을 좀 더 빠르게 진행하는 데 도움이 될 수 있는 몇 가지 사항이 있습니다.

rssrvpolicy.config 파일에 다음을 추가하는 것을 잊지 마세요:

<CodeGroup class="UnionCodeGroup"
   version="1"
   PermissionSetName="FullTrust"
   Name="MyCodeGroup"
   Description="Code group for my data processing extension">
      <IMembershipCondition class="UrlMembershipCondition"
         version="1"
         Url="C:\pathtocustomassembly\customassembly.dll"
       />
</CodeGroup>

나는 이것을하는 것을 잊어 버렸고 한동안 그것을 싫어했습니다.

또한 새 dll을 사용하여 2005년에 다음 폴더를 모두 누르는 것을 잊지 마십시오.

Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies 
Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin

또한 어셈블리에 log4net을 사용하지 마십시오.나는 그것을 작동시킬 수 없었다.누군가는 할 수 있지만 나는 그렇지 않을 수도 있습니다.

게다가 나처럼 실수를 하면 Visual Studio를 닫을 때까지 파일을 삭제할 수 없습니다.

또한 메소드를 공유하거나 정적으로 만드세요.더 쉽습니다.

배포 배치 파일을 만듭니다.다음과 같은 것 :

@ECHO OFF
REM   Name: SRSDeploy_Local.bat
REM
REM   This batch files copies my custom assembly to my Reporting Services folders.
REM
REM   This is the SQL Server 2005 version:
copy "C:\Projects\Common\lib\SCI.Common.SSRSUtils.dll" "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies"
copy "C:\Projects\Common\lib\SCI.Common.SSRSUtils.dll" "C:\Program Files\Microsoft SQL Server\MSSQL.2\Reporting Services\ReportServer\bin"  

마지막으로 미리보기 전에 보고서를 작성하세요.

그것이 구축되면 당신은 당신의 길을 가고있을 것입니다.

제외하고...

항상 다음 오류가 발생하므로 프로덕션 보고서 서버에 배포할 수 없습니다.

코드 모듈을 로드하는 중 오류가 발생했습니다.

그것이 제가 지금 하고 있는 일입니다.

다음 문서에는 SSRS 보고서에서 .Net 코드를 호출하는 다양한 방법이 모두 나열되어 있습니다. 사용자 정의 코드를 사용하여 Microsoft SQL Server 2000 보고 서비스 확장

이러한 모든 보고서가 동일한 서버에 대해 실행되는 경우 고려해야 할 또 다른 옵션은 데이터베이스에서 .Net 저장 프로시저를 사용하여 코드를 보관하는 것입니다.

감사합니다. 이제 보고서에서 어셈블리를 호출할 수 있습니다.

보충 질문:필드 및 매개 변수와 같은 보고서 디자이너의 개체를 인식하도록 어셈블리를 만들 때 포함할 수 있는 네임스페이스가 있습니까?예를 들어 강력한 형식의 필드 컬렉션을 내 어셈블리에 전달할 수 있다면 정말 좋을 것입니다.

그리고 대답은 다음과 같습니다. 몇 시간 동안 검색한 결과 \Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\Microsoft.ReportingServices.ProcessingObjectModel.dll을 어셈블리에 참조로 추가하면 필드와 같은 다양한 Reporting Services 유형에 액세스할 수 있다는 사실이 드러났습니다. 및 매개변수.Reporting Services 2008에서는 네임스페이스 변경.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top