设置报表属性

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

常规

一般常规属性可以直接在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文件时的用户口令

 

expConfig.setWordPassword("password");    //设置Word文件的口令

 

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

 

背景图

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

 

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

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

 

bgc.setImageSource(BackGraphConfig.SOURCE_TEXT);  //设置背景图的生成来源

BackGraphConfig.SOURCE_NONE代表不设置"空白"BackGraphConfig.SOURCE_PICTURE代表用"图片"BackGraphConfig.SOURCE_TEXT代表用"水印"

 

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

BackGraphConfig.TYPE_EXP代表表达式串,BackGraphConfig.TYPE_URL代表url  或文本

   

bgc.setValue("E:/files/pic.jpg");  //设置图片的URL或表达式串

参数typeTYPE_URL时此参数表示URL,为TYPE_EXP时此参数表示表达式串

   

bgc.setMode(BackGraphConfig.TEXT_NORMAL); //设置背景图片或水印的样式

图片样式:BackGraphConfig.MODE_NONE代表左上,BackGraphConfig.MODE_FILL代表填充,BackGraphConfig.MODE_TILE代表平铺

水印样式:BackGraphConfig.TEXT_NORMAL代表水平,BackGraphConfig.TEXT_TILT代表倾斜

 

bgc.setValue("raqsoft水印文字");    //设置水印的文本内容或表达式串

参数typeTYPE_URL时此参数表示文本,为TYPE_EXP时此参数表示表达式串

 

bgc.setFontName("黑体");    //设置水印文字的字体名

bgc.setFontSize(20);      //设置水印文字的字号

bgc.setTextColor(165536);    //设置水印文字的颜色值

bgc.setTransparency(10);    //设置水印文字的透明度,值为0100

bgc.setTextGap(60);      //设置水印文字平铺时的文本间隔

 

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