Oracle報表創建、修改及其功能介紹
Oracle報表具有一些很強的特性,可以容易地瀏覽數據,但是需要對表單做一些額外的工作。尤其是,報表擅長于顯示小計——甚至是在多層次上。即使組織機構選擇在線瀏覽數據,但報表仍是創建數據的細節及合計數據的有用工具。
一、創建和修改Oracle報表
1.報表開發器介紹
報表的原來目的是創建數據的打印清單,給決策人提供信息。現在,決策人更喜歡在一個網站上直接處理數據,而完全不用打印紙。在許多情況下,你可以使用表單為決策人檢索數據提供一個互動環境。Oracle Developer Suite包括了一個報表開發器工具,并帶有幫助你建立基本報表的向導。
2.Oracle報表的類型
在試圖建立報表前,需要了解報表使用的主要布局。主要的報表類型有表格式報表(tabular report)或簡單列表、控制中斷或分組報表(group report)、矩陣式報表(matrix report)或交叉表、郵件標簽(mailing label)。圖10-1示出一個表格式報表的例子。表格式報表是數據的簡單列表,如果表中包含數值數據,則底部通常有小計。這種報表易于創建和閱讀。但是,對于體面一點的在線訪問,這種報表不特別有用。幾年前,經理們需要打印出巨長的數據清單放在手邊做參考。現在簡單到只要發布一個查詢,就可獲得所需的數據或合計的簡短列表。但是,你仍需要能制作這些報表。僅記住,它們應該一直被排列好。
3.建立和修改Oracle報表
Oracle提供了一個報表向導,可幫助你創建大多數常見的報表。總的來說,它做了一件好事;但是你仍不得不修改報表并多次整理它,直到它們更專業化為止。首先面對的挑戰之一是避免在一行上放置一切內容。如果你試圖將太多的內容填入一個頁面,則報表向導會有麻煩。首先試著縮小字體,將更多的數據壓縮進報表中。但報表幾乎不工作,你必須返回來手工修改它。最好打住,讓向導先用盡可能少的項建立報表。如果你后來想要增加更多的項,可以一個一個地加入,同時檢查添加是否恰當。
二、增強Oracle報表的功能
前面,我們已經對向導創建的基本報表做過一些變動。但是,有些報表需要做的工作比這要多的多。尤其是矩陣式報表,它難以建立模板,因此通常需要更多的功能增強。主要問題是標準模板是為帶有縱向(portrait)布局的報表設計的,并且只顯示有限數量的列。而矩陣式報表有多個列并可延伸到多個頁面。為了說明此過程,你將使用向導創建一個矩陣式報表,按月份和按代理對銷售額求和。
為了使查詢更簡單,報表將計算要價的合計——它不是最終的銷售價。如果你想要的是最終銷售價,可以編寫一個查詢從CustAgentList表中提取最后的BidPrice,并通過聯結ListID,將該查詢添加到報表中。但是,本章主要關心的是報表編寫器,而上述查詢則稍有些復雜,且令人分心。因此,使用AskingPrice來簡化此問題,以便你只啟動向導:
(1) 啟動Report Builder并使用向導創建題為Sales by Month and Agent的矩陣式報表。只選擇簡單的Matrix報表。你不需要給該報表添加分組。矩陣組為每個組創建不同的矩陣;該Oracle報表只需要一個矩陣。
(2) 從Agents、Listings和SaleStatus表中創建一個查詢。設置條件為已售房產的清單(即,SaleStatus.SaleStatus = 'Sold')。按代理的姓和名排序。小心選擇并提取:LastName、FirstName和AskingPrice。
現在進入棘手部分。經理想要該報表按月份顯示合計,月份顯示在報表頂部代理顯示在左下角。Listing表包括兩個日期。為了簡單起見,可以使用EndListDate。(如果你花時間建立查詢來獲得實際的銷售價,還會獲得實際的銷售日期,不過在這里并不是關鍵)。問題是該日期是一個實際的日子,而你需要的只是月份。答案是創建一個新列,使用TO_CHAR(date, 'MM')函數將該日期轉換為相應的月份。
(3) 建立該查詢時有一個Define Column按鈕,你可以使用它添加一個新列。但是它不能實際保存該列的描述,因此,簡單直接地編輯SQL并用SaleMonth別名添加該列通常更容易。
(4) 為了定義矩陣,你必須告訴向導在行、列和矩陣單元中顯示的字段。首先,選擇行的字段。如本例的圖10-13所示,選取LastName和FirstName字段。因為該報表不使用組,所以這兩個字段都屬于Level 1。
(5) 同樣,選擇新的SaleMonth字段作為列。在下一個向導屏上,選擇AskingPrice列并單擊Sum按鈕,告訴Reports Builder計算每個銷售代理每月的要價總和。類似地,在合計屏上,選取SumAskingPrice并計算其Sum獲得行和列的合計。
(6) 在標簽屏中,通過增加空間并設置為大寫字母,整理標簽。但是,你需要使列變窄,以便設置Month標簽,而不是Sale Month。默認的寬度眼下應該比較窄。在模板屏上,必須選擇No template選項。
出矩陣式報表的初始Paper Design視圖。盡管它包含了所有希望的數據,但稍微簡單了些并有點難以閱讀。注意,該報表很稀疏,因為在該時間周期內只有8次銷售活動。如果你想看到有更多數據的Oracle報表,可以改變查詢條件,將Sold改為For Sale,但眼下我們還是使用這個小報表。
為了使報表看上去類似于分組報表,應該在左上角添加徽標。像以前那樣,使用Insert|Image菜單選項并調整徽標的尺寸。
【編輯推薦】