您的位置:首页 > 其它

Flex 打印DataGrid内容 2.0

2007-01-24 20:14 337 查看
<?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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: