reporting service & wpf

WPF做Windows程序界面很好很强大,RDLC做报表免费又好用,如何将两者强强联合呢?
 
方法1:
   可以直接在WPF项目中加入一个WinForm窗体,在这个窗体上进行报表操作,与一般的WinForm编程没有什么区别。用WindowFormHost控件,直接集成报表到WPF窗体中,可以保持程序风格的一致性。
方法2:

A、引用ReportViewer的命名空间

<UserControl x:Class="CMRESTPORTAL.Reports"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:wf="clr-namespace:Microsoft.Reporting.WinForms;assembly=Microsoft.ReportViewer.WinForms"   //很关键的一句哦
    Height="Auto" Width="Auto">
    </UserControl>

B、添加WindowsFormsHost控件

<Grid>
       < WindowsFormsHost Name="ReportsHost">

           < wf:ReportViewer Name="BuildReport">
               
           < /wf:ReportViewer>
       < /WindowsFormsHost>

    </Grid>

 

C、添加相关代码,显示报表

 public Reports()
        {
            InitializeComponent();

            Microsoft.Reporting.WinForms.ReportViewer rep = ReportsHost.Child as Microsoft.Reporting.WinForms.ReportViewer;
            rep.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Remote; //远程模式
            Uri uri = new Uri("http:/reportserver");  //report所在的report server
            rep.ServerReport.ReportServerUrl = uri; 
            rep.ServerReport.ReportPath = "/ReportFolder/BuildReportForQuery";     //report所在的路径
            rep.RefreshReport();  //Calling the RefreshReport method causes all data in the report to be reloaded and rendered.

        }

posted @ 2016-12-20 16:59  jeffery1010  Views(282)  Comments(0Edit  收藏  举报