簡化開發人員的報表設計與維護負擔,豐富企業商業應用價值
報表設計與開發支援
報表是用來報告工作情形的表格,能夠讓企業了解生產、製造、銷售、倉儲等各種企業營運狀態,並藉以修正或推訂未來的目標。Crystal Reports是目前報表開發軟體中最為人所熟知的,已經全面支援Unicode的多國語言顯示,同時使用者不需要特別精通各個專屬開發平臺,如Java、.NET的程式語言,就可以直接與資料庫連接,利用實際的資料表格和欄位,設計報表的格式;存成報表檔後,在Crystal Reports支援的程式語言與開發工具裡,就能夠彼此共享報表檔,即使使用不同的開發環境,報表檔案一樣能夠使用,不需要重複製作。
報表建立精靈提供標準設計、交叉分析表(Cross-Tab)、郵件標籤與OLAP等四種報表開發類型,一般最常使用標準設計,精靈會導引使用者連接資料庫,以進行資料的群組化(Grouping)、彙總、排序準則(Sorting Criteria)等欄位的控制。
欄位是報表設計的關鍵,報表從資料源直接取得欄位資訊,使用者用拖拉方式就可以安置報表欄位,不需要逐一選擇報表欄位的關聯屬性。欄位瀏覽器(Field Explorer)將各種形態的欄位,獨立成單一的浮動銜接(Dockable)視窗集中管理,使用者只需要專注在維護資料欄位這工作;而特殊欄位可以管理報表專用的欄位顯示,如資料修改的時間、頁碼與分群名稱。
Crystal Reports 9 Advanced Edition完整支援Java、.NET和COM的SDK與程式開發,除了ODBC、OLEDB與ADO.NET外,支援Oracle、DB2、Sybase、Informix、XML等資料來源連結能力,以及目前最受關注的線上分析處理(Online Analytical Processing;OLAP)和多維資料(Multi-Dimensional Data)的資料儲存與分析格式;資料檢視新增布林檢索與建立專用(Ad hoc)報表的能力,同時網頁報表格式能夠在WML手機、RIM或iPAQ等行動設備檢視。
Crystal Reports在Java上的開發,主要是藉助Crystal Decisions本身的報表應用伺服器(Reports Application Server)和Crystal Reports本身提供的Java SDK,再應用在Java Server Pages(JSP)、Servlets和Enterprise Java Beans(EJBs),支援IBM WebSphere Application Server和BEA WegLogic Server。
整合在微軟的Visual Studio .NET的Crystal Reports for Visual Studio .NET是客製化後的版本,功能還不夠完整;而Borland C# Builder使用者,則須購買Crystal Reports for Borland C# Builder來強化報表設計的功能。
至於COM,Crystal Reports提供Report Designer Component(RDC)給Microsoft Visual Studio和其他的以COM為基礎的開發環境使用,如Visual Basic、ASP和Delphi,能夠跨越網站與微軟視窗應用程式的差異,控制報表外觀。報表功能的強化
報表的特殊處理
大型系統開發所需要的報表數量與重複性高,Crystal Reports提供中央貯存庫(Crystal Repository)的架構,用Access資料庫檔案儲存與管理主要的報表物件,便於重複使用與快速開發,可以儲存包括文字物件、點陣圖(Bitmaps)、自定函數和SQL查詢指令等報表物件類型。使用者如果善於利用中央貯存庫,只需要單點維護少數的報表物件,所有報表如果配合引用可重複使用的物件,就能持續維持更新狀態。
傳統報表輸出多用在列印,Crystal Reports提供更豐富的檔案輸出能力,包括傳真Lotus Domino、Microsoft Exchange資料夾或MAPI通訊協定的電子郵件寄送;報表匯出轉換能力支援16種常見的檔案格式,如Word、Excel 97-2000、PDF、CSV、RTF、HTML與XML。圖表類型提供,新增甘特圖(Gantt Chart)和儀表板圖(Gauge Chart)。
Crystal Reports和Crystal Enterprise一起搭配,能夠提升報表檔案成為網頁報表,在網站上使用者即可存取。Crystal Reports發展出報表零件(Reports Parts),與微軟數位儀表板的網頁零件(Web Parts)類似,使用者透過入口網站和無線裝置,就能夠存取主要的報表。微軟用Web Services建構網頁零件,報表零件則是單純使用超連結加以變化,透過Reports Part Viewer裡面的DHTML Viewer,連結原始報表物件與目標報表物件。超連結利用連結路徑上的每一個控制點,以限制報表呈現使用者需要的特定資訊。報表零件還可以讓網頁報表用超連結的方式,模擬資料向下鑽研(Drilldown),使用者點選報表上每一筆靜態資料同時,超連結會展開實際細節資料。
另一種報表連結的方式,是透過支援微軟Office XP的智慧標籤(Smart Tags)來應用:當複製/貼上報表的圖表、文字或欄位物件時,使用者在選擇智慧標籤後,可以從Office文件連接到入口網站內的主要報表,檢視細節資料。
一般報表軟體都能夠提供基本的報表畫面設計的拖拉物件操作,但是控制資料源細部的互動,往往還是得靠開發人員自己的巧思,以補足報表軟體功能不足。Crystal Reports提供欄位為基礎的報表開發環境,而且由於主動掌握公式的撰寫標準,本身提供的公式語法也容易上手,開發人員可以獨立處理報表檔案,不需要把報表程式碼再統整到應用程式內,降低程式碼維護與管理的負擔。因為Crystal Reports持續支援各大主流開發平臺,開發人員可以安心設計能不斷循環使用的報表。
公式管理:為了因應一部分資料欄位與資料內容,並不實際存在資料庫內,例如統計一天之內的訂單處理數量,或是在訂貨日期與出貨日期區間的資料統計,都是經過資料庫的即時運算產生的結果。使用者固然能使用SQL指令來產生這些資料,然而Crystal Reports教導使用者透過建立公式(Formula)以產生需要的資料,使用者可以使用Crystal自定的語法或Basic的語法撰寫需要的公式;建立自定的函數時,存放在中央貯存庫就能重複使用;公式工作坊(Formula Workshop)強化公式編輯器的功能,效法Delphi的整合開發環境,利用熱鍵啟用保留字自動完成功能;新的執行歷程堆疊(call stack)可以追蹤估計時間錯誤(evaluation time errors),而公式專家(Formula Expert)也會讓使用者利用既有的函數作為範本對照,以撰寫需要的程式碼。
參數(Parameter)處理:參數會影響報表呈現的結果。為了增加彈性與互動性,報表設計與應用程式間會互相傳遞參數值。應用程式前端有時會要求使用者輸入查詢值,以這些輸入值當作參數或查詢條件,再由應用程式包裝後傳遞到資料庫處理後,回傳至前端介面。除非像Delphi本身就具有SQL語法的參數轉換的能力,否則一般狀況下多數的開發環境,都必須個別處理參數欄位。Crystal Report已經可以處理字串、幣值、日期時間、數字、布林值等形態的參數,並且能夠用在子報表(Subreports)上。參數欄位也都涵蓋到部分特殊處理,像單一參數涵蓋多筆值,或利用編輯遮罩(Edit Mask)處理參數的格式等情況。
報表警示:瀏覽報表時,除了各種有明確的數據和圖表輔助,報表警示(Report Alerts)利用公式來評估各種可能出現的報表狀態,增加報表可讀性。當報表資料符合公式裡預設的狀態時,尤其是重要的決策資訊,如銷售數字低於標準時,會啟動警示,並顯示預先設計好的字串或是顯示特定的報表欄位數值,提示報表使用者。
子報表:報表鑽研或逐層分析的基礎是彼此資料的關聯,但是不相關的報表間也有結合在一張報表的需求,這種「報表裡面的報表」,稱為子報表,不同報表聯合在單一報表上,使用者視需求在子報表內建立內含報表物件間的關聯性,甚至可以展現單一報表、同樣資料的不同檢視畫面。子報表的限制是裡面只能存放報表物件,不能再放其他的子報表。
Crystal Reports 9使報表設計、呈現、傳遞單純化而且一貫化,商業邏輯轉換成獨立公式,便於重複使用;報表應用伺服器運用伺服器端報表服務,把動態的報表內容整合到企業Web應用程式,降低報表開發負擔,也提升報表本身的IT價值,讓更多人能在企業入口網站上直接存取報表資源。文⊙李宗翰
熱門新聞
2025-12-23
2025-12-22
2025-12-24
2025-12-19
2025-12-23
2025-12-23
2025-12-22