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 ...
随机推荐
- 在nginx中使用lua直接訪问mysql和memcaced达到数据接口的统一
安装nginx參见<nginx+lua+redis构建高并发应用> 让nginx 中的nginx_lua_module支持mysql 和memcache 下载 https://github ...
- 【t030】数字构造
Time Limit: 3 second Memory Limit: 256 MB [问题描述] 有这么一个游戏: 写出一个1-N的排列a[i],然后每次将相邻两个数相加,构成新的序列,再对新序列进行 ...
- Dubbo服务框架解析(二)
本节介绍dubbo-common,dubbo-common是公共逻辑模块,包含Util类.通用模型,是其他模块的基础. 扩展机制 SPI SPI是扩展点的注解.标注在类型上.全部的扩展点须要通过SPI ...
- NSArray NSMutableArray 初始化
NSArray* Array;//此时数组没有初始化,数组=nil [Array objectAtIndex:2];//不会调用其属性方法,这里不会崩溃 NSMutableArray *Mutable ...
- Effective C++ 条款14
在资源管理器中小心copying行为 上节是对资源的管理说明.有时候我们不能依赖于shared_ptr或者auto_ptr,所以我们须要自己建立一个资源管理类来管理自己的资源. 比如建立一个类来管理M ...
- [Ramda] Rewrite if..else with Ramda ifElse
From: const onSeachClick = (searchTerm) => { if(searchTerm !== '') { searchForMovies(searchTerm) ...
- QQ欢乐豆斗地主心得体会(四):合谋赢豆
刚刚又在玩QQ欢乐斗地主,只可惜,这次不够欢乐. 本金,300万豆,运气比较好,赢到将近400万.突然,形势急转直下,一直输,一直到180多万豆.本来这一局,有硬炸在手,但是没有癞子,基本被吊打的节奏 ...
- 赵雅智_service电话监听2加接通电话录音
步骤: 创建CallStateService继承Service 取得电话服务 监听电话动作 电话监听的对象 没有电话时 停止刻录 重设 刻录完毕一定要释放资源 电话响铃时 从麦克风採集声音 内容输出格 ...
- hadoop中国字、词频统计和排序
例如需求,下面: 有被看作图输入文件中. 代表ip地址,之后的偶数列代表搜索词.数字(奇数列)代表搜索次数.使用"\t"分隔.如今须要对搜索词进行分词并统计词频,此处不考虑搜索次数 ...
- 关于javascript中的深拷贝问题
一直在尝试为javascript找一个快捷可靠的对象深拷贝的方法,昨天突发奇想,把对象push到一个空数组里,然后对改数组通过concat()或slice()进行拷贝,然后取出数组的第一个元素复制给变 ...