设置报表属性

阅读(621) 标签: 打印, 导出, 背景图, 子报表,

常规

一般常规属性可以直接在ReportDefine对象中设置,如下

rd.setSubmit(ReportDefine.SUBMIT_UPDATABLE);  //设置数据提交方案,ReportDefine.SUBMIT_UPDATABLE代表要保存的单元格,ReportDefine.SUBMIT_ALL代表所有单元格,ReportDefine.SUBMIT_UPDATABLE_WRITABLE代表要保存的和可写的单元格

 

rd.setReportType(ReportDefine.RPT_NORMAL);  //设置报表样式,ReportDefine.RPT_NORMAL代表普通报表,ReportDefine.RPT_LINE代表行式报表

   



打印

  PrintSetup打印设置类

 

PrintSetup ps = new PrintSetup();

ps.setBackGraphPrinted(false);  //是否打印背景图

ps.setPaper(PrintSetup.A4_PAPERSIZE);  //设置纸张大小为A4,类似的还有别的纸张尺寸,详看PrintSetup的帮助

ps. setBottomMargin(25);  //设置下边距(mm),类似的还有设置上、下、左、右等边距

ps. setColTableHeaderAndFooterMode(PrintSetup.PRINT_FIRST_PAGE);  //设置列表头和列表尾的打印方式, PrintSetup.PRINT_FIRST_PAGE代表只第一页打印,PrintSetup.PRINT_PER_PAGE代表每页都打

 

ps. setHAlign(PrintSetup. HALIGN_CENTER); //设置打印水平对齐位置,PrintSetup. HALIGN_CENTER代表水平居中,PrintSetup. HALIGN_LEFT代表水平居左,PrintSetup. HALIGN_RIGHT代表水平居右

 

ps. setLayout(PrintSetup.LAYOUT_COL); //设置按数据行数分页、一张纸打印多页时的打印顺序,PrintSetup.LAYOUT_COL代表先列后行,PrintSetup.LAYOUT_ROW代表先行后列

 

ps. setLayoutColNum(3); //设置按数据行数分页且每张纸打印多页(NxP)时,一张纸上的布局列数P

ps. setLayoutRowNum(2); //设置按数据行数分页且每张纸打印多页(NxP)时,一张纸上的布局行数N

 

ps. setOrientation(PrintSetup.LANDSCAPE); //设置纸张方向,PrintSetup.LANDSCAPE代表横向,PrintSetup.PORTRAIT代表竖向

 

ps. setPageHeaderAndFooterXMode(PrintSetup.PRINT_SPLITTED_FIRST_PAGE); //设置页眉与页脚横向分页时打印方式,PrintSetup.PRINT_SPLITTED_FIRST_PAGE代表仅首页打印切分部分,PrintSetup.PRINT_SPLITTED_FIRST_PAGE代表每页都打印切分部分,PrintSetup.PRINT_FIRST_PAGE代表只第一页打印,PrintSetup.PRINT_PER_PAGE代表每页都打

 

ps. setPageHeaderAndFooterYMode(PrintSetup.PRINT_SPLITTED_FIRST_PAGE); //设置页眉与页脚纵向分页时打印方式,PrintSetup.PRINT_FIRST_PAGE代表只第一页打印,PrintSetup.PRINT_PER_PAGE代表每页都打

 

ps. setPagerStyle(PrintSetup.PAGER_NONE); //设置分页方式,PrintSetup.PAGER_NONE代表不分页,PrintSetup.PAGER_ROW代表按行数分页,PrintSetup.PAGER_SIZE代表按纸张尺寸分页

 

ps. setPaperSize(360, 840); //设置自定义纸张大小mm

 

ps. setRowNumPerPage(5); //设置按数据行数分页时每页的数据行数

ps. setTableColumnNum(3); //设分栏数

 

ps. setTitleXMode(byte mode); //设置标题横向分页时打印方式,PrintSetup.PRINT_SPLITTED_FIRST_PAGE代表仅首页打印切分部分,PrintSetup.PRINT_SPLITTED_FIRST_PAGE代表每页都打印切分部分,PrintSetup.PRINT_FIRST_PAGE代表只第一页打印,PrintSetup.PRINT_PER_PAGE代表每页都打

 

ps. setTitleYMode(byte mode); //设置标题纵向分页时打印方式,PrintSetup.PRINT_FIRST_PAGE代表只第一页打印,PrintSetup.PRINT_PER_PAGE代表每页都打

 

ps. setVirtualPrinter(java.lang.String printerName);  //设置虚拟打印机名,用于带表格线的文本报表打印

ps. setZoomMode(PrintSetup.ZOOM_NONE); //设置缩放打印方式,PrintSetup.ZOOM_BY_SCALE代表按指定比例缩放(需要填入缩放比例)PrintSetup.ZOOM_HEIGHT代表按高缩放,报表高度与纸高匹配,PrintSetup.ZOOM_NONE代表不缩放,PrintSetup.ZOOM_TO_PAGE代表缩放到指定的页数(需要填入几页宽,几页高)PrintSetup.ZOOM_WIDTH代表按宽缩放,报表宽度与纸宽匹配

 

rd.setPrintSetup( ps );  //将打印属性设置给ReportDefine

 

  PrintFrame打印对话框类:

PrintFrame pf=new PrintFrame(iReport,null);  //iReport为计算后的报表,报表运算,参见2.1.1

pf.setColumns(2);   //设置报表的分栏数

pf.setPrintablePages(1);  //设置要打印的页号,可以多次调以设置多个页

pf.setPrintablePages(2,6);   //设置要打印的连续页号 ,包括起始和终止页号

pf.setHorizontalAlign(PrintSetup.HALIGN_CENTER);  //设置横向对齐方式,“PrintSetup.HALIGN_CENTER”表示居中; “PrintSetup.HALIGN_LEFT”表示居左; “PrintSetup.HALIGN_RIGHT”表示居右

PageFormat pageFormat=new PageFormat();  //定义描述打印页面方向和大小的对象

Paper paper=new Paper();   //定义一个新纸张对象

paper.setSize(684,792);   //设置纸张的大小

paper.setImageableArea(100,100,594,702) ;   //设置打印区域的大小

pageFormat.setPaper(paper);  //PageFormat对象设置Paper对象。

pf.setPrintPageFormat(pageFormat);   //设置打印纸张的页面设置

pf. setPrintZoomType(PrintSetup.ZOOM_WIDTH);  //设置打印时对报表的缩放类型,取值为: PrintSetup.ZOOM_NONE 表示不缩放;取值为:PrintSetup.ZOOM_WIDTH 表示按宽缩放,报表宽度与纸宽匹配;取值为:PrintSetup.ZOOM_HEIGHT 表示按高缩放,报表高度与纸高匹配;取值为:PrintSetup.ZOOM_BY_SCALE 表示按指定比例缩放(需要填入缩放比例)

pf.setPrintZoomScale(100);    //设置打印时对报表的缩放比例,该比例为百分数,例如100为原值大小。

pf.setDisplayScale(100);    //设置预览报表时对报表的缩放比例,修改该比例仅影响显示,跟实际打印输出没有关系,该比例为百分数,例如100为原值大小。

pf.goToPage(1);  //在当前的页面定义范围内设置要显示的页面,页号从1开始

pf.goToFirstPage(1);   //设置当前定义范围内的首页

pf.goToLastPage (6);  //设置当前定义范围内的末页

pf.goToPreviousPage (5);   //设置当前定义范围内的前页

pf.goToNextPage (6);  //设置当前定义范围内的后页

pf.getReportPane();  //获取显示报表的面板

pf.getPrinterJob();   //获取当前的打印任务对象,可以自己取消或者获取对象里面的任何有意义的信息。注意:只有调用了类似于Print的方法之后,该对象才不为null

pf.backgroundPrinting ();  //直接在后台打印报表,不显示打印窗口,不选择打印机

pf.print();   //输出打印任务

pf.directPrint (true);  //将报表直接发送到打印机进行打印,参数为true表示需要选择打印机,参数为false表示不需要选择打印机

导出

ExportConfig expConfig = new ExportConfig(); //新建导出属性

 

expConfig.setExcelHiddenColExported(false);  //设导出到Excel时是否导出隐藏列

expConfig.setExcelHiddenRowExported(false); //设导出到Excel时是否导出隐藏行

expConfig.setExcelFilePassword("password");  //设置excel文件的口令

 

expConfig.setPDFOwnerPassword("password");  //设置导出pdf文件时拥有者的口令

expConfig.setPDFAssembly(true);      //设置导出pdf文件时是否允许文档汇编

expConfig.setPDFCopy(true);         //设置导出pdf文件时是否允许复制

expConfig.setPDFDegradedPrinting(true);    //设置导出pdf文件时是否允许打印

expConfig.setPDFFillIn(true);        // 设置导出pdf文件时是否允许填写表格栏

expConfig.setPDFModifyAnnotations(true);    //设置导出pdf文件时是否允许常规编辑、注释

expConfig.setPDFModifyContents(true);    //设置导出pdf文件时是否允许更改文档

expConfig.setPDFScreenReaders(true);    //设置导出pdf文件时是否启用视障人士内容访问

expConfig.setPDFUserPassword("password");  //设导出到pdf文件时的用户口令

 

rd.setExportConfig( expConfig);        //将导出属性设置给ReportDefine

 

背景图

 

BackGraphConfig bgc = new BackGraphConfig();  //构造背景图属性

bgc.setDispMode(BackGraphConfig.DISP_PER_PAGE);  //设置背景图显示方式:

BackGraphConfig.DISP_PER_PAGE代表每页显示,BackGraphConfig.DISP_NONE代表不显示

 

bgc.setType(BackGraphConfig.TYPE_CUSTOM);  //设置背景图配置类型,

BackGraphConfig.TYPE_CUSTOM代表用户自定义,BackGraphConfig.TYPE_URL代表url

 

bgc.setURLOrClassName(java.lang.String urlOrClassName);  //设置ULR或类名称,参数typeTYPE_URL时此参数表示URL,为TYPE_CUSTOM时此参数表示类名(必须实现IBackGraphGenerator接口) 

 

rd.setBackGraphConfig( bgc );  //把背景图属性设置给ReportDefine

 

子报表

SubReportMetaData subReport = new SubReportMetaData();  //构造子报表元数据

SubReportConfig src = new SubReportConfig();  //构造子报表定义

src.setName("subReport1");  //设置子报表名称

src.setURLType(SubReportConfig.TYPE_ABSOLUTE);  //设置子报表定义的URL类型为绝对路径

src.setURL("C:/abc.rpx");  //设置子报表的路径

subReport.addSubReportConfig(src);  //把子报表定义添加到子报表元数据中

rd.setSubReportMetaData( subReport );  //把子报表元数据赋给ReportDefine