silverlight分页打印报表
来源:互联网 发布:Java实验8抽象类与继承 编辑:程序博客网 时间:2024/05/17 04:09
在打印报表的时候经常会用到分页,本文的报表是连续的多个报表按顺序排列的,其中每个报表由三部分组成,第一部分是一个label,用于显示报表标题,第二部分是一个label,用于显示报表单位,第三部分是一个datagrid,用于显示数据,
报表截图如下图所示:
现在想实现的功能是每个报表占一页,一次性打印所有的报表。
实现此分页打印的代码如下:
PrintDocument _print = new PrintDocument(); List<UIElement> uis = new List<UIElement>(); _print.PrintPage += (s, args) => { StackPanel sp = new StackPanel(); while ( SP_ReportManagement.Children.Count > 0) { var ui = SP_ReportManagement.Children[0]; SP_ReportManagement.Children.RemoveAt(0); sp.Children.Add(ui); uis.Add(ui); sp.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity)); //当sp中已经包含一个报表或者包含的报表高度大于纸张高度就换页 if (sp.Children.Count > 3 || (sp.DesiredSize.Height > args.PrintableArea.Height && sp.Children.Count > 1)) { sp.Children.Remove(ui); uis.Remove(ui); SP_ReportManagement.Children.Insert(0, ui); args.HasMorePages = true; break; } } args.PageVisual = sp; }; //把删除的报表数据重新加入到SP_ReportManagement _print.EndPrint += (s, args) => { if (SP_ReportManagement.Children.Count > 0) { for (int i = uis.Count() - 1; i >= 0; i--) { //把标题和单位加入 if (i % 3 == 0 || i % 3 == 1) { Label ui = (Label)uis.ElementAt(i); ((StackPanel)ui.Parent).Children.Remove(ui); SP_ReportManagement.Children.Insert(0,ui); } //加入dagagrid表格数据 else { DataGrid ui = (DataGrid)uis.ElementAt(i); ((StackPanel)ui.Parent).Children.Remove(ui); SP_ReportManagement.Children.Insert(0,ui); } } } else { for (int i = 0;i < uis.Count;i++) { //把标题和单位加入 if (i%3==0 || i %3 ==1) { Label ui = (Label)uis.ElementAt(i); ((StackPanel)ui.Parent).Children.Remove(ui); SP_ReportManagement.Children.Add(ui); } //加入dagagrid表格数据 else { DataGrid ui = (DataGrid)uis.ElementAt(i); ((StackPanel)ui.Parent).Children.Remove(ui); SP_ReportManagement.Children.Add(ui); } } } uis.Clear(); }; _print.Print("Report Generating ......");
- silverlight分页打印报表
- Silverlight 4 报表打印的简单实现
- Silverlight 4 报表打印的简单实现
- 谈一下Silverlight报表的打印
- 报表分页–.NET WEB报表打印时的分页
- Access报表打印——自动分页
- DevExpress_Report 主从报表绑定数据,分页打印
- 找到1款套打连续打印分页打印报表控件
- 关于SILVERLIGHT 打印和报表的研究一
- 如何设置报表在一个展示却分页打印
- 大数据量报表APPLET打印分页传输方案
- Silverlight 打印
- 报表打印
- 报表打印
- 打印报表
- 报表打印
- 打印报表
- 分页报表
- Android类库打包方法探究
- sublime text 3 的管理插件:package control
- android工程打成jar包
- double-array trie算法实现
- word直接输入希腊字母
- silverlight分页打印报表
- 简单而有效的html画线代码“hr”实例!
- 线程与进程区别
- TopFreeTheme精选免费模板【20130629】
- 软件工程基础<七>
- 数学专项number_theory:UVa 10162
- 对uC/OS-II任务调度过程的一点粗浅理解
- 双向关联:一对多/多对一
- JSP相对路径问题