Hi All

I am using a PrintDataGrid to display data on 1 or more pages. I have
headers and footers that are removed on certain pages.

It all works fine except for reports where only 1 page is produced.
Here I get all the data but only the top half of the last row is visible.

I can't see what is making this happen only in this case.

Any ideas?

Thanks Giles.

Code:

<PrintDataGridReport>

<?xml version="1.0" encoding="utf-8"?>
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml";
backgroundColor="#FFFFFF" 
        paddingTop="20" paddingBottom="20" paddingLeft="8" paddingRight="8">
        <mx:Script>
                <![CDATA[
                        
                        [Bindable]
                        public var heading:String;
                        
                        public function setPageType(pageType:String):void
                        {
                                
                                lblFooter.visible = true;
                                lblFooter.includeInLayout = true;
                                lblHeading.visible = true;
                                lblHeading.includeInLayout = true;
                                
                                switch(pageType)
                                {
                                        case PAGE_ONLY:
                                        lblFooter.visible = false;
                                        lblFooter.includeInLayout = false;
                                        lblHeading.visible = false;
                                        lblHeading.includeInLayout = false;
                                        break;
                                        
                                        case PAGE_FIRST:
                                        break;
                                        
                                        case PAGE_MIDDLE:
                                        lblHeading.visible = false;
                                        lblHeading.includeInLayout = false;
                                        break;
                                        
                                        case PAGE_LAST:
                                        lblHeading.visible = false;
                                        lblHeading.includeInLayout = false;
                                        spcPageFiller.includeInLayout = true;
                                        break;
                                }
                                validateNow();
                        }
                        
                        public static const PAGE_ONLY:String = "onlyPage";
                        public static const PAGE_FIRST:String = "firstPage";
                        public static const PAGE_MIDDLE:String = "middlePage";
                        public static const PAGE_LAST:String = "lastPage";
                ]]>
        </mx:Script>

        <mx:Label styleName="subHeading" id="lblHeading" width="100%"
text="{heading}" />
        
        <mx:PrintDataGrid width="100%" id="printDataGrid" wordWrap="true"
fontSize="8" sizeToPage="true"/>
        
        <mx:Spacer height="100%" includeInLayout="false" id="spcPageFiller" />
        
        <mx:HBox horizontalAlign="center" width="100%">
                <mx:Label id="lblFooter" fontSize="8" />
        </mx:HBox>
</mx:VBox>

<model>
                public function
printDataGrid(sourceDataGrid:DataGrid,Heading:String):void
                {
                        var printJob :FlexPrintJob = new FlexPrintJob();
                        
                        if(printJob.start() != true)return;
                        
                        var printCanvas:PrintDataGridReport = new 
PrintDataGridReport();
                        Application.application.addChild(printCanvas);
                        printCanvas.width = printJob.pageWidth;
                        printCanvas.height = printJob.pageHeight;
                        
                        printCanvas.heading = Heading;
                        
                        printCanvas.printDataGrid.dataProvider = 
sourceDataGrid.dataProvider;
                        printCanvas.printDataGrid.columns = 
sourceDataGrid.columns;
                        
                        printCanvas.setPageType(PrintDataGridReport.PAGE_ONLY);
                        
                        if(printCanvas.printDataGrid.validNextPage)
                        {
                                
printCanvas.setPageType(PrintDataGridReport.PAGE_FIRST);
                                printCanvas.lblFooter.text = "Page 1";
                        }
                        
                        
                        printJob.addObject(printCanvas);
                        
                        var currentPage:int = 2;
                        
                        while (printCanvas.printDataGrid.validNextPage){
                                printCanvas.printDataGrid.nextPage();
                                
printCanvas.setPageType(PrintDataGridReport.PAGE_LAST);
                                
                                printCanvas.lblFooter.text = "Page " + 
currentPage;
                                if(printCanvas.printDataGrid.validNextPage)
                                {
                                        
printCanvas.setPageType(PrintDataGridReport.PAGE_MIDDLE);
                                }
                                
                                printJob.addObject(printCanvas);
                                currentPage++;
                        }
                        
                        printJob.send();
                        
                        Application.application.removeChild(printCanvas);
                }

Reply via email to