那棵在風中搖曳的狗尾巴草
posts - 84, comments - 54, trackbacks - 0, articles - 0
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
Web application 中使用Crystal Report(一)
Posted on 2007-04-11 23:26
馬達+斯加
閱讀(1765)
評論(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工程師電話面試題目(5846)
2.?五一,香港,租房,心得(2793)
3.?聲討《蘋果日報》——居然在同胞死傷無數時發表這樣的評論(2226)
4.?旺角紅燈區(1982)
5.?Web application 中使用Crystal Report(一)(1765)
評論排行榜
1.?聲討《蘋果日報》——居然在同胞死傷無數時發表這樣的評論(10)
2.?Web application 中使用Crystal Report(一)(8)
3.?五一,香港,租房,心得(4)
4.?赴港JAVA開發工程師的面試題目(3)
5.?決定了去HK(2)
主站蜘蛛池模板:
亚洲a在线视频视频
|
亚洲精品乱码久久久久久不卡
|
亚洲无码在线播放
|
亚洲一级片免费看
|
亚洲精品无码久久毛片
|
永久免费观看黄网站
|
亚洲精品尤物yw在线影院
|
久久久WWW成人免费精品
|
伊人亚洲综合青草青草久热
|
caoporn成人免费公开
|
亚洲女初尝黑人巨高清
|
久99久精品免费视频热77
|
久久亚洲精品成人AV
|
国产1000部成人免费视频
|
亚洲自偷自偷在线成人网站传媒
|
成人黄18免费视频
|
最新亚洲人成网站在线观看
|
亚洲女人被黑人巨大进入
|
国产在线观看免费av站
|
亚洲一区二区中文
|
黄页网站免费观看
|
免费播放美女一级毛片
|
永久亚洲成a人片777777
|
无码精品一区二区三区免费视频
|
亚洲人成网站18禁止一区
|
久久毛片免费看一区二区三区
|
亚洲成AV人片在线观看无码
|
av无码免费一区二区三区
|
国产精品亚洲AV三区
|
亚洲精品国精品久久99热一
|
国产91色综合久久免费分享
|
鲁死你资源站亚洲av
|
亚洲人成网77777色在线播放
|
18女人水真多免费高清毛片
|
亚洲成a∨人片在无码2023
|
亚洲午夜日韩高清一区
|
99久久久精品免费观看国产
|
美女被免费视频网站
|
久久亚洲精精品中文字幕
|
国产性生交xxxxx免费
|
亚洲成人免费在线
|