ReportViewer не отображает отчет - проблема с URL?

1

У меня есть это:

<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-адрес работает, если я помещаю его в браузер. Благодарю.

Теги:
xaml
mvvm

2 ответа

0

Я знаю, что это действительно старый вопрос, но больше ищет будущих людей, которые находят ту же ошибку, и я просто нахожу и решаю ту же ошибку...

Вам нужно ввести вызов функции RefreshReport класса reportViewer. Как это:

    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;
    }
0

Я столкнулся с той же проблемой. Я не уверен, что эта работа для вас, но в моем случае. Строка в вашем коде 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>

теперь, почему это так ведет себя, я действительно не знаю.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню