`

Flex 打印DataGrid内容 2.0

    博客分类:
  • 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>

分享到:
评论

相关推荐

    flex中dataGrid导出数据到excel中

    flex中dataGrid导出数据到excel中,不存在乱码问题

    FLEX的datagrid合计、平均值

    在Flex开发中,Datagrid组件是用于展示数据集的一个强大工具,它允许用户以表格的形式查看和操作数据。本文将深入探讨如何在Flex的Datagrid中实现数据的合计与平均值计算,帮助开发者更好地理解和应用这些功能。 ...

    Flex连接数据库 .net 2.0

    为了将数据库结果展示在Flex应用中,可以使用各种Flex组件,如DataGrid、List等,它们可以直接绑定到HTTPService的结果数据。通过数据绑定,当服务返回数据时,组件会自动更新,显示最新的数据库内容。 总的来说,...

    flex 自定义 datagrid 列头带组合框进行过滤

    在Flex开发中,数据网格(DataGrid)是一种常用的组件,用于展示结构化的数据。当我们需要在列头上添加更丰富的交互功能,例如组合框(ComboBox)来进行过滤操作时,就需要自定义列头。这个主题——"flex 自定义 ...

    flex 把datagrid的内容导出到Excel

    本文将深入探讨如何使用Flex来实现一个功能,即把Datagrid组件中的内容导出到Excel文件。 Datagrid是Flex中的一个核心组件,用于展示表格数据。它提供了丰富的功能,如排序、分页和自定义列显示。然而,有时用户...

    Flex4 DataGrid表格操作

    Flex4 DataGrid表格操作,表格回车事件默认是换行,这里修改为换单元格,单元格轮完换行。支持上下左右和回车键控制光标位置,还添加了"+","-"按钮,用于控制添加行和删除选中的行。

    Flex4 DataGrid控件行编辑项目

    在Flex4.6开发环境中,DataGrid控件是用于展示数据集合的重要组件,它提供了丰富的功能,如排序、分页和自定义列显示。在这个项目中,我们关注的是如何实现DataGrid的行编辑功能,特别是在行中嵌套ComboBox控件以...

    Flex的DataGrid中使用CheckBox

    Flex的DataGrid中使用CheckBox. 大家共同研究

    Flex实践——Datagrid的打印预览与打印

    本文将围绕“Flex实践——Datagrid的打印预览与打印”这一主题,深入探讨如何在Flex应用中实现数据网格控件Datagrid的打印功能,包括预览和实际打印操作。 首先,Datagrid是Flex中一个非常重要的组件,它用于展示二...

    打印DataGrid数据实例

    接下来,我们将讨论如何将`DataGrid`的内容转换为XPS文件。这通常涉及创建一个`FixedDocumentSequence`,它是一系列`FixedPage`的容器,每个`FixedPage`对应于打印页面的一张图像。`FixedPage`上可以添加控件,例如...

    flex下拉dataGrid

    在Flex开发中,"flex下拉dataGrid"是一种常见的用户界面组件组合,它结合了下拉菜单(Dropdown)和数据网格(DataGrid)的功能,用于提供丰富的数据选择体验。这样的设计通常用于当用户需要从一个较大的数据集合中...

    flex DataGrid 表头分组

    在Flex开发中,数据网格(DataGrid)是用于展示大量结构化数据的常用组件。它允许用户以表格的形式查看和操作数据。当我们处理的数据需要进行分类或者分组时,Flex DataGrid 提供了表头分组的功能,这使得数据的展示...

    flex datagrid 前台 分页

    通过分析和学习这些内容,开发者可以更好地理解和实现Flex DataGrid的前台分页功能。 总的来说,前台分页是一种提高用户体验的策略,但同时也需要谨慎处理以避免内存和性能问题。正确实现前台分页,可以使Flex ...

    在flex的dataGrid控件中显示图片的实践

    在Flex开发中,DataGrid控件是用于展示结构化数据的常用组件,它可以灵活地显示表格形式的数据。本文将深入探讨如何在DataGrid中显示图片,特别是在与Spring、Hibernate和Struts等框架集成的背景下,如何处理二进制...

    Flex 自定义DataGrid,带增删改查等各种功能

    Flex 自定义DataGrid,带增删改查等各种功能.列锁定,序号等各种功能.

    Flex FooterSpark DataGrid 表格制作

    Flex FooterSpark DataGrid 是Adobe Flex框架中用于创建高级数据展示组件的一个重要工具,它在桌面和Web应用中广泛用于数据网格的展示。Flex是基于ActionScript和MXML的开源框架,用于构建富互联网应用程序(RIA)。...

    flex 自定义dataGrid渲染器.根据数据变色

    在Flex开发中,数据网格(DataGrid)是用于展示大量结构化数据的常用组件。它允许用户以表格形式查看和操作数据。然而,有时我们可能需要根据数据的特定值来改变DataGrid中单元格的样式,例如颜色。这就涉及到了...

    Flex-DataGrid源码及资料

    Flex DataGrid是一款在Adobe Flex开发环境中广泛使用的组件,主要用于展示和操作大量结构化的数据。它是一种灵活的表格视图,可以轻松地实现数据的排序、筛选、分页等功能。在这个"Flex-DataGrid源码及资料"的压缩包...

    flex-datagrid中,双击选中的数据,自动把数据移动到另一个datagrid里

    flex-datagrid中,双击选中的数据,自动把数据移动到另一个datagrid里 希望可以帮助新的新手!

Global site tag (gtag.js) - Google Analytics