1. ç¼åæ¥è¡¨æº
å¨ä¼è¯åéä¸ç¼åæ¥è¡¨æºä½¿å¾æ¥è¡¨æºå¯è¢«ææå°ä½¿ç¨å¤æ¬¡ãå¨æªç¼åæ¥è¡¨æºæ¶ï¼å¤æ¬¡å建æ°æ¥è¡¨æºçè¿ç¨å°åå¾é常æè´µãèä¸ï¼ç¼åæ¥è¡¨æºè¿å 许å·æ°å å«æä¸å å«å·²ä¿åæ°æ®çæ¥è¡¨ã
以ä¸ç¤ºä¾æ¾ç¤ºäºå¦ä½å¨ä¼è¯åéä¸ç¼åæ¥è¡¨æºï¼
String report = "/reports/sample.rpt";
ReportClientDocument reportClientDoc = new ReportClientDocument();
reportClientDoc.open(report, 0);
Object reportSource = reportClientDoc.getReportSource();
session.setAttribute("reportSource", reportSource);
Â
Â
注æï¼ Â Â Â å¦æè¦ä½¿ç¨ç¼åçæ¥è¡¨æºï¼å¨ä¸å使ç¨æ¥è¡¨æºä¹åï¼è¯·ä¸è¦è°ç¨æ¥çå¨ææ¥è¡¨æºç丢å¼æ¹æ³ã
强ç建议æ¨ç¼åæ¥è¡¨æºï¼ä»¥ä¾¿å¨æ¥çæ¥è¡¨æ¶ç¡®ä¿æ°æ®çä¸è´æ§ãå¦æ使ç¨æªç¼åçæ¥è¡¨æºï¼åä¼å¨æ¥çå¨ææ¥è¡¨æ§ä»¶ä¸æ§è¡ä»»ä½æä½æ¶å建æ°çæ¥è¡¨æºãå æ¤ï¼ä½¿ç¨æªç¼åçæ¥è¡¨æºå°ä¼å¯¼è´æ¥çå¨æ¾ç¤ºå å«å·²ä¿åæ°æ®çä¸äºé¡µé¢ï¼å¹¶åæ¶æ¾ç¤ºå å«å®æ¶æ°æ®çå¦ä¸äºé¡µé¢ã
Â
2. åªææ¥çå¨ç页é¢
å¦æ JSP 页é¢åªå å«æ¥çå¨è没æä»»ä½å ¶ä»å 容ï¼åå¯ä»¥æ§è¡ä¸äºæä½æ¥ç®åæ¥è¡¨æ¥çå®æ½ã
设置 setOwnPage
åå³äºæ¥çå 容ï¼æ¥çå¨è½å¤çæå®æ´ç HTML 页é¢ï¼å¹¶è½è®¾ç½®ç¸åºç页é¢å±æ§ãå° setOwnPage 设置为 true 使æ¥çå¨è½å¤å®æ´å°å¤çå¨å´ç HTML å 容ï¼ä»è带æ¥è¥å¹²å¥½å¤ãå 许æ¥çå¨å¤çå¨å´ç HTML å 容å¯ä»¥åå°éè¦å JSP 页é¢ä¸æ·»å ç代ç éï¼å¹¶ä½¿æ¥çå¨è½å¤èªå¨ç¡®å®æäºè®¾ç½®ï¼
- Â
-
å®å 许æ¥çå¨æ ¹æ®ç¨äºæ¥ç页é¢ç设å¤æ¥éæ©ä½¿ç¨åªäºé¡µé¢å¼å§åç»ææ è®°ã
ä¾å¦ï¼å¯¹äº Web æµè§å¨ï¼æ¥çå¨ä¼ååº
å¼å§æ è®°ï¼è对äºç§»å¨è®¾å¤ï¼åä¼ååº<html>
<wml>
å¼å§æ è®°ã
注æï¼ Â Â Â Java Reporting Component ä¸æ¯æçæç¨äºå¨ç§»å¨è®¾å¤ä¸æ¾ç¤ºçæ¥è¡¨ã
- å®è½å¤æ£ç¡®å°ä¸ºé¡µé¢è®¾ç½®å 容类ååå符éä¿¡æ¯ãè¿ç¡®ä¿äºå å«å½é å符ç页é¢è½æ£ç¡®æ¾ç¤ºã
- å®è½å¤èªå¨å¨æ¥çå¨ä¸å¯ç¨å¯¼åºåæå°æé®æ¯æã
å¦æ setOwnPage 为 falseï¼åéè¦æå¨è®¾ç½®å¨å´ç HTML æ 记以å content -t ype å charset æ令ãæ¤å¤ï¼å½ setOwnPage 为 false æ¶ï¼æå°å导åºåè½å°è¢«ç¦ç¨ã
ä½¿ç¨ processHttpRequest æ¹æ³
å½ setOwnPage 设置为 true æ¶ï¼æ¨å¿ é¡»ä½¿ç¨ processHttpRequest æ¹æ³ï¼èä¸æ¯ getHtmlContent æ¹æ³ï¼æ¥æ¾ç¤ºæ¥è¡¨ãä¹æä»¥å¿ é¡»ä½¿ç¨ processHttpRequest æ¹æ³ï¼åå æ¯ä½¿ç¨ getHtmlContent ä¸å° setOwnPage 设置为 false æ¶çææç¸åï¼ä»è没æäºå° setOwnPage 设置为 true æ¶çä»»ä½ä¼ç¹ã
3. ä½¿ç¨ setOwnForm æ¹æ³
å¦æ JSP 页é¢ä¸å å«ä»»ä½éè¦ååçæ§ä»¶ï¼ååºå° setOwnForm æ¹æ³è®¾ç½®ä¸º trueãè¿æ ·å使æ¥çå¨è½å¤èªå¨å¤çè§å¾ç¶æä¿¡æ¯ãè§å¾ç¶æç¨äºå¨å®¢æ·ç«¯ç¼åæå ³æ¥è¡¨å½åç¶æçä¿¡æ¯ãå¦æ页é¢ä¸æå ¶ä»æ§ä»¶ï¼æ¨å¿ é¡»ç¡®ä¿ setOwnForm 设置为 falseï¼å¹¶æå¨å¤çè§å¾ç¶æä¿¡æ¯ã
以ä¸ç¤ºä¾æ¾ç¤ºäºå¦ä½æå¨è®¾ç½®è§å¾ç¶æä¿¡æ¯ï¼
viewer.setOwnForm(false);
viewer.setViewState((String) session.getAttribute("viewState"));
viewer.processHttpRequest(request, response, getServletContext(), pageContext.getOut());
session.setAttribute("viewState", viewer.getViewState());
 注æï¼ Â Â Â setOwnForm å¿ é¡»è®¾ç½®ä¸º true æè½ä½¿åæ°æ示åæ¥ä½ç¨ã
4. æå®æ£ç¡®çå符é
è¦å°åç¬¦ä» JSP æ件åéå° Web æµè§å¨ï¼æ¨å¿ 须使ç¨æ£ç¡®çç¼ç ãå§ç»ä¸ºææ JSP 页é¢æå®æ£ç¡®çå 容类ååå符éã
å¦æ JSP 页é¢å°å 容è¿åå°æ å HTML æµè§å¨ï¼è¯·ç¡®ä¿å®ä¹äºæ£ç¡®çå符éï¼
<%@ page contentType="text/html; charset=utf -8 " %>
 contentType å charset æ令让æµè§å¨ç¥éæè¿å HTML 页é¢çç¼ç æ¹å¼ãUTF -8 æ¯æ¥çå¨å¿ éçå符éã
5. CrystalImageCleaner 示ä¾ä»£ç
为äºç¡®ä¿å®æå é¤æ¥çå¨ä½¿ç¨ç临æ¶æ件ï¼éè¦ä½¿ç¨ CrystalImageCleaner 对象ãéè¿å°æ£ç¡®é ç½®ç CrystalImageCleaner 对象添å å°ä½¿ç¨æ¥çå¨ç JSP 页é¢ï¼å¯å¸®å©æé« Web åºç¨ç¨åºçæ§è½ã
注æï¼ Â Â Â ä¸ºäºç¡®ä¿ CrystalImageCleaner 对象å¯ç¨ï¼JSP 页é¢ä¸å¿ é¡»æ以ä¸ä»£ç è¡ã
<%@ page import="com.crystaldecisions.report.web.viewer.CrystalImageCleaner" %>
ç¤ºä¾ 1
æ¬ç¤ºä¾æ¹æ³å建ä¸ä¸ª CrystalImageCleaner 对象ï¼è¯¥å¯¹è±¡æ¯åéæ«æå¾åæ件ä¸æ¬¡ï¼ä½åªå é¤é£äºè³å°å·²åå¨ 2 åéçæ件ãç±äºè¿äºè®¾ç½®çæä½³å¼é«åº¦åå³äºæ¥çå¨ç使ç¨ååºç¨ç¨åºç设计ç¹å¾ï¼å æ¤ï¼å¿ é¡»æ£ç¡®è°æ´è¿äºè®¾ç½®ï¼ä»¥ä¾¿ç¡®ä¿æ¨çåºç¨ç¨åºè·å¾æä½³æ§è½ã
<%!
public void jspInit(){
    CrystalImageCleaner.start(getServletContext(), 60000, 12000);
}
%>
ç¤ºä¾ 2
æ¬ç¤ºä¾æ¹æ³å¨ä»æå¡ä¸å é¤ JSP 页é¢åå³åæ¢ CrystalImageCleaner 对象ã
<%!
public void jspDestroy(){
CrystalImageCleaner.stop(getServletContext());
}
%>