那棵在風中搖曳的狗尾巴草
posts - 84, comments - 54, trackbacks - 0, articles - 0
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
Web application 中使用Crystal Report(一)
Posted on 2007-04-11 23:26
馬達+斯加
閱讀(1755)
評論(8)
編輯
收藏
所屬分類:
Java Report
最近的項目中使用了Crystal Report作為報表工具,與Jasper Report不同,在報表的靈活性和開發速度上要勝出很多,一旦用上就不愿意換其他了。
在Web application中使用CR,主要可以通過兩種方案實施:
一種是將rpt文件嵌入application中,該方案實施簡單、快速,最重要的不受license限制,是普通項目開發的絕佳選擇。我們可以直接去Business Objects上面下載一個已經集成了CR開發插件的Eclipse,或者只下載插件也可以。利用該插件中的開發向導,可以非常容易的進行開發了。
生成HTML報表也是相當的簡單,我們可以通過CR提供的標簽庫生成:
<%
@ taglib uri
=
"
/WEB-INF/tld/crystal-tags-reportviewer.tld
"
prefix
=
"
crviewer
"
%>
<
crviewer:viewer
isOwnPage
="true"
displayGroupTree
="false"
printMode
="ActiveX"
allowDrillDown
="false"
hyperlinkTarget
="false"
displayToolbarViewList
="false"
displayToolbarFindButton
="false"
displayToolbarToggleTreeButton
="false"
displayToolbarCrystalLogo
="false"
reportSourceType
="reportingComponent"
viewerName
="CrystalReport1-viewer"
reportSourceVar
="CrystalReport1"
>
<
crviewer:report
reportName
="Test.rpt"
/>
</
crviewer:viewer
>
也可以通過自己寫代碼讀取report source,然后作為一個javabean供表現層使用:
/** */
/**
* Retrieve embedded report source by the specified report name.
*
*
@param
reportName
*
@return
*/
private
static
IReportSource getEmbeddedReport(String reportName)
{
IReportSource reportSource
=
null
;
String report
=
CRConstant.EMBEDDED_RPT_FOLDER
+
reportName
+
"
.rpt
"
;
ReportClientDocument reportClientDoc
=
new
ReportClientDocument();
try
{
reportClientDoc.open(report,
0
);
}
catch
(ReportSDKException e)
{
log.warn(
"
Cant get embedded report source
"
);
log.error(e.getMessage());
}
reportSource
=
reportClientDoc.getReportSource();
return
reportSource;
}
非標簽方式生成HTML報表
<%
@ page
language
=
"
java
"
contentType
=
"
text/html; charset=UTF-8
"
pageEncoding
=
"
UTF-8
"
%>
<%
@ page import
=
"
com.crystaldecisions.reports.reportengineinterface.*
"
%>
<%
@ page import
=
"
com.crystaldecisions.report.web.viewer.*
"
%>
<%
CrystalReportViewer viewer
=
(CrystalReportViewer)session.getAttribute(
"
crViewer
"
);
viewer.processHttpRequest(request, response, getServletConfig().getServletContext(),
null
);
%>
另外一種是集成Crystal Enterprise Server進行報表開發。所有的rpt都在server上,application 可以通過包括Enterprise account,LDAP,Windows NT(如果是Window服務器)等多種方式登陸Server讀取報表。該方案中rpt可以提供多個應用使用,并且方便管理及二次開發,但是license非常貴,因此,主要是應用在大型項目中。
其中最簡單的便是使用Enterprise Account方式登錄了:
/** */
/**
* Loging Crystal Enterprise server
*
*/
private
void
createEnterpriseSession()
throws
SDKException
{
String cms
=
CRConstant.CMS;
String userName
=
CRConstant.AUTH_USERNAME;
String password
=
CRConstant.AUTH_PASSWORD;
String authMode
=
CRConstant.AUTH_MODE;
try
{
ISessionMgr sessionMgr
=
CrystalEnterprise.getSessionMgr();
iEnterpriseSession
=
sessionMgr.logon(userName, password, cms, authMode);
log.info(
"
Got Enterprise session successfully
"
);
}
catch
(SDKException e)
{
log.warn(
"
Cant log on CMS:\nCMS:
"
+
cms
+
"
\nUserID:
"
+
userName
+
"
\nPassword:
"
+
password
+
"
\nAuthMode:
"
+
authMode);
throw
e;
}
}
但是,這里特別需要注意的是,CMS的值必須是Enterprise server的名稱,而不能使用IP地址。
在此方案中,可以使用一個iFrame直接將Server中生成的報表包含進來(CR enterprise portlet就是這樣干的)。
評論
#
re: Web application 中使用Crystal Report(一)[未登錄]
回復
更多評論
2007-05-04 17:57 by
我們走在JAVA的光明大道上
很好的經驗!謝謝分享
#
re: Web application 中使用Crystal Report(一)
回復
更多評論
2007-12-20 17:37 by
Alan.xiao
通過eclipse的插件打開一個用crystal reporst 10做的報表,提示要連接數據庫,因此通過它的數據庫資源管理器連接了sql server,結果發現只能看到數據庫中的表,存儲過程看不到,所以它把那張報表里面的數據按名字對應表里面去了,而實際上本應對應一個存儲過程的,所以顯示數據庫中沒有該表。請問您,這是怎么回事,該如何解決
#
re: Web application 中使用Crystal Report(一)
回復
更多評論
2007-12-20 17:48 by
回樓上
好久沒用了,記得好像cr里面只能看到table,view。碰到很復雜的報表,我們一般是建一個working table,很少用存儲過程。
另外想問一下,為什么存儲過程的名字會和table一樣呢?一般會避免這種情況才是。
#
re: Web application 中使用Crystal Report(一)
回復
更多評論
2007-12-20 17:50 by
Alan.xiao
如果以上描述您不是很理解,那我換個說法:
報表已經存在,我目前要做的是在jsp中生成,而這樣做需要輸入參數,輸入參數就需要“報表源”,得到報表源就需要“jdbc數據源”,而原來的的報表是通過DSN連接的數據庫,所以不得已重新配置,結果配好數據源后發現沒法讀取數據庫中的存儲過程。
(要是能截圖就好了)
#
re: Web application 中使用Crystal Report(一)
回復
更多評論
2007-12-20 17:52 by
Alan.xiao
只有存儲過程,沒有改名字的table,但因為那個插件讀不到存儲過程,就把那個當table了,而該table又不存在,所以就報錯啦
#
re: Web application 中使用Crystal Report(一)
回復
更多評論
2007-12-20 18:00 by
回樓上
沒有做過這種case,如果沒記錯的話,使用哪個數據源不是在rpt中定義的嗎?
#
re: Web application 中使用Crystal Report(一)
回復
更多評論
2007-12-20 18:05 by
Alan.xiao
是啊,是在rpt中定義的,但幫組文檔中有這樣一句話:
要使用 Java Reporting Component 創建報表源,必需指定要查看或導出的報表所在的位置。將使用相對或絕對路徑指定報表位置。而且,為使 Java Reporting Component 正確地為報表檢索數據,必須通過 JNDI 正確指定報表的數據源,或必須依據 JDBC 數據源設計報表。
#
re: Web application 中使用Crystal Report(一)
回復
更多評論
2007-12-20 18:08 by
回樓上
或者,你可以嘗試用JDBC數據源新建一個使用到stored proc的非常簡單的報表,看看在你的application里面能否正確運行。
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關文章:
2招解決Adobe PDF Form的緩存問題
Cognos ReportNet 的排序BUG
How to conditionally hide rows in Cognos report?
AIX上使用JasperReport碰到的問題
Web application 中使用Crystal Report(二)
Web application 中使用Crystal Report(一)
Powered by:
BlogJava
Copyright © 馬達+斯加
日歷
<
2007年4月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
常用鏈接
我的隨筆
我的評論
我的參與
最新評論
留言簿
(9)
給我留言
查看公開留言
查看私人留言
隨筆分類
ClearCase(1)
Database(1)
Display Tag library(1)
Java Report(6)
My life recorder(59)
Websphere Portal(10)
WSAD(4)
隨筆檔案
2010年3月 (1)
2009年11月 (2)
2009年7月 (1)
2009年5月 (3)
2009年4月 (1)
2009年3月 (2)
2009年2月 (2)
2008年12月 (5)
2008年10月 (2)
2008年8月 (1)
2008年6月 (2)
2008年5月 (3)
2008年3月 (1)
2008年1月 (2)
2007年12月 (1)
2007年10月 (3)
2007年9月 (7)
2007年8月 (5)
2007年7月 (4)
2007年6月 (5)
2007年5月 (6)
2007年4月 (8)
2007年3月 (13)
2007年2月 (2)
相冊
我的鏡頭
涂鴉
朋友
Panoramio Space
陳胖子的blog
搜索
最新評論
1.?re: 五一,香港,租房,心得
樓上看來不了解廣東啊,因為扒手多的關系,所以出門背包都要背在胸前。
--VIIV
2.?re: 五一,香港,租房,心得
終于可以把背包背在后面走路了,覺得特舒服
怎么個意思?O(∩_∩)O
--淺蘭色
3.?re: 五一,香港,租房,心得
評論內容較長,點擊標題查看
--小市民
4.?re: 從Websphere Portal5移植Web應用到Websphere Portal6時fmt:formatDate報錯的解決
謝謝啦 我正好遇到這個問題 都暈了
--Amber
5.?re: WPS 5.0 中一例"Unable to compile class for JSP"錯誤
謝謝,非常感謝
--胡浩瀾
閱讀排行榜
1.?美資軟件公司JAVA工程師電話面試題目(5839)
2.?五一,香港,租房,心得(2786)
3.?聲討《蘋果日報》——居然在同胞死傷無數時發表這樣的評論(2197)
4.?旺角紅燈區(1975)
5.?Web application 中使用Crystal Report(一)(1755)
評論排行榜
1.?聲討《蘋果日報》——居然在同胞死傷無數時發表這樣的評論(10)
2.?Web application 中使用Crystal Report(一)(8)
3.?五一,香港,租房,心得(4)
4.?赴港JAVA開發工程師的面試題目(3)
5.?決定了去HK(2)
主站蜘蛛池模板:
亚洲AV综合色区无码一二三区
|
成年女人色毛片免费看
|
亚洲色图国产精品
|
最近2019中文免费字幕在线观看
|
亚洲精品久久久www
|
永久免费无码日韩视频
|
亚洲人成色7777在线观看不卡
|
久久精品国产亚洲AV电影
|
a毛片免费播放全部完整
|
亚洲精品无码Av人在线观看国产
|
亚洲人成人77777在线播放
|
1000部拍拍拍18勿入免费视频软件
|
亚洲色欲色欲综合网站
|
57pao一国产成永久免费
|
亚洲精品第一综合99久久
|
日韩黄色免费观看
|
日韩毛片一区视频免费
|
国产亚洲一区二区精品
|
精品无码免费专区毛片
|
亚洲人成网站999久久久综合
|
免费观看午夜在线欧差毛片
|
一区二区三区免费高清视频
|
欧洲亚洲国产清在高
|
日本免费人成在线网站
|
亚洲s码欧洲m码吹潮
|
2048亚洲精品国产
|
18女人腿打开无遮掩免费
|
亚洲无码一区二区三区
|
国产精品亚洲玖玖玖在线观看
|
a级片免费在线播放
|
亚洲一区二区三区免费观看
|
四虎永久免费观看
|
久久久久免费精品国产小说
|
伊人久久五月丁香综合中文亚洲
|
亚洲国产精品自产在线播放
|
亚欧免费一级毛片
|
亚洲AV色欲色欲WWW
|
国产亚洲人成网站观看
|
日韩免费无砖专区2020狼
|
在线观看免费黄网站
|
久久亚洲国产最新网站
|