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 @   jeffery1010  Views(288)  Comments(0Edit  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示