<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

    隨筆分類

    相冊

    報表工具廠商們

    搜索

    •  

    最新評論

    閱讀排行榜

     

    下面是本人得到的關(guān)于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(); // 定義程序數(shù)據(jù)集 String[] columnNames = {"月份", "產(chǎn)品", "銷售額"}; 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); // 將數(shù)據(jù)集添加到workSheet中, Employee為表名 workSheet.putTableData("Employee", tableData); // 把月份數(shù)據(jù)列放在單元格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); // 把產(chǎn)品填入到B2 dsColumn = new DSColumn(); dsColumn.setDSName("Employee"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("產(chǎn)品")); cellElement = workSheet.getCellElement(1, 1); cellElement.setValue(dsColumn); // 把銷售額填入到c2 // 把產(chǎn)品填入到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(); // 定義程序數(shù)據(jù)集 String[] columnNames = {"月份", "產(chǎn)品", "銷售額"}; 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); // 將數(shù)據(jù)集添加到workSheet中, Employee為表名 workSheet.putTableData("Employee", tableData); // 把月份數(shù)據(jù)列放在單元格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); // 把產(chǎn)品填入到B2 dsColumn = new DSColumn(); dsColumn.setDSName("Employee"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("產(chǎn)品")); cellElement = workSheet.getCellElement(1, 0); cellElement.setValue(dsColumn); // 把銷售額填入到c2 // 把產(chǎn)品填入到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(); // 定義程序數(shù)據(jù)集 String[] columnNames = {"產(chǎn)品", "銷售額"}; 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:調(diào)整報表的列寬 workSheet.setColumnWidth(2, 200); // 將數(shù)據(jù)集添加到workSheet中, Employee為表名 workSheet.putTableData("Employee1", tableData1); workSheet.putTableData("Employee2", tableData2); // 把產(chǎn)品填入到A2 DSColumn dsColumn = new DSColumn(); dsColumn.setDSName("Employee1"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("產(chǎn)品")); CellElement cellElement = workSheet.getCellElement(0, 1); cellElement.setValue(dsColumn); // 把產(chǎn)品填入到B2 dsColumn = new DSColumn(); dsColumn.setDSName("Employee2"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("銷售額")); //marks:設(shè)置條件,產(chǎn)品=A2 dsColumn.setCondition(new CommonCondition("產(chǎn)品",Compare.EQUALS,ColumnRow.valueOf(0,1))); cellElement = workSheet.getCellElement(1, 1); cellElement.setValue(dsColumn); // 把產(chǎn)品填入到C2 dsColumn = new DSColumn(); dsColumn.setDSName("Employee1"); dsColumn.setGrouper(new FunctionGrouper()); dsColumn.setColumn(TableDataColumn.createColumn("銷售額")); cellElement = workSheet.getCellElement(2, 1); cellElement.setValue(dsColumn); //marks:設(shè)置單元格字體, // 得到CellElement的樣式,如果沒有新建默認樣式 Style style = cellElement.getStyle(); if(style == null) { style = Style.getInstance(); } // 設(shè)置字體和前景的顏色 FRFont frFont = FRFont.getInstance("Dialog", Font.BOLD, 14); frFont = frFont.applyForeground(new Color(21, 76, 160)); style = style.deriveFRFont(frFont); // 設(shè)置背景 ColorBackground background = ColorBackground.getInstance(new Color(255, 255, 177)); style = style.deriveBackground(background); // 設(shè)置水平居中 style = style.deriveHorizontalAlignment(Constants.CENTER); // 設(shè)置邊框 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 閱讀(994) 評論(3)  編輯  收藏 所屬分類: Java報表—技術(shù)知識

    FeedBack:
    # re: FineReport三個典型報表圖制作代碼全分享 2010-09-09 16:22 lovemark2000
    這還是有點難度,加油學(xué)習(xí)中  回復(fù)  更多評論
      
    # re: FineReport三個典型報表圖制作代碼全分享 2010-09-10 11:14 我愛大喵喵
    專業(yè)  回復(fù)  更多評論
      
    # re: FineReport三個典型報表圖制作代碼全分享 2010-09-12 11:24 桑桑
    LZ的解釋好詳細~~抱走了  回復(fù)  更多評論
      
    主站蜘蛛池模板: 久久WWW免费人成—看片| 亚洲第一精品福利| 成人黄软件网18免费下载成人黄18免费视频| 亚洲第一网站男人都懂| 亚洲欧美日韩中文高清www777| 香蕉97碰碰视频免费| 国产成人精品无码免费看| 日本免费福利视频| 亚洲一卡2卡三卡4卡有限公司| 久久精品国产亚洲av天美18 | 亚洲H在线播放在线观看H| 99免费观看视频| 亚洲国产精品久久久久秋霞影院| 狠狠色香婷婷久久亚洲精品| 国产成人无码免费看片软件| 亚洲日韩欧洲无码av夜夜摸| 国内精品一级毛片免费看| 亚洲综合国产精品| 毛片基地免费观看| 四虎影视久久久免费| 亚洲性猛交XXXX| 亚洲w码欧洲s码免费| 中文亚洲成a人片在线观看| 激情无码亚洲一区二区三区| 中文字幕第13亚洲另类| 精品视频在线免费观看| 亚洲伊人久久大香线蕉啊| 精品无码国产污污污免费| 亚洲男人天堂2022| 四虎AV永久在线精品免费观看| 久久精品国产99国产精品亚洲| 精品国产免费一区二区| sihu国产精品永久免费| 亚洲首页在线观看| 日本亚洲免费无线码| 亚洲免费视频播放| 又粗又大又猛又爽免费视频| 黄色片免费在线观看| 亚洲精品无码永久在线观看男男| 国产国拍亚洲精品福利| 一级有奶水毛片免费看|