2009-10-27 46 views

回答

0

在你的问题中提供更多的细节,但据我所知,MSDN ReportViewer Controls将是非常好的,你自己学习更多。

0

一两件事,我会避免在Microsoft报表查看器控件。只需使用浏览器控件,浏览报告,像使用浏览器时那样传递URL中的参数。

这是好多种原因。

  1. MS报告查看器控件有很多错误,你会被困住。
  2. 浏览器和报表查看器以略微不同的方式呈现报表,例如边距等。因此,如果您切换到Web应用程序并需要使用浏览器访问报表,则必须调整大部分报表。这让我想到下一个问题。 。 。
  3. 如果你需要去一个web应用程序,你将需要重新实现你如何调用报告,传递参数等,而不是仅仅使用你已经创建的浏览器功能(你使用控件vs不同的方式访问报告。使用浏览器)

否则,如果你真的想使用报表查看器控件,这里是(使用.NET 2.0)样本:

ReportViewer rvReportViewerControl = new ReportViewer(); 
    rvReportViewerControl.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote; 
    rvReportViewerControl.ServerReport.ReportServerUrl = new Uri("http://<SERVERNAME>/ReportServer"); 
    rvReportViewerControl.ServerReport.ReportPath = "<FOLDER PATH TO REPORTS>"); 
    rvReportViewerControl.ShowParameterPrompts = false; 
    Microsoft.Reporting.WinForms.ReportParameterInfoCollection rpInfoCollection = rvReportViewerControl.ServerReport.GetParameters(); 
    if (rpInfoCollection.Count > 0) 
    { 
     List<ReportParameter> paramList = new List<ReportParameter>(); 

     foreach (ReportParameterInfo reportParameter in rpInfoCollection) 
     { 
       string parameterName = reportParameter.Name.ToString(); 
       string parameterValue = ""; 
       bool isParameterVisible = reportParameter.Visible; 
       paramList.Add(new ReportParameter(parameterName, parameterValue, isParameterVisible)); 
     } 

     rvReportViewerControl.ServerReport.SetParameters(paramList); 
    } 

    rvReportViewerControl.RefreshReport(); 

This site有很多有用的信息。

+0

做了一些编辑,我的第一个代码不会很正确。尽管现在应该是好的。 – richard