2010-12-14 5 views
2

현재 사용자가 보고서에 액세스 할 수있는 URL에서 보고서 관리자를 사용하여 SQL Reporting Services 2005를 설정했습니다. 보고서는 거기서 잘 작동하고 있습니다.C# 코드에서 매개 변수화 된 SSRS 보고서 내보내기

내 문제는 C# .net 4.0 코드 에서 이러한 보고서를 생성하려고하는데 (예 : 화면에서 보고서 뷰어 사용). 생성 및 C# .net 응용 프로그램에서 PDF 파일로 보고서를 내보내려면 싶습니다. 보고서에는 매개 변수가 필요하므로 매개 변수를 보고서에 전달해야합니다. 어떻게해야합니까?

나는 온라인에서 검색 중이며 잘못된 키워드를 사용하고 있거나 많은 정보가 없습니다. 상당히 일반적인 질문이 될 것으로 예상되므로이 정보를 찾는 것이 얼마나 어려웠는지 나는 놀랍습니다. 모든 조언/도움을 주시면 감사하겠습니다.

답변

2
string outputPath = "C:\Temp\PdfReport.pdf"; 

ReportViewer reportViewer = new ReportViewer(); 
reportViewer.ServerReport serverReport = new ServerReport(); 
reportViewer.ServerReport.ReportPath = @"path/to/report"; 
reportViewer.ServerReport.ReportServerUrl = new Uri(@"http://..."); 
reportViewer.ProcessingMode = ProcessingMode.Local; 

reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials = new 
    System.Net.NetworkCredential(username, password, domain) 

List<ReportParameter> parameters = new List<ReportParameter>(); 
parameters.Add(new ReportParameter("parameterName", "value")); 

string mimeType; 
string encoding; 
string extension; 
string[] streams; 
Warning[] warnings; 
byte[] pdfBytes= serverReport.Render("PDF", string.Empty, out mimeType, 
    out encoding, out extension, out streams, out warnings); 

// save the file 
using (FileStream fs = new FileStream(outputPath, FileMode.Create)) 
{ 
    fs.Write(pdfBytes, 0, pdfBytes.Length); 
    fs.Close(); 
} 
1

ReportViewer의 2005 버전을 많이 사용하지 않았습니다. 하지만 당신은 같은 것을 할 수 있어야한다 :

ServerReport serverReport = new ServerReport(); 
serverReport.ReportPath = "path/to/report"; 
serverReport.ReportServerCredentials = ...; 
serverReport.ReportServerUrl = "http://...."; 
serverReport.SetParameters(...); 
string mimeType; 
string encoding; 
string extension; 
string[] streams; 
Warning[] warnings; 
byte[] asPdf = serverReport.Render("PDF", string.Empty, out mimeType, out encoding, out extension, out streams, out warnings); 

ServerReportLocalReport가 모두의 ReportViewer의 사용 가능한 외부 수 있도록 설계되었다는 것을 일반 테이크 아웃.

+0

실제로 'ServerReport'에는 public 생성자가 없지만'LocalReport'는 (LocalReport를 많이 사용했습니다.) 잘못된 점이 있습니다. ReportViewer를 인스턴스화 한 다음 여기에서 ServerReport 객체를 사용할 수 있어야합니다. –

+0

당신이 제출 한 내용은 가깝고 좋은 출발 이었지만 자격 증명을 쓰는 방법과 PDF에 실제로 파일을 쓰는 방법이 누락되었습니다. 도와 주셔서 감사합니다. – Ryan

0

보고서를 PDF로 열려고하는 것과 비슷한 문제가있었습니다. 브라우저 창에서 매개 변수가 포함 된 pdf 만 열면 보고서 서버 자체를 사용하고 Format = PDF을 쿼리 문자열 옵션으로 지정할 수 있습니다.

예 :

http://myServer/ReportServer/Pages/ReportViewer.aspx?%2fMyApplicationReports%2fAcutalReportFileName&rs:Command=Render&rs:Format=PDF&ParamOneId=31943&ParamTwoDate=17072015

나는이 밖에 다른 시간 다른 사람을 절약 바랍니다!