2008-09-19 5 views

답변

7

은 물론 그 것이다.

당신이 찾고있는 것은 Microsoft.Reporting.WebForms 어셈블리에있는 ReportViewer 컨트롤입니다. 그것은 사람들에게 보고서 매개 변수를 설정하고 보고서를 가져올 수있는 인터페이스를 제공 할 웹 양식에 권한을 부여 할 수 있습니다.

또는 매개 변수를 직접 설정하고 필요한 형식으로 보고서를 출력 할 수 있습니다. 우리는 우리의 응용 프로그램에서 PDF를 출력하는 데 사용합니다.

예를 들어, 우리는 보고서 중 하나에 대한 reportviewer 개체를 설정하고 PDF를 가져온 다음이를 다시 사용자에게 보냅니다. 특정 코드 블록은 웹 처리기입니다.

public void ProcessRequest(HttpContext context) 
{ 
    string report = null; 
    int managerId = -1; 
    int planId = -1; 
    GetParametersFromSession(context.Session, out report, out managerId, out planId); 
    if (report == null || managerId == -1 || planId == -1) 
    { 
     return; 
    } 

    CultureInfo currentCulture = Thread.CurrentThread.CurrentCulture; 

    List<ReportParameter> parameters = new List<ReportParameter>(); 
    parameters.Add(new ReportParameter("Prefix", report)); 
    parameters.Add(new ReportParameter("ManagerId", managerId.ToString())); 
    parameters.Add(new ReportParameter("ActionPlanId", planId.ToString())); 
    string language = Thread.CurrentThread.CurrentCulture.Name; 
    language = String.Format("{0}_{1}", language.Substring(0, 2), language.Substring(3, 2).ToLower()); 
    parameters.Add(new ReportParameter("Lang", language)); 

    ReportViewer rv = new ReportViewer(); 
    rv.ProcessingMode = ProcessingMode.Remote; 
    rv.ServerReport.ReportServerUrl = new Uri(ConfigurationManager.AppSettings["ReportServer"]); 
    if (ConfigurationManager.AppSettings["DbYear"] == "2007") 
    { 
     rv.ServerReport.ReportPath = "/ActionPlanning/Plan"; 
    } 
    else 
    { 
     rv.ServerReport.ReportPath = String.Format("/ActionPlanning{0}/Plan", ConfigurationManager.AppSettings["DbYear"]); 
    } 
    rv.ServerReport.SetParameters(parameters); 

    string mimeType = null; 
    string encoding = null; 
    string extension = null; 
    string[] streamIds = null; 
    Warning[] warnings = null; 
    byte[] output = rv.ServerReport.Render("pdf", null, out mimeType, out encoding, out extension, out streamIds, out warnings); 

    context.Response.ContentType = mimeType; 
    context.Response.BinaryWrite(output); 
} 
0

URL 액세스 방법을 사용하지 않으면 매개 변수 선택 항목과 같은 일부 기능이 손실됩니다.

보고서 서버 URL 액세스는 HTML 뷰어 및 보고서 도구 모음의 확장 기능을 지원합니다. SOAP API는이 유형의 렌더링 된 보고서를 지원하지 않습니다. SOAP를 사용하여 보고서를 렌더링하는 경우 자체 보고서 도구 모음을 디자인하고 개발해야합니다.

http://msdn.microsoft.com/en-us/library/ms155089.aspx

관련 문제