逐步解說:在本機處理模式中,搭配 ReportViewer Web 伺服器控制項使用商務物件資料來源
本逐步解說會示範如何在 Microsoft Visual Studio 2008 ASP.NET 應用程式中使用報表內的物件資料來源。如需有關商務物件和物件資料來源的詳細資訊,請參閱繫結至商務物件。
請執行下列步驟,將報表加入 Visual Studio ASP.NET 網站專案中。在這個範例中,您將在 Microsoft Visual C# 中建立應用程式。
建立新的 ASP.NET 網站專案
在 [檔案] 功能表中,指向 [新增],選取 [網站]。
在 [新網站] 對話方塊中,從 [語言] 下拉式清單選擇 Visual C#,再選擇 ASP.NET 網站範本。
在 [位置] 中,選擇 [HTTP],再輸入網站的 URL。預設值是 https://localhost/WebSite。按一下 [確定]。預設網頁會在程式碼檢視中開啟。
建立商務物件來做為資料來源使用。
在 [方案總管] 中選取專案網站 (以 http:// 開頭)。按一下滑鼠右鍵,選取 [加入新項目]。
在 [加入新項目] 對話方塊中,選擇 [類別],輸入 BusinessObjects.cs 做為檔案名稱,再按一下 [新增]。
當系統出現「您要將此類別放在 'App_Code' 資料夾嗎」的提示訊息時,請按一下 [是]。此時會將新檔案加入專案中,並在 Visual Studio 中自動開啟它。
利用下列程式碼來取代 BusinessObjects.cs 的預設程式碼:
using System; using System.Collections.Generic; // Define the Business Object "Product" with two public properties // of simple datatypes. public class Product { private string m_name; private int m_price; public Product(string name, int price) { m_name = name; m_price = price; } public string Name { get { return m_name; } } public int Price { get { return m_price; } } } // Define Business Object "Merchant" that provides a // GetProducts method that returns a collection of // Product objects. public class Merchant { private List<Product> m_products; public Merchant() { m_products = new List<Product>(); m_products.Add(new Product("Pen", 25)); m_products.Add(new Product("Pencil", 30)); m_products.Add(new Product("Notebook", 15)); } public List<Product> GetProducts() { return m_products; } }
請從 [建置] 功能表上,選取 [建置方案]。這會建立物件的組件,在您將報表加入專案之後,可讓商務物件 [產品] 出現在 [網站資料來源] 視窗中。
將報表加入專案中
請務必在 [方案總管] 中選取專案網站或專案項目。
以滑鼠右鍵按一下專案網站,選取 [加入新項目]。
在 [加入新項目] 對話方塊中,選取 [報表]。請輸入報表的名稱,再按一下 [新增]。此時會將報表加入專案中,並在 [報表設計工具] 中自動開啟它。此報表的預設名稱為 Report.rdlc。
檢查 [網站資料來源] 視窗
按一下 Report.rdlc 的 [設計] 索引標籤。在左窗格中,按一下 [網站資料來源] 索引標籤。如果看不到 [網站資料來源] 索引標籤,請從 [資料] 功能表選取 [顯示資料來源]。
確認 Product 物件和它的兩個公用屬性 Name 和 Price 會出現在 [網站資料來源] 視窗的階層中。
設計報表
在設計模式中開啟報表後,請開啟 [工具箱]。從 [工具箱] 將 [資料表] 控制項拖曳到報表內。此資料表控制項會在索引標籤式 [設計] 視窗中開啟。
從 [網站資料來源] 視窗,將 Name 欄位從 Product 資料來源拖曳到資料表中 Detail 資料列的第一個資料行。Detail 資料列是中間的資料列。請注意,當您指定 Detail 資料列時,Header 資料列會自動為您填入。
將 Price 欄位拖曳到第二個資料行的 detail 資料列上,好讓它在 Name 欄位旁邊。
(選擇性) 選取資料表的標頭資料列,其方式是按一下左邊資料表標頭圖示,並套用 [粗體] 字型樣式。
刪除未使用的資料行。按一下第三個資料行,然後按一下標頭列,再按 Delete 鍵。
若要在報表中加入標題,請開啟 [工具箱],並將 [文字方塊] 拖曳到報表上。將 [文字方塊] 放在資料表上方。輸入產品做為報表名稱。
(選擇性) 將字型大小和字型樣式套用到文字上,以凸顯標題。
將 ReportViewer 控制項加入網頁中
在設計檢視中選取預設網頁 (其方式是以滑鼠右鍵按一下 [方案總管] 中的 Default.aspx),然後選擇 [檢視表設計工具]。
開啟 [工具箱]。在 [工具箱] 中展開 [資料] 節點,並將 ReportViewer 圖示拖曳到網頁上。
選取 ReportViewer 控制項,再按一下右上角的三角形來開啟智慧標籤面板。按一下 [選擇報表] 下拉式清單,再選取您剛設計的報表。根據預設,此名稱為 c:\inetpub\wwwroot\WebSite\Report.rdlc。請注意,ObjectDataSource 控制項會緊接在 ReportViewer 控制項的下方出現,而且會自動設定為可擷取 DataTable 的內容 (透過資料表的 TableAdapter 元件而設定)。
執行應用程式
- 按 F5 鍵在偵錯模式下執行,或是按 CTRL + F5 在非偵錯模式下執行,並檢視報表。
另請參閱
參考
Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing