Flex 打印DataGrid内容 2.0

<? 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 >

你可能感兴趣的:(datagrid)