`

Flex打印

    博客分类:
  • Flex
 
阅读更多
<?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>

headerText=(_view.main._dataGrid._mainData.columns[event.columnIndex] as DataGridColumn).headerText;

if (headerText == "Vol(B)" || headerText == "Px(B)" || headerText == "CP(B)") {

			var pt:Point=UIUtils.idbGlobalToContent(event, event.localX, event.localY);
			var _headHeight:int=(event.currentTarget as DataGrid).headerHeight;
			if (pt.y < _headHeight) {
				return;
			}
			var tableHeaderText:String=(_view.main._homeOffer._topDG.columns[event.columnIndex] as DataGridColumn).headerText;
			if(tableHeaderText == "代码"||tableHeaderText == "简称"){
				_view.main._homeOffer._topDG.selectedItem as BondOfferVO;
			}else{
				bondEdit(BondRate.EDIT_TYPE);
			}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics