用运行时数据更新报表

要更新基于运行时 POJO 数据的报表,请实例化创建报表所要使用的方法或数据结构。然后,用 DatabaseController 修改报表的表格。

更新报表
  1. 要创建 DatabaseController,请从包含报表的 ReportClientDocument 的实例中调用 getDatabaseController。
  2. DatabaseController dbc = rcd.getDatabaseController();

  3. 要设置 DatabaseController 的数据源,请调用 setDataSource 并以参数形式传递对象集合、POJO 类定义和表名称。
  4. String reportTable = "pojoReport";

    dbc.setDataSource(data, ReportData.class, reportTable, reportTable);    

pojoViewer.jsp 示例代码

<%@ page import="com.crystaldecisions.report.web.viewer.CrystalReportViewer,

com.crystaldecisions.sdk.occa.report.reportsource.IReportSource,

com.crystaldecisions.reports.sdk.*,

java.sql.*"

language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"

%>

<%

String report = "pojoReport.rpt";

ReportClientDocument rcd = new ReportClientDocument();

rcd.open(report, 0);

DatabaseController dbc = rcd.getDatabaseController();

//Create the POJO data

ReportData data1 = new ReportData("B.B.", "King", 6, new Date(25, 9, 16));

ReportData data2 = new ReportData("Muddy", "Waters", 7, new Date(15, 4, 4));

ReportData data3 = new ReportData("John Lee", "Hooker", 8, new Date(16, 8, 16));

ReportData data4 = new ReportData("Otis", "Rush", 9, new Date(34, 4, 29));

ReportData data5 = new ReportData("Buddy", "Guy", 10, new Date(36, 7, 30));

String reportTable = "pojoReport"; //The table name in your report.

java.util.ArrayList objects = new java.util.ArrayList();

objects.add(data1);

objects.add(data2);

objects.add(data3);

objects.add(data4);

objects.add(data5);

dbc.setDataSource(objects, ReportData.class, reportTable, reportTable);

IReportSource reportSource = rcd.getReportSource();

CrystalReportViewer viewer = new CrystalReportViewer();

viewer.setOwnPage(true);

viewer.setReportSource(reportSource);

viewer.processHttpRequest(request, response, getServletConfig().getServletContext(), null);

%>






Business Objects
http://www.china.businessobjects.com/

支持服务
http://www.china.businessobjects.com/services/services.htm