ReportViewer未显示报告-URL问题

本文关键字:-URL 问题 报告 显示 ReportViewer | 更新日期: 2023-09-27 18:20:36

我有这个:

<Window>
<ContentPresenter Content="{Binding Viewer}" />
</Window>
internal class MainViewModel : ObservableObject{
        private WindowsFormsHost _viewer;
        public WindowsFormsHost Viewer
        {
            get { return _viewer; }
            set { Set(() => Viewer, ref _viewer, value); }
        }
        public MainViewModel()
        {
            _viewer = new WindowsFormsHost();
            var reportViewer = new ReportViewer();
            reportViewer.ProcessingMode = ProcessingMode.Remote;
            reportViewer.ServerReport.ReportServerUrl = new Uri("http://someservername/Reports/Pages/Folder.aspx");                    
            reportViewer.ServerReport.ReportPath = "ItemPath=/somefolder1/somefolder2/ReportX";
            Viewer.Child = reportViewer;
        }
    }

我可以在窗口顶部看到一个禁用的报告服务工具栏,但没有报告。我试过为ReportPath和ReportServerUrl分配各种字符串,但什么都没有。这是URL问题吗?当然,如果我把URL放进浏览器,它就能工作。谢谢

ReportViewer未显示报告-URL问题

我也面临同样的问题。我不确定这是否适用于你,但就我而言,代码Var reportViewer = new ReportViewer中的行必须移动到xaml,例如

                <WindowsFormsHost DockPanel.Dock="Top" Background="White">
                <rv:ReportViewer
                    x:Name="_ReportViewer"  
                    ReportRefresh="CreateStatement" 
                    BackColor="White"  
                    BorderStyle="None"
                    ></rv:ReportViewer>
            </WindowsFormsHost>

现在,我真的不知道它为什么会这样。

我知道这是一个非常古老的问题,但更多的是寻找未来发现相同错误的人,而我只是发现并解决了相同的错误。。。

您需要引入reportViewer类的函数调用RefreshReport。像这样:

    public MainViewModel()
    {
        _viewer = new WindowsFormsHost();
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Remote;
        reportViewer.ServerReport.ReportServerUrl = new Uri("http://someservername/Reports/Pages/Folder.aspx");                    
        reportViewer.ServerReport.ReportPath = "ItemPath=/somefolder1/somefolder2/ReportX";
        reportviewer.RefreshReport();
        Viewer.Child = reportViewer;
    }