2014-09-03 144 views
1

我有這樣的:ReportViewer不顯示報告 - URL問題?

<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的問題?當然,如果我把它放到瀏覽器中,網址就可以工作。謝謝。

回答

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> 

現在,爲什麼它的行爲這樣我真的不知道。

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