rdlc水晶报表在wpf里的使用
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里的使用的更多相关文章
- 水晶报表,快速报表,rdlc报表
感觉自己脑子里只剩下报表了,o(╥﹏╥)o.因为最近新换了公司,业务上有需要报表打印,水晶报表,快速报表,rdlc报表这三种以后可能都会用到.所以在没了解好业务流程,熟悉代码之前,就是看看这三种报表怎 ...
- WPF SAP水晶报表例子和打包Setup
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x=" ...
- RDLC报表 在WinForm里运行出现 未能加载文件或程序集 Microsoft.ReportViewer.WinForms, Version=11.0.0.0 System.IO.FileNotFoundException
原文:RDLC报表 在WinForm里运行出现 未能加载文件或程序集microsoft.reportviewer.winforms 推荐以下方案二 做一下记录顺便帮助一下遇到问题的朋友. 做RDLC报 ...
- 水晶报表在vs2010 WPF环境下的尝试
原文:水晶报表在vs2010 WPF环境下的尝试 由于VS2010没有集成水晶报表组件,尝试前必须先安装 水晶报表 for VS2010,若机器未安装的可点击这里>>>下载安装 新建 ...
- 水晶报表和rdlc报表传入参数筛选
在使用报表向客户展示结果数据时,实时的在报表中显示某些特定的数据是必需的,如:显示的部门.打印的日期等.本文只简单的演示向报表内传入一个字符值. 以下是设计好报表之后传入参数的具体操作 一.首先是水晶 ...
- 水晶报表连接Oracle做数据报表笔记
首先,新建一个水晶报表的文件,这个时候要给这个报表文件绑定一个oracle数据源, 选择右侧菜单的这个东西,选择“数据库专家”,打开之后是这么一个界面: 选择建立新连接: 这个地方最关键,也是我为什么 ...
- rpt水晶报表制作过程
原文:rpt水晶报表制作过程 最近公司安排一个以前的项目,里面需要用到水晶报表,由于原来做这个项目的同事离职,所在公司的同事报表做成了rdlc类型的,而这类报表在加载的时候很难动态的从数据库加载数据, ...
- 只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft
前言 随着 .NET 平台的出现,报表相关的开发控件随之出现,目前已经有若干成熟的产品可供开发人员使用,本文旨在通过从不同维度对比目前最流行的4款 .NET报表控件,给所有报表开发人员在做产品选型时一 ...
- C#水晶报表,窗体不显示,闪退
一.问题说明 由于VS2008以后水晶报表不在集成,要用的话需要单独下载. 这里注意如果是用在C#窗体程序里的话一定要下载exe文件,安装msi文件的话VS工具栏里找不到水晶报表控件的.如果你的是64 ...
随机推荐
- 【机器学习实战】第7章 集成方法(随机森林和 AdaBoost)
第7章 集成方法 ensemble method 集成方法: ensemble method(元算法: meta algorithm) 概述 概念:是对其他算法进行组合的一种形式. 通俗来说: 当做重 ...
- 小强的HTML5移动开发之路(47)——jquery mobile基本的页面框架
一.单容器页面结构 <!DOCTYPE html> <html> <head> <title>Jquery mobile 基本页面框架</titl ...
- source insight 添加自定义macro
打开C:\Documents and Settings\xxxx\My Documents\Source Insight\Projects\Base文件夹下的em文件,可以看到都是由macro定义的一 ...
- log4erl API
https://github.com/ahmednawras/log4erl/blob/master/API.txt NOTE:=====Please be informed that the API ...
- 【BZOJ 1007】 [HNOI2008]水平可见直线
[题目链接]:http://www.lydsy.com/JudgeOnline/problem.php?id=1007 [题意] [题解] 这个人讲得很好 http://blog.csdn.net/o ...
- 【t003】string
Time Limit: 1 second Memory Limit: 50 MB [问题描述] 设有字符串X,我们称在X的头尾及中间插入任意多个空格后构成的新字符串为X的扩展串,如字符串X为" ...
- hbase 配置高可用hmaster
1.先停掉hbase bin/stop-hbase.sh 2.在hbase的conf目录下创建 backup-masters 添加hadoop003 3.分发 4.重新启动hbase并查看 bin/s ...
- 微信小程序来了 要杀死一切App
从昨晚一些自媒体开始陆续爆料,到微信官方宣布,这一次只隔了短短几小时.就在刚刚,今天早晨,微信官方正式宣布“应用号”开始内测,并暂定名为“小程序”. 应用号变成小程序 腾讯高级副总裁张小龙也在其朋友圈 ...
- 【43.26%】【codeforces 732C】Sanatorium
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- jscript的常用文件操作
作者:朱金灿 来源:http://blog.csdn.net/clever101 1.重命名文件 var fso = new ActiveXObject("Scripting.FileSys ...