隨筆 - 225  文章 - 98  trackbacks - 0
          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          隨筆分類

          相冊

          報表工具廠商們

          搜索

          •  

          最新評論

          閱讀排行榜

           

          下面是本人得到的關于FineReport三個典型報表圖的代碼制作過程。有興趣的可以參考一下,很有幫助!

          報表一:
           


          代碼如下:
          package ms; import java.io.File; import com.fr.base.Constants; import com.fr.base.FRContext; import com.fr.base.dav.LocalEnv; import com.fr.demo.ArrayTableDataDemo; import com.fr.report.CellElement; import com.fr.report.Report; import com.fr.report.WorkBook; import com.fr.report.WorkSheet; import com.fr.report.cellElement.CellExpandAttr; import com.fr.report.cellElement.TableDataColumn; import com.fr.report.cellElement.core.DSColumn; import com.fr.report.cellElement.core.FunctionGrouper; import com.fr.report.io.TemplateImporter; import com.fr.web.Reportlet; import com.fr.web.ReportletException; import com.fr.web.ReportletRequest; public class ListReportlet implements Reportlet{ public Report createReport(ReportletRequest req) throws ReportletException { WorkBook workBook = null; try { File cptFile = new File("D:\\listreport.cpt"); TemplateImporter templateImporter = new TemplateImporter(cptFile); workBook = (WorkBook)templateImporter.generateReport(); // 定義程序數據集 String[] columnNames = {"月份", "產品", "銷售額"}; Object[][] rowData = { {"五月", "手機", new Integer(500)}, {"五月", "相機", new Integer(600)}, {"五月", "手表", new Integer(800)}, {"六月", "手機", new Integer(300)}, {"六月", "相機", new Integer(100)} }; ArrayTableDataDemo tableData = new ArrayTableDataDemo(columnNames, rowData); WorkSheet workSheet = (WorkSheet)workBook.getReport(0); // 將數據集添加到workSheet中, Employee為表名 workSheet.putTableData("Employee", tableData); // 把月份數據列放在單元格A2 DSColumn dsColumn = new DSColumn(); dsColumn.setDSName("Employee"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("月份")); CellElement cellElement = workSheet.getCellElement(0, 1); cellElement.setValue(dsColumn); // 把產品填入到B2 dsColumn = new DSColumn(); dsColumn.setDSName("Employee"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("產品")); cellElement = workSheet.getCellElement(1, 1); cellElement.setValue(dsColumn); // 把銷售額填入到c2 // 把產品填入到B2 dsColumn = new DSColumn(); dsColumn.setDSName("Employee"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("銷售額")); cellElement = workSheet.getCellElement(2, 1); cellElement.setValue(dsColumn); } catch (Exception exp) { exp.printStackTrace(); } return workBook; } }



          報表二:
           


          代碼如下:
          package ms; import java.io.File; import com.fr.demo.ArrayTableDataDemo; import com.fr.report.CellElement; import com.fr.report.Report; import com.fr.report.WorkBook; import com.fr.report.WorkSheet; import com.fr.report.cellElement.TableDataColumn; import com.fr.report.cellElement.core.DSColumn; import com.fr.report.cellElement.core.FunctionGrouper; import com.fr.report.io.TemplateImporter; import com.fr.web.Reportlet; import com.fr.web.ReportletException; import com.fr.web.ReportletRequest; public class CrossReportlet implements Reportlet{ public Report createReport(ReportletRequest req) throws ReportletException { WorkBook workBook = null; try { File cptFile = new File("D:\\crossreport.cpt"); TemplateImporter templateImporter = new TemplateImporter(cptFile); workBook = (WorkBook)templateImporter.generateReport(); // 定義程序數據集 String[] columnNames = {"月份", "產品", "銷售額"}; Object[][] rowData = { {"五月", "手機", new Integer(500)}, {"五月", "相機", new Integer(600)}, {"五月", "手表", new Integer(800)}, {"六月", "手機", new Integer(300)}, {"六月", "相機", new Integer(100)} }; ArrayTableDataDemo tableData = new ArrayTableDataDemo(columnNames, rowData); WorkSheet workSheet = (WorkSheet)workBook.getReport(0); // 將數據集添加到workSheet中, Employee為表名 workSheet.putTableData("Employee", tableData); // 把月份數據列放在單元格A2 DSColumn dsColumn = new DSColumn(); dsColumn.setDSName("Employee"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("月份")); CellElement cellElement = workSheet.getCellElement(0, 1); cellElement.setValue(dsColumn); // 把產品填入到B2 dsColumn = new DSColumn(); dsColumn.setDSName("Employee"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("產品")); cellElement = workSheet.getCellElement(1, 0); cellElement.setValue(dsColumn); // 把銷售額填入到c2 // 把產品填入到B2 dsColumn = new DSColumn(); dsColumn.setDSName("Employee"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("銷售額")); cellElement = workSheet.getCellElement(1, 1); cellElement.setValue(dsColumn); } catch (Exception exp) { exp.printStackTrace(); } return workBook; } }



          報表三:
           


           代碼如下:
          package ms; import java.awt.Color; import java.awt.Font; import java.io.File; import com.fr.base.ColumnRow; import com.fr.base.Constants; import com.fr.base.FRFont; import com.fr.base.Style; import com.fr.base.background.ColorBackground; import com.fr.data.condition.CommonCondition; import com.fr.data.core.Compare; import com.fr.demo.ArrayTableDataDemo; import com.fr.report.CellElement; import com.fr.report.Report; import com.fr.report.WorkBook; import com.fr.report.WorkSheet; import com.fr.report.cellElement.TableDataColumn; import com.fr.report.cellElement.core.DSColumn; import com.fr.report.cellElement.core.FunctionGrouper; import com.fr.report.io.TemplateImporter; import com.fr.web.Reportlet; import com.fr.web.ReportletException; import com.fr.web.ReportletRequest; public class CompareReportlet implements Reportlet { public Report createReport(ReportletRequest req) throws ReportletException { WorkBook workBook = null; try { File cptFile = new File("D:\\comparereport.cpt"); TemplateImporter templateImporter = new TemplateImporter(cptFile); workBook = (WorkBook)templateImporter.generateReport(); // 定義程序數據集 String[] columnNames = {"產品", "銷售額"}; Object[][] rowData1 = { {"手機", new Integer(500)}, {"相機", new Integer(600)}, {"手表", new Integer(800)} }; Object[][] rowData2 = { {"手機", new Integer(300)}, {"相機", new Integer(100)} }; ArrayTableDataDemo tableData1 = new ArrayTableDataDemo(columnNames, rowData1); ArrayTableDataDemo tableData2= new ArrayTableDataDemo(columnNames, rowData2); WorkSheet workSheet = (WorkSheet)workBook.getReport(0); //marks:調整報表的列寬 workSheet.setColumnWidth(2, 200); // 將數據集添加到workSheet中, Employee為表名 workSheet.putTableData("Employee1", tableData1); workSheet.putTableData("Employee2", tableData2); // 把產品填入到A2 DSColumn dsColumn = new DSColumn(); dsColumn.setDSName("Employee1"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("產品")); CellElement cellElement = workSheet.getCellElement(0, 1); cellElement.setValue(dsColumn); // 把產品填入到B2 dsColumn = new DSColumn(); dsColumn.setDSName("Employee2"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("銷售額")); //marks:設置條件,產品=A2 dsColumn.setCondition(new CommonCondition("產品",Compare.EQUALS,ColumnRow.valueOf(0,1))); cellElement = workSheet.getCellElement(1, 1); cellElement.setValue(dsColumn); // 把產品填入到C2 dsColumn = new DSColumn(); dsColumn.setDSName("Employee1"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("銷售額")); cellElement = workSheet.getCellElement(2, 1); cellElement.setValue(dsColumn); //marks:設置單元格字體, // 得到CellElement的樣式,如果沒有新建默認樣式 Style style = cellElement.getStyle(); if(style == null) { style = Style.getInstance(); } // 設置字體和前景的顏色 FRFont frFont = FRFont.getInstance("Dialog", Font.BOLD, 14); frFont = frFont.applyForeground(new Color(21, 76, 160)); style = style.deriveFRFont(frFont); // 設置背景 ColorBackground background = ColorBackground.getInstance(new Color(255, 255, 177)); style = style.deriveBackground(background); // 設置水平居中 style = style.deriveHorizontalAlignment(Constants.CENTER); // 設置邊框 style = style.deriveBorder(Constants.LINE_DASH_DOT, Color.red, Constants.LINE_DASH_DOT, Color.yellow, Constants.LINE_DASH_DOT, Color.BLUE, Constants.LINE_DASH_DOT, Color.CYAN); cellElement.setStyle(style); } catch (Exception exp) { exp.printStackTrace(); } return workBook; } }



          了解Java報表工具就從這里開始
          posted on 2009-04-15 16:49 season 閱讀(995) 評論(3)  編輯  收藏 所屬分類: Java報表—技術知識

          FeedBack:
          # re: FineReport三個典型報表圖制作代碼全分享 2010-09-09 16:22 lovemark2000
          這還是有點難度,加油學習中  回復  更多評論
            
          # re: FineReport三個典型報表圖制作代碼全分享 2010-09-10 11:14 我愛大喵喵
          專業  回復  更多評論
            
          # re: FineReport三個典型報表圖制作代碼全分享 2010-09-12 11:24 桑桑
          LZ的解釋好詳細~~抱走了  回復  更多評論
            
          主站蜘蛛池模板: 惠东县| 隆林| 潼关县| 句容市| 七台河市| 武城县| 万全县| 江达县| 象山县| 南溪县| 昌江| 光山县| 澄迈县| 修文县| 巴青县| 左贡县| 平乐县| 栾川县| 庆安县| 扎鲁特旗| 绥棱县| 西贡区| 安西县| 丘北县| 新兴县| 常山县| 剑河县| 宜章县| 高碑店市| 屏东县| 铜梁县| 兴化市| 马龙县| 崇左市| 襄垣县| 云霄县| 大理市| 香河县| 满城县| 铜山县| 浙江省|