该文章分为三份 因为内容比较多 怕这边一次性传不了 所以一集集分享 另外附件为相关ListReport附件 注意查收
报表一:ListReport
以下代码均纯Java编写
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("销售额"));