Lotus Notes 和 Crystal Report 的整合應用
一、寫在前面
跟據 Seagate 網站上的說明,要將 Crystal Report 跟 Lotus Notes 整合, 必須要安裝 Crystal Report 7.x以上版本及 Lotus Domino Server 5.05 以上版本,條件是使用者端必須安裝 Native Driver(一些必須的 .DLL 檔案,但是 Seagate 網站已經不提供下載), 而且不 Support Web 介面,小弟因為時間不夠(平日還要上班),無法作全面性的測試,所以決定使用 Crystal Report 8.5 及 Crystal Enterprise 8.0。
二、系統需求
1. OS : Windows 2000 Server(Traditional Chinese)+ Service Pack 2
2. Domino Server : R5.010 Traditional Chinese
3. Crystal Report : Developer Edition Version 8.5(5 User)
三、安裝
找一台機器當 Report Server(小弟把 Crystal Report 跟 Domino Server 裝在同一台),將 Crystal Report 8.5 & Crystal Enterprise 8.0安裝在該機器上(安裝步驟在此不再贅述)。
安裝完成後請確定列事項:
(一)選擇「開始」→「程式集」→「Crystal Enterprise」→「Crystal Configuration Manager」,確定其中所有的 Service 全部都有啟動(如圖一及圖二所示)。
【圖一】
【圖二】
(二)確定 Domino Server 的 Http Service 已經啟動(如果你把 Crystal Report 跟 Domino Server 裝在同一台機器),Http Service 如何設定及啟動定請參考 Notes 5.0 管理說明。
四、建立報表
(一)選擇「開始」→「程式集」→「Crystal Report」,如圖三所示
【圖三】
(二)啟動後選擇「As a Blank Report」,並在「Choose an Expert」裡選擇一個報表樣式,一般選擇 Standard 樣式應該就可以了……..
【圖四】
(三)再來選擇報表的資料來源,請選擇「More Data Source」→「Lotus Domino」,如圖五(如果安裝的 7.x 的版本就找不到這個選項了)
【圖五】
(四)在你要選擇來源伺服器和資料庫之前,需要輸入使用者名稱和密碼(該帳號必須對該伺服器及資料庫有權限才行),如圖六
【圖六】
(五)待進入資料庫後,再來就是選擇要由視界(View)或是套表(Form)輸出資料,如圖七。
- 你可以不需要寫報表的「資料列選擇公式」,因為你可以透過 Notes 得「視界選擇公式」將要輸出至報表的資料集中到視界上,如 @Select @Date(@Created) = @Today,前面 這一段如果用報表的「資料列選擇公式」來寫可就沒這麼簡單了,如果資料透過視界輸出,基本上你只要將欄位在報表上擺好相對的位置,這張報表就差不多完成百分之八九十了。
- 因為在 Notes 視界的資料輸出格式全部都是字串格式(不論你原來的欄位是什麼型態),所以如果你的報表需要對某欄位作數學運算(如金額的加總),由視界輸出將沒辦法達到你要的需求。
- 在選擇由套表或視界輸出時會有幾個不同的地方,使用者不可不察。
選擇由視界輸出資料的方式:
選擇由套表輸出資料的方式:
剛好和選擇由視界輸出資料的方式相反,你必須很辛苦的自己寫報表的「資料列選擇公式」,但是有一點令人欣慰的事情,那就是你所有的欄位型態都很正常,你可以在報表上對各個欄位作各種類型的運算。
【圖七】
(六)選擇好輸出方式之後,就是將你要在報表上呈現的欄位依序拉到報表上的對應位置擺好,如圖八所示,當然你也可以插入一些 Crystal Report 專為報表所提供的特殊欄位,如:Page Number,Page N of M,Print Date……..(其它的進階使用請參考 Crystal Report 的 Help)等,如圖九所示
【圖八】
【圖九】
(七)決定好欄位位置之後,再來就是要寫報表的「資料列選擇公式」了,請選擇「Report」→「Selection Formula」,如圖十,Crystal Report 自己內建有「選擇公式編輯器」,如圖十、圖十一所示,它分成四個窗格,左方是「Report Fields」、中間是可用的「Functions」、右方是「O perator」、下方就是選擇公式的編輯視窗,基本操作方式就是由上面三個視窗中,將你要的欄位和條件判斷式拖拉至下面的編輯視窗中(資料列選擇公式的寫法請自行參考 Crystal Report 所提供的 Help)以組成選擇公式,另外,編輯器上還提供有驗證公式正確與否的功能ㄡ。
【圖十】
【圖十一】
(八)基本上當進行到這邊時,你的報表大概就已經完成的差不多了,只是有個地方要注意,那就是在「File」→「Save Data with Report」的選項,如圖十二所示,請不要勾選(Default 是打勾的),如果勾選它的話 Crystal Report 會將你這次查詢的資料一起儲存在報表中,這樣使用者就可以透過Seagate 另外提供的一個叫做 Crystal Report Offline Viewer(它是免費的)工具,以 Offline 的方式來檢視這份報表了,不需再連到資料來源的 Server 去了。
【圖十二】
(九)當報表設計完成之後就是Review 裡面的資料了,請選擇「File」→「Print Review」,如圖十三、圖十四所示,如果資料正確、報表所呈現的畫面你也滿意的話,這張報表就可以算是完成了,最後剩下的就是將報表放到 Report Server 上供大家存取的步驟了。對了……..最後不要忘記將辛苦設計好的報表存檔,不然不就作白工了!!
【圖十三】
【圖十四】
四、報表放至 Report Server
把報表放到Report Server 上這個工作很簡單,只要將報表放到你有安裝 Crystal Report 和 Crystal Enterprise那台伺服器上面去就好了,因為小弟將 Report Server 和 Domino Server 放在一起,所以就將報表檔放到 Domino Server 所指定的 HTML 路徑下,記得要將 Domino Server 的 Http Service Load 起來(相關的 Http Service 設定請慘考 Notes 5.0 管理說明),這樣就行了。
五、在 Notes AP 上開啟報表
這個步驟業很簡單,找一支 Notes AP,在裡面放一個按鈕、焦點資訊或是任何你高興的方式,只要在裡面以 Http 的方式去開啟那份報表就行了 ,如圖十五、圖十六所示,開啟時會有詢問 Username & Password 的視窗,如果不想看到那個詢問畫面,可以把參數帶在後面。
【圖十五】
【圖十六】
六、關於 Report Server 的 Connecting 數目
因為 Crystal Report 也是算 Connecting License 的,所以當你的 Connecting 數目超過購買時的授權數目時,就會出現下列的視窗,如圖十七、圖十八所示,這怎麼辦??第一個就是晚一點等有人下線之後再試,第二個就是花錢買額外的 License ㄌㄡ……..
【圖十七】
【圖十八】
七、寫在後面
(一)如果打算使用 Crystal Report 作為 Report 產生器,請考慮一點,就是它的 Connecting License 不便宜,一個 Connection要三萬塊錢,所以如果可以的話是否考慮使用 MS Excel 就可以了,因為相信各位的電腦(應該說使用者的電腦)裡面應該都有裝 MS Office 才是(反正都已經被微軟給坑一次了,不用白不用,除非你是公然跳戰微軟的強硬派)。
(二)以上圖片被小弟用噴槍處理掉的部分為公司目前仍在使用中的 ID,故必須作特殊處理,如果因此造成各位閱讀不便請見諒
(三)以上純粹是小弟自己的測試心得,如內容有錯誤或是用字遣詞有不當的地方,還望眾位高手不吝指正,謝謝。