2011-08-31 2 views
2

우리는 SSRS로 Crystal을 대체하려고합니다.SSRS를 사용하여 SSRS로 파일 바꾸기

C#에서 .rdl 또는 .rdl.data 파일을로드하고 메모리 스트림에 보고서를 생성 할 수 있는지 알고 싶습니다.

나는 LocalReport을 사용하는 몇 가지 예제를 보았지만 이것은 WinForms 또는 WebForms 어셈블리의 일부인 것처럼 보입니다.

그래서 내가 알고 싶은 것입니다 :

  • 은 우리의 서비스의 일환으로 파일에서 보고서를로드 할 수 있습니다.
  • 우리는 다음
  • 내가 웹폼을 사용하지 않고이 작업을 수행 할 수 있습니다 (메모리 스트림을 말할 수) 스트림에 보고서를 생성 할 수 있습니다/내 서비스 윈폼 어셈블리
  • 우리는 웹 서비스에 대한을 사용하지 않고이를 달성 할 수 SSRS

답변

7

확실한 답변이 아니지만 지원 자료라고 할 수 있습니다.

서비스 클라이언트를 만들고 주어진 보고서를 PDF로 호출하여이를 파일 스트림에 저장하는 방법을 보여주는 msdn의이 코드 예제가 있습니다.

http://msdn.microsoft.com/en-us/library/reportexecution2005.reportexecutionservice.render.aspx

나는 현재 SSRS 서비스에 VS를 가리키는 후와 상호 작용하는 올바른 클라이언트 개체를 찾는 데 문제. 서비스와 상호 작용하는 데 사용하는 개체는 다음과 같습니다.

ReportExecutionServiceSoapClient rs = new ReportExecutionServiceSoapClient(); 

그러나 인터페이스가 내 코드 예제와 일치하지 않습니다. 그래서 이것은 조금 더 가깝지만 답이 아닙니다.

UPDATE : 올바른 프록시 클래스 생성

여기에 프록시를 제대로 생성하는 방법에 대한 링크입니다. Windows sdk가 설치되어 있어야합니다 (현재 7.1 임). 내가 그랬던 것처럼 microsoft.com에서 찾을 수 있습니다. 명령 줄을 실행하면 파일이 생성됩니다. 프로젝트에 포함 :

http://msdn.microsoft.com/en-us/library/ms155134%28v=SQL.110%29.aspx

업데이트 : 난 그냥 올바른 프록시를 생성했다

일하는 일을 얻었다. SSRS 2010의 경우 보고서 실행 및 관리를 두 가지 서비스로 분리 한 것 같습니다. C# 콘솔 앱에서 내 보고서를 생성하는 데 필요한 유일한 서비스는 실행 서비스였습니다. 어쩌면 그것은 모든 사람에게 명백한 것일 테지만 나 :?

좋아 그래서 윈도우 SDK 명령 쉘을 열고 실행 서비스를 위해이 물건을 넣어 : C에

wsdl /language:CS /n:"Microsoft.SqlServer.ReportExecution" http://<Server Name>/reportserver/reportexecution2010.asmx?wsdl /o:"ReportExecution.cs" 

이동 : \ 프로그램 파일 \은 Microsoft SDKs \ 윈도우 \ v7.1을하고 데리러 ReportExecution.cs 파일 프로젝트에 복사하여 붙여 넣으십시오.위와 같은 하나 this link에서 예제를 따라

Microsoft.SqlServer.ReportExecution.ReportExecutionService rsExec = 
       new Microsoft.SqlServer.ReportExecution.ReportExecutionService(); 
      rsExec.Credentials = System.Net.CredentialCache.DefaultCredentials; 
      rsExec.Url = @"http://<ServerName>/reportserver/ReportExecution2005.asmx"; 

팔로우를, 당신은 당신의 편리한 C#을 응용 프로그램에서 꽤 멋진 보고서를 생성해야합니다

그런 다음 당신은이 말을해야합니다.