本文转自:http://msdn.microsoft.com/zh-tw/library/hh273267

若要在 WPF 應用程式中使用 ReportViewer 控制項,您需要將 ReportViewer 組件加入至專案,並且以程式設計方式設定該組件。                     

WPF 支援 Windows Form 控制項,但是 ReportViewer 控制項不對 WPF 提供任何自動組態,如同在 Windows Form 應用程式中一樣。                   

WindowsFormsHost 控制項對呼叫程式碼要求完全信任,也就是 Windows 中 WPF 用戶端應用程式的信任層級。                     

WPF XAML 瀏覽器應用程式概觀):                   

  • 將 WPF 瀏覽器應用程式設定為在完全信任的環境下執行。                           

  • 確定部署網站在用戶端瀏覽器中是 [近端內部網路] 或 [信任的網站區域]。                           

在本逐步解說中,您將建立一個 WPF 應用程式,此應用程式會使用 AdventureWorks2008R2 範例資料庫顯示本機報表。         

必要條件            

          

 

  • Visual Studio Professional 或 Ultimate                               

  • 逐步解說:安裝 AdventureWorks 資料庫>)。                               

  • 網際網路存取 (用於 Bing 地圖)                               

在 WPF 應用程式中使用 ReportViewer

  1. 專案]。                           

  2. 確定]。                           

  3. 這樣會將 WindowsFormstHost 所需的組件加入至專案。                           

  4. 加入參考]。                           

  5. 確定]。                           

  6. 在 XAML 檢視中,加入下列反白顯示的各行:                           

    <Window x:Class="WpfReportApplication.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:rv="clr-namespace:Microsoft.Reporting.WinForms;assembly=Microsoft.ReportViewer.WinForms" 
            Title="MainWindow" Height="350" Width="525">
        <Grid>
          <WindowsFormsHost><rv:ReportViewer x:Name="_reportViewer"/></WindowsFormsHost>
        </Grid>
    </Window>
    

    接著您將建立 RDLC 報表,您將在 ReportViewer 控制項中顯示該報表。

  7. 新項目]。                           

  8. 此時會啟動 [報表精靈] 與 [資料來源組態精靈]。                           

  9. 下一步]。                           

  10. 繼續]。                           

  11. 確定]。                           

  12. 下一步] 兩次。                           

  13. 完成]。                           

    AdventureWorks2008R2DataSet 的 DataSet 物件。                           

  14. ] 窗格。                             

  15. 這樣會建立簡單的表格式資料表,用於顯示範例資料。                             

  16. 下一步],關閉 [報表精靈]。                           

    接著,您會加入程式碼將 ReportViewer 指向您建立的新報表,以及從 AdventureWorks2008R2DataSet 將資料加入至 ReportViewer。                           

  17. 開啟 MainWindow.xaml.cs,並將反白顯示的行加入至 MainWindow() 建構函式:                           

    public MainWindow()
    {
        InitializeComponent();
        _reportViewer.Load += ReportViewer_Load;
    }
    
    
  18. 將下列程式碼加入至類別定義中 MainWindow() 建構函式下方:                           

    private bool _isReportViewerLoaded;
    
    private void ReportViewer_Load(object sender, EventArgs e)
    {
        if (!_isReportViewerLoaded)
        {
            Microsoft.Reporting.WinForms.ReportDataSource reportDataSource1 = new Microsoft.Reporting.WinForms.ReportDataSource();
            AdventureWorks2008R2DataSet dataset = new AdventureWorks2008R2DataSet();
    
            dataset.BeginInit();
    
            reportDataSource1.Name = "DataSet1"; //Name of the report dataset in our .RDLC file
            reportDataSource1.Value = dataset.SalesOrderDetail;
            this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
            this._reportViewer.LocalReport.ReportEmbeddedResource = "<VSProjectName>.Report1.rdlc";
    
            dataset.EndInit();
    
            //fill data into adventureWorksDataSet
            AdventureWorks2008R2DataSetTableAdapters.SalesOrderDetailTableAdapter salesOrderDetailTableAdapter = new AdventureWorks2008R2DataSetTableAdapters.SalesOrderDetailTableAdapter();
            salesOrderDetailTableAdapter.ClearBeforeFill = true;
            salesOrderDetailTableAdapter.Fill(dataset.SalesOrderDetail);
    
            _reportViewer.RefreshReport();
    
            _isReportViewerLoaded = true;
        }
    }
    
  19. 開始偵錯],以執行 WPF 應用程式。

 

相关文章:

  • 2021-08-16
  • 2022-12-23
  • 2021-08-10
  • 2022-12-23
  • 2022-12-23
  • 2021-08-13
  • 2021-10-03
猜你喜欢
  • 2021-06-02
  • 2021-11-29
  • 2021-10-13
  • 2021-09-03
  • 2022-12-23
相关资源
相似解决方案