1引用程序集

Microsoft.ReportViewer.WinForms

2 xaml 命名空间

      xmlns:rv="clr-namespace:Microsoft.Reporting.WinForms;assembly=Microsoft.ReportViewer.WinForms"

3 xaml 里用windowsFormsHost 来装报表控件

            <WindowsFormsHost Margin="135,75,0,0" Panel.ZIndex="-1" Height="auto">
<rv:ReportViewer x:Name="reportViewer" />
</WindowsFormsHost>

3.初始化控件参数

this.reportViewer.Messages = new Health.Client.Base.ReportViewerMessagesZhcn();
    public class ReportViewerMessagesZhcn : IReportViewerMessages
{
public string BackButtonToolTip { get { return "后退"; } } public string BackMenuItemText { get { return "后退"; } } public string ChangeCredentialsText { get { return "更改"; } } public string CurrentPageTextBoxToolTip { get { return "当前页"; } } public string DocumentMapButtonToolTip { get { return "文档视图"; } } public string DocumentMapMenuItemText { get { return "文档视图"; } } public string ExportButtonToolTip { get { return "导出"; } } public string ExportMenuItemText { get { return "选择格式"; } } public string FalseValueText { get { return "不正确的值"; } } public string FindButtonText { get { return "查找"; } } public string FindButtonToolTip { get { return "查找"; } } public string FindNextButtonText { get { return "下一个"; } } public string FindNextButtonToolTip { get { return "下一个"; } } public string FirstPageButtonToolTip { get { return "首页"; } } public string LastPageButtonToolTip { get { return "最后一页"; } } public string NextPageButtonToolTip { get { return "下一页"; } } public string NoMoreMatches { get { return "无匹配项"; } } public string NullCheckBoxText { get { return "空值"; } } public string NullCheckBoxToolTip { get { return "空值"; } } public string NullValueText { get { return "空值"; } } public string PageOf { get { return "页"; } } public string PageSetupButtonToolTip { get { return "页面设置"; } } public string PageSetupMenuItemText { get { return "页面设置"; } } public string ParameterAreaButtonToolTip { get { return "参数设置区"; } } public string PasswordPrompt { get { return "请输入密码:"; } } public string PreviousPageButtonToolTip { get { return "前一页"; } } public string PrintButtonToolTip { get { return "打印"; } } public string PrintLayoutButtonToolTip { get { return "打印"; } } public string PrintLayoutMenuItemText { get { return "打印"; } } public string PrintMenuItemText { get { return "打印"; } } public string ProgressText { get { return "正在生成报表......"; } } public string RefreshButtonToolTip { get { return "刷新"; } } public string RefreshMenuItemText { get { return "刷新"; } } public string SearchTextBoxToolTip { get { return "查找"; } } public string SelectAll { get { return "全选"; } } public string SelectAValue { get { return "SelectAValue"; } } public string StopButtonToolTip { get { return "停止"; } } public string StopMenuItemText { get { return "停止"; } } public string TextNotFound { get { return "未找到"; } } public string TotalPagesToolTip { get { return "总页数"; } } public string TrueValueText { get { return "正确值"; } } public string UserNamePrompt { get { return "用户名"; } } public string ViewReportButtonText { get { return "显示报表"; } } public string ViewReportButtonToolTip { get { return "显示报表"; } } public string ZoomControlToolTip { get { return "缩放"; } } public string ZoomMenuItemText { get { return "缩放"; } } public string ZoomToPageWidth { get { return "页宽"; } } public string ZoomToWholePage { get { return "整页"; } }
}

4 .加载视图,设置视图RDLC的方法

        private void ShowReportViewer(int index, Microsoft.Reporting.WinForms.ReportDataSource dataSourse, List<Microsoft.Reporting.WinForms.ReportParameter> reportParameters, System.Collections.IEnumerable detailDataSource)
{
ReportViewer reportViewer = SelectReportViewer(index);
//索引超出范围
if (reportViewer == null) return;
if (dataSourse != null)
{
reportViewer.LocalReport.ReportPath = GetReportFilePath(dataSourse.Name);
reportViewer.LocalReport.DataSources.Clear();
reportViewer.LocalReport.DataSources.Add(dataSourse);
}
else
{
reportViewer.LocalReport.ReportPath = GetReportFilePath("ChargeFeezyAmountMain");
reportViewer.LocalReport.DataSources.Clear();
} if (reportParameters != null)
{
reportViewer.LocalReport.SetParameters(reportParameters);
} if (detailDataSource != null)
{
_subDataSource = detailDataSource as List<ReportDataSource>;
reportViewer.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);
}
//if (dataSourse.Name == "CancelArrears")
//{
// var pageSettings = reportViewer.GetPageSettings(); // pageSettings.Landscape = false;
// reportViewer.SetPageSettings(pageSettings);
//}
//else if (dataSourse.Name == "CarrearagePat" || dataSourse.Name == "RecoveryArrears")
//{
// var pageSettings = reportViewer.GetPageSettings(); // pageSettings.Landscape = true;
// reportViewer.SetPageSettings(pageSettings);
//}
reportViewer.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
reportViewer.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent;
reportViewer.ZoomPercent = ;
reportViewer.RefreshReport();
}
private void ShowReportViewer1(int index, List<Microsoft.Reporting.WinForms.ReportDataSource> dataSourse, List<Microsoft.Reporting.WinForms.ReportParameter> reportParameters, System.Collections.IEnumerable detailDataSource)
{
ReportViewer reportViewer = SelectReportViewer(index);
//索引超出范围
if (reportViewer == null) return;
if (dataSourse != null)
{
reportViewer.LocalReport.ReportPath = Health.Reports.ReportHelper.GetReportFilePath(dataSourse[].Name);
reportViewer.LocalReport.DataSources.Clear();
foreach (var data in dataSourse)
{
reportViewer.LocalReport.DataSources.Add(data);
}
}
else
{
reportViewer.LocalReport.ReportPath = Health.Reports.ReportHelper.GetReportFilePath("ChargeFeezyAmountMain");
reportViewer.LocalReport.DataSources.Clear();
} if (reportParameters != null)
{
reportViewer.LocalReport.SetParameters(reportParameters);
}
if (detailDataSource != null)
{
_subDataSource = detailDataSource as List<ReportDataSource>;
reportViewer.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);
}
reportViewer.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
reportViewer.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent;
reportViewer.ZoomPercent = ;
reportViewer.RefreshReport();
}
private ReportViewer SelectReportViewer(int index, bool isReset = true)
{
if (isReset) reportViewer.Reset();
return reportViewer;
}
private void LocalReport_SubreportProcessing(object sender, SubreportProcessingEventArgs e)
{
foreach (var item in _subDataSource)
{
e.DataSources.Add(item);
}
}
        public static string GetReportFilePath(string reportFileName)
{ string filePath= @"Reports\" + reportFileName + ".rdlc";
filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, filePath);
if(!System.IO.File.Exists(filePath))
{
return "";
} return filePath;
}

调用

rdlc水晶报表在wpf里的使用的更多相关文章

  1. 水晶报表,快速报表,rdlc报表

    感觉自己脑子里只剩下报表了,o(╥﹏╥)o.因为最近新换了公司,业务上有需要报表打印,水晶报表,快速报表,rdlc报表这三种以后可能都会用到.所以在没了解好业务流程,熟悉代码之前,就是看看这三种报表怎 ...

  2. WPF SAP水晶报表例子和打包Setup

    <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x=" ...

  3. RDLC报表 在WinForm里运行出现 未能加载文件或程序集 Microsoft.ReportViewer.WinForms, Version=11.0.0.0 System.IO.FileNotFoundException

    原文:RDLC报表 在WinForm里运行出现 未能加载文件或程序集microsoft.reportviewer.winforms 推荐以下方案二 做一下记录顺便帮助一下遇到问题的朋友. 做RDLC报 ...

  4. 水晶报表在vs2010 WPF环境下的尝试

    原文:水晶报表在vs2010 WPF环境下的尝试 由于VS2010没有集成水晶报表组件,尝试前必须先安装 水晶报表 for VS2010,若机器未安装的可点击这里>>>下载安装 新建 ...

  5. 水晶报表和rdlc报表传入参数筛选

    在使用报表向客户展示结果数据时,实时的在报表中显示某些特定的数据是必需的,如:显示的部门.打印的日期等.本文只简单的演示向报表内传入一个字符值. 以下是设计好报表之后传入参数的具体操作 一.首先是水晶 ...

  6. 水晶报表连接Oracle做数据报表笔记

    首先,新建一个水晶报表的文件,这个时候要给这个报表文件绑定一个oracle数据源, 选择右侧菜单的这个东西,选择“数据库专家”,打开之后是这么一个界面: 选择建立新连接: 这个地方最关键,也是我为什么 ...

  7. rpt水晶报表制作过程

    原文:rpt水晶报表制作过程 最近公司安排一个以前的项目,里面需要用到水晶报表,由于原来做这个项目的同事离职,所在公司的同事报表做成了rdlc类型的,而这类报表在加载的时候很难动态的从数据库加载数据, ...

  8. 只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft

    前言 随着 .NET 平台的出现,报表相关的开发控件随之出现,目前已经有若干成熟的产品可供开发人员使用,本文旨在通过从不同维度对比目前最流行的4款 .NET报表控件,给所有报表开发人员在做产品选型时一 ...

  9. C#水晶报表,窗体不显示,闪退

    一.问题说明 由于VS2008以后水晶报表不在集成,要用的话需要单独下载. 这里注意如果是用在C#窗体程序里的话一定要下载exe文件,安装msi文件的话VS工具栏里找不到水晶报表控件的.如果你的是64 ...

随机推荐

  1. Ubuntu-Docker[1]安装Docker,通过Docker部署net core代码,需要结合[.NET Core 18]发布、ASP.NET Core Docker部署

    1)通过系统自带包安装 通过自带包安装,可能Docker版本较旧 $ sudo apt-get update Reading package lists... Done $ sudo apt-get ...

  2. Jquery前端分页插件pagination使用

    插件描述:JqueryPagination是一个轻量级的jquery分页插件.只需几个简单的配置就可以生成分页控件.并且支持ajax获取数据,自定义请求参数,提供多种方法,事件和回调函数,功能全面的分 ...

  3. c头文件(.h)的作用

    C语言的著作中,至今还没发现把.h文件的用法写的透彻的.在实际应用中也只能依葫芦画瓢,只知其然不知其所以然,甚是郁闷!闲来无事,便将搜集网络的相关内容整理一下,以便加深自己的理解 理论概述:.h中一般 ...

  4. System.nanoTime()和System.currentTimeMillis()性能问题

    ​ 之前给模块做性能优化的时候,需要将性能调到毫秒级,使用了System.nanoTime()和System.currentTimeMillis()对代码分片计时分析耗时操作,后发现在串行情况下性能达 ...

  5. 学maven

    跟着刚哥深入学maven   前言:目前所有的项目都在使用maven,可是一直没有时间去整理学习,这两天正好有时间,好好的整理一下. 一.为什么使用Maven这样的构建工具[why] ① 一个项目就是 ...

  6. 数组类型转换失败:NSMutableArray和NSArray的相互转换

    1.数组类型转换无效(错误) @property(strong, nonatomic) NSMutableArray *temp_Array; _temp_Array=(NSMutableArray ...

  7. KVO的使用(1)

    1.在某个类中添加下面方法: -(void)viewWillAppear:(BOOL)animated{ [[NSNotificationCenter defaultCenter] addObserv ...

  8. Tomcat下部署SpringBoot

    SpringBoot默认支持Tomcat7及以上版本(SpringBoot默认支持servlet3.1版本及以上,Tomcat6只支持到servlet2.5) 测试环境:jdk1.8 + tomcat ...

  9. PL/SQL一个简短的引论

    前言 文本 PL/SQL (Procedure Language,程序语言)SQL 1999主要的数据库供应商提供结构化的共同语言  PL/SQL只有支持Oracle数据库 基本的语法 多行凝视   ...

  10. 【第400篇题解纪念2016年10月28日】【28.10%】【codeforces 617E】XOR and Favorite Number

    time limit per test4 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...