使用執行階段資料更新報表

若要更新以執行階段 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.taiwan.businessobjects.com/
支援服務
http://www.businessobjects.com/services/support/