MyReport:DataGrid的打印和打印预览
本文说明怎样使用MyReport来实现Flex DataGrid组件的自己主动化打印预览和打印功能。
实现代码
<?
xmlversion="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
width="" horizontalAlign=""
paddingLeft="" paddingRight="" paddingTop="" creationComplete="Init()">
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
import myreport.ReportEngine;
import myreport.ReportViewer;
import myreport.data.report.CaptionCellSetting;
import myreport.data.report.CaptionRowSetting;
import myreport.data.report.ReportSettings;
import myreport.data.report.TableCellSetting;
import myreport.data.report.TableColumnSetting;
import myreport.data.report.TableRowSetting;
private function Init():void
{
//初始化时设置DataGrid的数据源
_Grid.dataProvider = GetTableData();
}
private function GetTableData():ArrayCollection
{
var list:ArrayCollection = new ArrayCollection();
for (var i:int =0; i < 25; i++)
{
list.addItem({ID: i, 名称: "商品信息XXX 规格XXX 型号XXX", 数量: i+1, 金额: (i+1)*10, 日期:newDate()});
}
return list;
}
private function PreviewReport():void
{
//预览
var style:ReportSettings= DataGridToMyReport(_Grid, "演示样例:DataGridToMyReport");
myreport.ReportViewer.Instance.Show(new XML(style.ToXML()), style.TableData, style.ParameterData);
}
private function PrintReport():void
{
//直接打印
var style:ReportSettings= DataGridToMyReport(_Grid, "演示样例:DataGridToMyReport");
myreport.ReportEngine.PrintAsync(new XML(style.ToXML()), style.TableData, style.ParameterData);
}
/**
*
* 封装的转换方法。实现DataGid转成报表样式
*
* @param grid: 表格控件(传入前确保表格控件已经设置数据源)
* @param title:报表标题
*/
private function DataGridToMyReport(grid:DataGrid,title:String):ReportSettings
{
var style:ReportSettings = new ReportSettings();
//数据源
style.TableData = grid.dataProvideras ArrayCollection;
var params:Dictionary = newDictionary();
params.Title = title;
style.ParameterData = params;
//报表样式
style.TableHeaderRepeat = true;//表格头反复
style.TableFooterRepeat = true;//表格尾反复
style.AutoWidth = true;//报表宽度自己主动递增
style.PageByColumn = true;//分栏打印
style.SetUnit("px");
//标题
var captionRow:CaptionRowSetting = new CaptionRowSetting();
var caption:CaptionCellSetting = new CaptionCellSetting();
caption.Width = style.ClientWidth;
caption.Style.FontBold = true;
caption.Style.FontSize = 16;
caption.Style.TextAlign = "center";
caption.Value = "=@Title";
captionRow.CaptionCellSettings.push(caption);
style.PageHeaderSettings.push(captionRow);
//表格
var headerRow:TableRowSetting = new TableRowSetting();
var contentRow:TableRowSetting = new TableRowSetting();
var gridColumns:Array = grid.columns;
for each(var gridCol:DataGridColumnin gridColumns)
{
if(!gridCol.visible)
continue;
//加入列
var column:TableColumnSetting = new TableColumnSetting();
column.Width = gridCol.width;
style.TableColumnSettings.push(column);
//加入表格头单元格
var headerCell:TableCellSetting = new TableCellSetting();
headerCell.Style.FontBold = true;
headerCell.Style.TextAlign = "center";
headerCell.Value = gridCol.headerText;
headerRow.TableCellSettings.push(headerCell);
//加入表格主体单元格
var contentCell:TableCellSetting = new TableCellSetting();
contentCell.Value = "=#" + gridCol.dataField;
contentRow.TableCellSettings.push(contentCell);
}
style.TableHeaderSettings.push(headerRow);
style.TableDetailSettings.push(contentRow);
return style;
}
]]>
</mx:Script>
<mx:Label text="演示怎样用程序动态生成报表样式,实现DataGrid to MyReport。
" width="100%" textAlign="center"/>
<mx:Button label="打印预览"click="PreviewReport()"/>
<mx:Button label="直接打印"click="PrintReport()"/>
"height="100%" horizontalScrollPolicy="on">
<mx:columns>
"/>
"/>
"/>
"/>
"/>
</mx:columns>
</mx:DataGrid>
</mx:VBox>
效果图


MyReport介绍
相关文章
备注
*技术交流与合作:QQ: 791663094。Email:kong.yee@foxmail.com
MyReport:DataGrid的打印和打印预览的更多相关文章
- Lodop中特殊符号¥打印设计和预览不同
Lodop中¥符号样式改变问题 Lodop中对超文本样式的解析,虽然说是按照调用的本机ie引擎,但是调用的ie版本可能不同,导致在ie下是一种样式,预览又是另一种样式.可能是有些样式没有具体设置,走的 ...
- JS Web打印,实现预览新样式
问题描述: JS实现Web打印,要求打印前一种样式,打印预览时新样式 问题解决: (1)设置打印时的css样式,设置打印前的css样式 注: 以上为print. ...
- asp.net调用Lodop实现页面打印或局部打印,可进行打印设置或预览
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebPrint.aspx.cs ...
- css去掉使用bootstrap框架后打印网页时预览效果下的超链接
在我们写网页的时候,超链接是链接各个页面的桥梁,也是搜索引擎爬虫(spider)收录网站页面的关键,因此,在每个网页中会有许多的超链. 今天,一个同行妹妹在使用了bootstrap框架来搭建自己的网站 ...
- java原装代码完成pdf在线预览和pdf打印及下载
这是我在工作中,遇到这样需求,完成需求后,总结的成果,就当做是工作笔记,以免日后忘记,当然,能帮助到别人是最好的啦! 下面进入正题: 前提准备: 1. 项目中至少需要引入的jar包,注意版本: a) ...
- Lodop打印设计矩形重合预览线条变粗
LODOP中的打印设计是辅助进行开发的,实际打印效果应以预览为准,很多效果都是在设计界面显示不出来,或设计和预览界面有差异.例如add_print_text文本的字间距.行间距,旋转,还有允许标点溢出 ...
- Winform中使用FastReport实现自定义PDF打印预览
场景 Winform中使用FastReport实现简单的自定义PDF导出: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1009 ...
- easyui多图片上传+预览切换+支持IE8
引入css和js: <link href="${pageContext.request.contextPath}/plugin/dialog/dialog.css" rel= ...
- C# 使用PrintDocument 绘制表格 完成 打印预览
C# 使用PrintDocument 绘制表格 完成 打印预览 DataTable 经过不断的Google与baidu,最终整理出来的打印类 主要是根据两个参考的类组合而成,稍微修改了一下,参考代 ...
随机推荐
- NET知识大纲
第一部分 C#编程基础 1.(30)变量.运算符(+.-.*./.++.--.括号.==.!=.>.<.>=.<=.&&.||).流程控制(if.while.f ...
- Hadoop 2 初探
Hadoop 2.6.0的安装略复杂,在一台既有Hadoop 1又有Hadoop 2的server上,要设置好环境变量,必要时候echo $HADOOP_HOME一下看运行的是哪个版本. Master ...
- activity切换时的overridePendingTransition动画效
注意,切换方法overridePendingTransition只能在startActivity和finish方法之后调用.第一个参数为第一个Activity离开时的动画,第二参数为所进入的Act ...
- 面经-csdn
刚刚看的博文:http://blog.csdn.net/ns_code/article/details/40408397 里面有些资料值得学习! 写在前面 结束了在百度的实习,是时候写下校招的总结了, ...
- (转载)OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)
前一篇说到了Foundation框架中的NSDirctionary类,这一一篇来看一下Foundation的其他常用的类:NSNumber,NSDate,NSException. 注:其实按照Java ...
- JavaScript高级程序设计(第三版)第四章 变量,作用域和内存问题
JavaScript变量可以用来保存两种类型的值:基本类型值和引用类型值.基本类型值和引用类型值具有以下特点: 基本类型值在内存中占据固定大小的空间,因此被保存在栈内存中: 从一个变量向另一个变量复制 ...
- 关于面试mysql优化的几点纪要
1.减少查询次数 ,如何减少 ? 2. 表结构优化,如何优化 ? 3. 列选取原则 ? 4.建索引原则 ? 5.mysql语句优化 ? 6.增加mysql处理性能 ? 通过这几点, 再来说 ...
- geeksforgeeks@ Largest Number formed from an Array
http://www.practice.geeksforgeeks.org/problem-page.php?pid=380 Largest Number formed from an Array G ...
- 成为IBM精英讲师-一分耕耘 一份收获 同时也多了一份责任!
成为IBM精英讲师 一分耕耘 一份收获 同时也多了一份责任! http://www.webspherechina.net/?action-iste-type-lecturerlist 650) thi ...
- TransactionScope事务对多个数据库的操作
.Net 2.0引入了轻量级事务管理器(Lighweight Transaction Manager),即System.Transactions.TransactionManager. 轻量级事务管理 ...