Flex 打印DataGrid内容

FromPrintView.mxml
<? xml version="1.0" ?>
<!--  Custom control to print the DataGrid control on multiple pages.  -->

< mx:VBox  xmlns:mx ="http://www.adobe.com/2006/mxml"  xmlns ="*"  backgroundColor ="#FFFFFF"
    paddingTop
="50"  paddingBottom ="50"  paddingLeft ="50"  paddingRight ="50"  height ="168"  
    width
="546" >

    
< mx:Script >
        
<![CDATA[
            import mx.core.*
            import mx.collections.ArrayCollection;
            [Bindable]
            public var pageNumber:Number = 1;
            [Bindable]
            public var prodTotal:Number = 0;

            
            import mx.printing.*;
            public static  var footerHeight:Number = 20;
            public static var prodIndex:Number;
            public static var prodTotal:Number = 0;

            public static function doPrint(datap:Object):void {
                var printJob:FlexPrintJob = new FlexPrintJob();
                if (printJob.start()) {                   
                    var thePrintView:FormPrintView = new FormPrintView();
                    Application.application.addChild(thePrintView);                    
                    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();
            }
            
            public 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 ="通道申请名录"  fontWeight ="bold"  fontSize ="20"  textAlign ="center"  width ="100%" />
        
< mx:HRule  width ="100%"  height ="1"  strokeColor ="#000000" />
    
</ mx:VBox >
    
    
< mx:PrintDataGrid  id ="printDataGrid"  width ="100%"  height ="100%" >
        
< mx:columns >            
            
< mx:DataGridColumn  dataField ="姓名"  width ="150" />
            
< mx:DataGridColumn  dataField ="性别"  width ="40" />
            
< mx:DataGridColumn  dataField ="学号"  width ="80" />
            
< mx:DataGridColumn  dataField ="准考证号"  width ="90" />
            
< mx:DataGridColumn  dataField ="生源地"  width ="60" />
            
< mx:DataGridColumn  dataField ="身份"  width ="75" />
            
< mx:DataGridColumn  dataField ="户口"  width ="75" />
            
< mx:DataGridColumn  dataField ="部门"  width ="100" />
            
< mx:DataGridColumn  dataField ="财务处是否办理"  headerText ="是否办理" />
        
</ mx:columns >
    
</ mx:PrintDataGrid >
    
< mx:VBox  width ="100%"  horizontalAlign ="left"  id ="footer"   >
        
< mx:Spacer  height ="100%" />
        
< mx:HRule  width ="100%"  height ="1"  strokeColor ="#000000" />
        
< mx:Label  text ="总人数:{prodTotal}" />
    
</ mx:VBox >

</ mx:VBox >

调用方法
< mx:Button  label ="打印" click ="{FormPrintView.doPrint(this.myDataGrid.dataProvider)}" />



你可能感兴趣的:(datagrid)