从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多维编辑器