如何製作一個簡單的FastCube.Net多維編輯器
從FastCube.Net檢視和編輯多維資料集和切片,首先需要建立一個特殊應用程式。由於FastCube.Net以庫和元件的形式出現,使用者可以輕鬆地將多維資料集編輯器嵌入到現有的WinForms應用程式中,或者專門建立一個單獨的編輯器。本文將介紹如何以兩種方式建立簡單的多維資料集和切片編輯器:使用控制元件或程式程式碼。
(1)檢視控制
建立Windows Form Application(Windows窗體應用程式)。新增一個帶有三個選項卡的tabControl元件:Slice,Cube和Chart。Slice上,顯示OLAP多維資料集的切片;Cube顯示 多維資料集中的資料;Chart顯示切片上的圖表。將libraries(庫)連線到專案:FastReport.Olap和FastReport.Bars。在工具箱中有一組FastCube控制元件:
將多維資料集控制元件拖到表單中,DataSource屬性中為多維資料集提供了4種類型的資料來源:DataSource-來自資料庫的資料;File-來自多維資料集檔案的資料;Stream-來自流的資料;Manual-手動填充,在示例中,使用包含資料File(檔案型別)的多維資料集檔案。從應用程式程式碼下載多維資料集檔案,例如:在OnLoad事件中:cube1.Load(“C:/ Program Files(x86)/FastReports/FastCube.Net Professional / Demos / Data / Cubes / 2_0_sample_en1.mdc”)。現在將Slice元件新增到表單中, 在屬性中,只需要選擇一個多維資料集:
顯示多維資料集和切片,在“Slice(切片)”選項卡上,放置SliceGrid控制元件。設定Slice屬性,選擇slice1的值。
將CubeGrid控制元件新增到Cube選項卡,在其Cube屬性中選擇cube1。
在第三個選項卡Chart(圖表),新增圖表控制元件:
在新增的控制元件的屬性中,找到Slice並選擇slice1的值。現在執行應用程式,將看到載入的多維資料集、切片和圖表,但無法載入另一個多維資料集或將更改儲存在當前的多維資料集中。需要為每個元件新增工具欄:SliceGrid,CubeGrid和Chart。為此,將以下元件從工具箱拖到窗體上:SliceGridToolbar,CubeGridToolbar,ChartToolbar。元件將顯示在表單下方:
在chartToolbar屬性中,找到Chart並選擇值chart1;對於cubeGridToolbar,將Grid屬性設定為cubeGrid1;在Grid欄位的sliceGridToolbar屬性中,選擇sliceGrid1。現在需要將這些工具欄繫結到相應的選項卡。在OnLoad表單的load事件中新增三行程式碼:sliceGridToolbar1.Parent = tabPage1;cubeGridToolbar1.Parent = tabPage2;chartToolbar1.Parent = tabPage3;現在執行應用程式:
SliceGridToolbar位於頂部,slice(切片)是來自多維資料集的指定維度和度量的資料樣本。
此處顯示多維資料集中的所有資料:
該圖基於切片的資料,還有工具欄。
(2)程式程式碼
用滑鼠新增到表單中的所有內容,都可以在應用程式程式碼中手動編寫。新增以下庫:FastReport.Olap,FastReport.Bars,System.Windows.Forms.DataVisualization;在窗體上,新增一個帶有三個選項卡的TabControl控制元件,開啟表單程式碼(在using部分,我們需要libraries):
using System; using System.Windows.Forms; using FastReport.Olap.Controls; using FastReport.Olap.Chart;
用於建立和配置元件的所有程式碼,例如:在類建構函式中:
public Form1() { InitializeComponent(); FastReport.Olap.Cube.Cube cube = new FastReport.Olap.Cube.Cube(); FastReport.Olap.Slice.Slice slice1 = new FastReport.Olap.Slice.Slice(); slice1.Cube = cube; SliceGrid sliceGrid = new SliceGrid(); sliceGrid.Dock = DockStyle.Fill; sliceGrid.Parent = tabPage1; sliceGrid.Slice = slice1; SliceGridToolbar sliceGridToolbar = new SliceGridToolbar(); sliceGridToolbar.Dock = DockStyle.Top; sliceGridToolbar.Parent = tabPage1; sliceGridToolbar.Grid = sliceGrid; CubeGrid cubeGrid = new CubeGrid(); cubeGrid.Dock = DockStyle.Fill; cubeGrid.Parent = tabPage2; cubeGrid.Cube = cube; CubeGridToolbar cubeGridToolbar = new CubeGridToolbar(); cubeGridToolbar.Dock = DockStyle.Top; cubeGridToolbar.Parent = tabPage2; cubeGridToolbar.Grid = cubeGrid; Chart chart = new Chart(); chart.Dock = DockStyle.Fill; chart.Parent = tabPage3; chart.Slice = slice1; ChartToolbar chartToolbar = new ChartToolbar(); chartToolbar.Dock = DockStyle.Top; chartToolbar.Parent = tabPage3; chartToolbar.Chart = chart; cube.Load("J:\\Program Files (x86)\\FastReports\\FastCube.Net Professional\\Demos\\Data\\Cubes\\2_0_sample_en1.mdc"); }
應用程式準備就緒,使用滑鼠拖放控制元件。以上所示兩種方法均可以建立一個簡單的FastCube.Net多維編輯器