2010年8月15日 星期日

Crystal Report 基本使用

最近小弟在研究 Crystal Report 的用法,並且做了很多報表,一開始覺得用這個很麻煩,因為使用的項目還蠻多的,且版面要自己設計。但其實用熟了,就沒甚麼差了,所以在此分享 Crystal Report 的使用心得,當作是教學範例。我會從建置網頁、資料集新增與設定、Crystal Report 新增與設定到最後匯入資料的逐步順序說起,無非是因為給第一次使用 Crystal Report 的人也能照著下列步驟做起,重點是要玩出心得,這就不枉我寫這篇網誌了。

環境: windows 7、vs 2008

有問題請一定要發問!如果圖片太小,可再點擊進去看大圖。

1.

在左上角新增一個空白網站(如圖一),或者開啟已有網站。
圖一

2.

開啟或新增網站後,在工具列上會找到「報告」的分類,而現在所要用到的控制項,就是圖中(如圖二)所指的控制項,名稱為「CrystalReportViewer」。
圖二

3.

將此控制項拖曳到網頁(*.aspx)程式碼內,如圖(如圖三),並命名此控制項之 ID 為 CrystalReportViewer1。
圖三

4.

接著在方案總管的空白處按右鍵,選擇「加入新項目」,會跳出視窗(如圖四),選擇「資料集」,命名後按下加入。
圖四

5.

在這之前,要先確定資料表名稱以及欄位名稱,因為是初步教學,所以我隨手建立一個資料表,內容也是亂打的(如圖五)。
圖五

6.

延續第三步驟,加入資料集後,對隨處對中間空白區域點擊右鍵,選擇加入,再選擇「TableAdapter」(如圖六)。接下來會跳出幾個基本設定視窗(如圖七、圖八、圖九、圖十、圖十一),比較注意的是圖九中的設定,因為它是決定報表連接的欄位,而不是資料的內容,所以在這裡的設定要小心,其中圓圈 1 的區塊是下達查詢語法,圓圈 2 的按鈕是可以讓你嘗試查詢語法是否正確,下達正確後再傳到圓圈 1 的區塊。
圖六
圖七
圖八
圖九
圖十
圖十一

7.

設定完成後,會出現如圖(如圖十二)所示。
圖十二

8.

接著在方案總管的空白處按右鍵,選擇「加入新項目」,會跳出視窗(如圖十三),選擇「Crystal Report」,命名後按下加入。
圖十三

9.

加入後,會跳出一視窗,有三種報表格式,「使用報表精靈」、「使用空白報表」、「從現存報表」,在這裡,要使用「空白報表」(如圖十四),因為「報表精靈」格式很固定且設定又多,所以我不喜歡用。
圖十四

10.

設定完成報表格式,在「欄位總管」中對「資料庫欄位」點擊右鍵選擇「資料庫專家」(如圖十五)。
圖十五

11.

此步驟是設定報表的欄位,也是要小心謹慎點,照圖(如圖十六)的 1 處為選擇「目前的連接」資料集,點擊 2 處,即可將資料加入 3 處,之後按下確定。
圖十六

12.

回到「欄位總管」中,就會發現多了一個資料表,並且有資料表中的欄位(如圖十七)。
圖十七

13.

在 Crystal Report 的工具箱,有三個不同的控制項,「Text Object」可以在報表加上固定的文字、「Line Object」可以在報表加上線條、「Box Object」可以在報表加上框線(如圖十八)。
圖十八

14.

開始設計報表格式,可以將欄位總管的資料庫欄位拉進報表,報表分五區,「報表首」為報表前出現此區塊內容、「頁首」為每頁首前出現此區塊內容、「細目」為資料表的內容、「報表尾」為報表後出現此區塊內容、「頁尾」為每頁後出現此區塊內容(如圖十九)。以下只是隨手設計,如有雷同,那就雷同。
圖十九

15.

最後在(*.cs)檔案寫程式匯入資料內容,此處也需要特別注意欄位的對應(如圖二十)。
圖二十

16.

最後,執行此網站,就可以看到如圖(如圖二十一)所示,可以看到區域的對應,也就是說,可以利用這些區域來配置更漂亮的報表。
圖二十一

9 則留言:

Unknown 提到...

我想詢問,我的crystal report的圖庫,並沒有自動彈出,該從哪裡尋找

David Kuo 提到...

您好,可以再敘述詳細一點嗎?

Unknown 提到...

加入Crystal Report之後,會自動彈出一個視窗,就是圖十四,可是我的並沒有自動彈出,那我該怎麼開啟???

Unknown 提到...

不好意思,我想請問是否方便給我你的msn或是即時通,我就讀資管系,因為最近在做畢業專題,crystal reports 我是第一次碰,發現好多問題,可是在圖書館借的書,並沒有解決我的問題,如果不方便也沒關係,我可以直接在這裡詢問您,只是不知道會不會造成您的不方便,如果可以的話,這是我的即時通 mandy85097@yahoo.com.tw

提到...

不好意思,我是crystal report的新手,想請問一下一個問題。就是欄位的farmat field,在 text interpretatopm 當我設定為none,網頁開啟報表是正常的繁體中文,可是當我為設定為 html text時,就會變成亂碼??我上google找了很久,找不到答案,所以想請教你是不是還要設定什麼??

David Kuo 提到...

抱歉,由於最近服役,所以晚回應了你的問題,我不太懂你的意思,如果很急的話,我想是不是可以加入我的msn ( boxmagic@hotmail.com ) 討論一下。

Airfox 提到...

您好!
近來有在使用Crystal report!但是因為坊間很少這類的書籍!
想問一下如果有設Detail如何設定條件列印!

Airfox 提到...

您好!
想請問一下!
在CR中若有設定Details!在這Detail中如何下列印條件!

TKS!

Airfox 提到...

您好!
想請問一下!
在CR中若有設定Details!在這Detail中如何下列印條件!

TKS!