代码之家  ›  专栏  ›  技术社区  ›  Pizzor2000

在WPF中显示SSRS报告

  •  0
  • Pizzor2000  · 技术社区  · 6 年前

    我正在尝试从SQL Server Reporting Services获取一个报表,以显示在WPF应用程序上。服务器上有SQL server 2014。

    我在XAML中添加了一个ReportViewer,如我在示例中看到的:

    <Window x:Class="WPFReport.MainWindow"
        ...
        xmlns:rv="clr-namespace:Microsoft.Reporting.WinForms;assembly=Microsoft.ReportViewer.WinForms"
        Title="MainWindow" Height="500" Width="850">
    
        ...
    
        <WindowsFormsHost>
            <rv:ReportViewer x:Name="_reportViewer" />
        </WindowsFormsHost>
    
        ...
    
    </Window>
    

    我在任何地方看到的将报表查看器连接到报表的代码如下:

    public MainWindow()
    {
        InitializeComponent();
    
        _reportViewer.Load += ReportViewer_Load;
    }
    
    private void ReportViewer_Load(object sender, EventArgs e)
    {
        if(!_isReportViewerLoaded)
        {
            _reportViewer.ProcessingMode = ProcessingMode.Remote;
            _reportViewer.ServerReport.ReportServerUrl = 
                new Uri("http://{MyReportServer}/ReportServer/");
            _reportViewer.ServerReport.ReportPath = "/Reports/{MyReportName}.rdl";
    
            _reportViewer.RefreshReport();
    
            _isReportViewerLoaded = true;
        }
    }
    

    然而,我试图访问的报告似乎是以不同的方式访问的。

    我可以在浏览器中通过 ReportViewer.aspx 文件:

    http://{MyReportServer}/ReportServer/Pages/ReportViewer.aspx?%2f{MyReportName}
    

    有没有办法在报表查看器中访问我的报表?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Pizzor2000    6 年前

    在尝试了一些格式之后,这似乎可以工作:

    _reportViewer.ProcessingMode = ProcessingMode.Remote;
    _reportViewer.ServerReport.ReportServerUrl = new Uri("http://{MyReportServer}/ReportServer");
    _reportViewer.ServerReport.ReportPath = "/{MyReportName}";
    
    _reportViewer.RefreshReport();