flex 打印DataGrid的内容

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*"
backgroundColor
="#FFFFFF"
fontFamily
="simsun" fontSize="12"
paddingTop
="50" paddingBottom="50" paddingLeft="30" paddingRight="30"
height
="268" width="748">
<mx:Script>
<![CDATA[
import mx.controls.DateField;
import mx.core.*
import mx.collections.ArrayCollection;
import mx.printing.*;

[Bindable]
private var pageNumber:Number = 1;

[Bindable]
private var prodTotal:Number = 0;

[Bindable]
private var reportTitle:String = "报表标题";

[Bindable]
private var datetime:String = "";

public static var footerHeight:Number = 20;
public static var prodIndex:Number;
public static var prodTotal:Number = 0;

public static function doPrint(datap:Object,title:String,columns:Array):void {
var printJob:FlexPrintJob = new FlexPrintJob();
if (printJob.start()) {
var thePrintView:FormPrintView = new FormPrintView();
Application.application.addChild(thePrintView);
thePrintView.reportTitle = title;
thePrintView.datetime = mx.controls.DateField.dateToString(new Date(),"YYYY年MM月DD日");
thePrintView.printDataGrid.columns = columns;
thePrintView.width=printJob.pageWidth;
thePrintView.height=printJob.pageHeight;
thePrintView.prodTotal = (datap as ArrayCollection).length;
thePrintView.printDataGrid.dataProvider = datap;//设置数据v
thePrintView.showPage("single");
if(!thePrintView.printDataGrid.validNextPage){
printJob.addObject(thePrintView);
}
else{
thePrintView.showPage("first");
printJob.addObject(thePrintView);
thePrintView.pageNumber++;
while(true){
thePrintView.printDataGrid.nextPage();
thePrintView.showPage("last");
if(!thePrintView.printDataGrid.validNextPage) {
printJob.addObject(thePrintView);
break;
}
else{
thePrintView.showPage("middle");
printJob.addObject(thePrintView);
thePrintView.pageNumber++;
}
}
}
Application.application.removeChild(thePrintView);
}
printJob.send();
}

private function showPage(pageType:String):void {
if(pageType == "first" || pageType == "middle") {
footer.includeInLayout=false;
footer.visible = false;
}
if(pageType == "middle" || pageType == "last") {
header.includeInLayout=false;
header.visible = false;
}
if(pageType == "last") {
// Show the footer.
footer.includeInLayout=true;
footer.visible = true;
}
//Update the DataGrid layout to reflect the results.
validateNow();
}
]]>
</mx:Script>

<!-- The template for the printed page, with the contents for all pages. -->
<mx:VBox width="100%" horizontalAlign="left">
<mx:Label text="第 {pageNumber}页" color="#9e9e9e"/>
<mx:Label id="header" text="{reportTitle}" fontWeight="bold" fontSize="21" textAlign="center" width="100%"/>
<mx:HRule width="100%" height="1" strokeColor="#000000"/>
</mx:VBox>

<mx:PrintDataGrid id="printDataGrid" width="100%" height="100%" fontFamily="simsun" fontSize="12"/>
<mx:VBox width="100%" horizontalAlign="left" id="footer" >
<mx:Spacer height="100%"/>
<mx:HRule width="100%" height="1" strokeColor="#000000"/>
<mx:HBox width="100%">
<mx:Label text="记录总数:{prodTotal}"/>
<mx:Spacer width="100%"/>
<mx:Label text="打印日期:{datetime}"/>
</mx:HBox>
</mx:VBox>

</mx:VBox>

转自: http://kingapex.iteye.com/blog/238593
--新增功能:支持图片显示 --新增功能:增加分组头设置,支持按字段分组,分组次级排序 --新增功能:增加Avg求平均函数,GroupRowNumber分组行号函数 --新增功能:单元格支持拖放调整顺序 --新增功能:支持四则运算优先运算 --新增功能:新增百分率格式化 --新增功能:新增RowNumber行号函数 --修正数个Bug 详情参考:http://blog.csdn.net/hunkcai/archive/2010/10/10/5932204.aspx Web报表引擎: Web上的良好的打印解决方案,WinForm打印预览体现,报表自动化,支持直接打印,页小计,统计,转成金额大写,一维码显示, 图片显示等功能,满足中国式报表的常见功能需求。 Web报表编辑器: * Web上良好的报表设计用户体现,可视化编辑,支持设计/预览视图撤换。 * 通过下拉框选择,快速设置报表数据的绑定。 * 支持单元格内容格式化(数字,金额,日期等)输出。 * 通过表达式编辑,轻松设计页小计行或页统计行。 * 支持标题高度,行高,列宽拖动编辑,拖放调整顺序等良好操作。 注: * 用Adobe Flash Builder 4开发环境打开,用Flex SDK 4.1进行编译 * 内有报表样式定义说明 * 内有Demo工程参考,使用MyReport * 不提供MyReport源码,提供swc组件(类似dll) * 只需少量工作就能把MyReport整合,获得良好的打印体现和报表设计体现。 * 报表引擎效果图参考:http://blog.csdn.net/hunkcai/archive/2010/01/14/5190898.aspx * 报表编辑器效果图参考:http://blog.csdn.net/hunkcai/archive/2010/04/21/5512031.aspx
--新增功能:支持图片显示 --新增功能:增加分组头设置,支持按字段分组,分组次级排序 --新增功能:增加Avg求平均函数,GroupRowNumber分组行号函数 --新增功能:支持四则运算优先运算 --新增功能:单元格支持拖放调整顺序 --新增功能:新增百分率格式化 --新增功能:新增RowNumber行号函数 --修正数个Bug 详情参考:http://blog.csdn.net/hunkcai/archive/2010/10/10/5932204.aspx Web报表引擎: Web上的良好的打印解决方案,WinForm打印预览体现,报表自动化,支持直接打印,页小计,统计,转成金额大写,一维码显示, 图片显示等功能,满足中国式报表的常见功能需求。 Web报表编辑器: * Web上良好的报表设计用户体现,可视化编辑,支持设计/预览视图撤换。 * 通过下拉框选择,快速设置报表数据的绑定。 * 支持单元格内容格式化(数字,金额,日期等)输出。 * 通过表达式编辑,轻松设计页小计行或页统计行。 * 支持标题高度,行高,列宽拖动编辑,拖放调整顺序等良好操作。 注: * 用Adobe Flash Builder 4/Flex Builder 3开发环境打开,用Flex SDK 3.5进行编译 * 内有报表样式定义说明 * 内有Demo工程参考,使用MyReport * 不提供MyReport源码,提供swc组件(类似dll) * 只需少量工作就能把MyReport整合,获得良好的打印体现和报表设计体现。 * 报表引擎效果图参考:http://blog.csdn.net/hunkcai/archive/2010/01/14/5190898.aspx * 报表编辑器效果图参考:http://blog.csdn.net/hunkcai/archive/2010/04/21/5512031.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值