本範例說明如何使用檢視器標示庫,以使用由頁面伺服器產生的報表來源顯示報表。
<%@ taglib uri="/crystal
<%@ page import="com.crystaldecisions.sdk.exception.SDKException" %>
<%@ page import="com.crystaldecisions.sdk.framework.ISessionMgr" %>
<%@ page import="com.crystaldecisions.sdk.framework.IEnterpriseSession" %>
<%@ page import="com.crystaldecisions.sdk.framework.CrystalEnterprise" %>
<%@ page import="com.crystaldecisions.sdk.occa.managedreports.*" %>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoObject" %>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoObjects" %>
<%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoStore" %>
<%@ page import="com.crystaldecisions.sdk.occa.report.reportsource.IReportSourceFactory2" %>
在這種情況下,會使用預設的系統管理員帳戶,在執行應用程式伺服器的相同電腦上登入執行的 BusinessObjects Enterprise 安裝。
<%
IEnterpriseSession es = CrystalEnterprise.getSessionMgr().logon("administrator", "", "localhost", "secEnterprise");
IInfoStore infoStore = (IInfoStore) es.getService("","InfoStore");
IInfoObjects infoObjects = infoStore.query("SELECT * FROM CI_INFOOBJECTS WHERE SI_NAME='World Sales Report'");
IInfoObject report = (IInfoObject) infoObjects.get(0);
IReportSourceFactory2 reportFactory = (IReportSourceFactory2) es.getService (眣, 涑SReportFactory”);
Object reportSource = reportFactory.createReportSource(report, request.getLocale());
這樣便可以由檢視器擷取該物件。
session.setAttribute("ReportSource", reportSource);
%>
在這種情況下,報表來源類型是 pageServer,而報表來源變數則會參考儲存 ReportSource 物件的工作階段變數。
<html>
<body>
<crviewer:viewer viewerName="CrystalViewer" reportSourceType="pageServer" reportSourceVar="ReportSource" />
</body>
</html>
| Business Objects http://www.taiwan.businessobjects.com/ 支援服務 http://www.businessobjects.com/services/support/ |