在本文中將瞭解FastCube.Net庫中包含的組件,組件列表:
Cube——從文件加載多維數據集並用數據填充它的主要組件;
CubeGrid——用於顯示多維數據集的所有數據;
CubeGridToolbar——是CubeGrid的工具欄;
Slice——包含多維數據切片;
SliceGrid——用於顯示多維數據切片
SliceGridToolbar——Slice網格的工具欄;
Chart——基於切片數據;
ChartToolbar——圖表的工具欄;
DataSource——多維數據集的數據源。
DBDataSet——從數據庫中獲取的數據集;
DTDataSet——來自DataTable的數據集。
組件關係案例:
DataSource對象具有DataSet屬性,此屬性的值是對兩個對象(DBDataSet、DTDataSet)其中一個的引用。Cube對象具有DataSource屬性,CubeGrid和Slice與Cube對象相關。反過來,SliceGrid和Chart與Slice對象相關,該特性將幫助用戶建立組件的連接。接下來,來認識一下這些組件:
(1)Cube組件是整個FastCube的基礎,它加載多維數據集文件,並充當其他組件的數據提供者和數據方案提供者。下面是該組件的主要屬性和方法。
屬性:
屬性 | 描述 |
Active | 活動是Ture是False,確保在所有設置之後,必須將Active屬性設置爲true。否則,用戶將看不到任何數據。 |
Caption | 多維數據標題,在CubeGrid中可見。 |
CompressCubeFile | 是否使用多維數據文件壓縮 |
DataSource | 如果使用數據庫或DataTable中的數據填充多維數據集,則必須選擇數據源。 |
Description | 描述,可以在CubeGrid中看到 |
SkipFieldsWithErrors | 忽略有錯誤的字段 |
SourceType | 數據源的類型指示數據填充多維數據集的位置。可以採用以下值之一:
|
方法:
方法 | 描述 |
ClearGroups() | 清除分組。 |
Close() | 關閉多維數據。 |
GetFieldsCount() | 獲取多維數據集中的字段數。 |
GetSourceRecordsCount() | 獲取數據源中的記錄數。 |
GetSourceValue() | 獲取數據源的值。 |
GetSourceValueAsString() | 以字符串形式獲取數據源的值。 |
GetSourceValueId() | 獲取數據源值的ID。 |
GetSourceValueIdAndVariant() | 獲取數據源值的ID。 |
Load() | 加載多維數據、File或stream。 |
LoadGroups() | 加載分組 |
Open() | 打開多維數據。 |
Save() | 將多維數據集保存到文件。 |
SaveGroups() | 保存分組。 |
Dispose() | 銷燬多維對象。 |
SendAlert() | 向用戶發送提醒。 |
代碼中使用的示例:
FastReport.Olap.Cube.Cube cube = new FastReport.Olap.Cube.Cube(); cube.DataSource = dataSource1; cube.SourceType = FastReport.Olap.Cube.SourceType.DataSource; cube.Load("С:\\Program Files (x86)\\FastReports\\FastCube.Net Professional\\Demos\\Data\\Cubes\\2_0_sample_en1.mdc"); cube.Active = true;
如果用戶使用的是包含數據的多維數據集文件,則無需設置DataSource屬性。對於SourceType屬性,需要值FastReport.Olap.Cube.SourceType.File。
(2)CubeGrid組件是一個彙總表,其中填充了多維數據集中的數據。
屬性:
屬性 | 描述 |
Cube | 多維數據集對象。 |
DataZone | 用於在網格中顯示數據的設置。 |
方法:
方法 | 描述 |
Export | 將多維數據集導出爲以下格式之一:
|
CreateDataZone | 創建一個新的數據區域。 |
FullUpdate | 更新數據區和字幕區。 |
代碼中使用的示例:
CubeGrid cubeGrid = new CubeGrid(); cubeGrid.Dock = DockStyle.Fill; cubeGrid.Parent = tabPage2; cubeGrid.Cube = cube;
上面的示例演示如何從應用程序代碼創建cubeGrid,需要將創建的對象放在表單(Parent屬性)上,並設置位置(Dock屬性)。此外,用戶必須指定從中獲取數據的多維數據集。
(3)CubeGridToolbar組件是一個與cubeGrid組件一起使用的工具欄。
此工具欄僅提供一個元素——export(導出),下表顯示了可用的導出格式。
屬性:
屬性 | 描述 |
Grid | 網格爲其中的行爲工具欄。 |
ToolItems | 工具欄的元素列表。 |
代碼中使用的示例:
CubeGridToolbar cubeGridToolbar = new CubeGridToolbar (); cubeGridToolbar。Dock = DockStyle。頂部; cubeGridToolbar。Parent = tabPage2 ; cubeGridToolbar。Grid = cubeGrid ;
如果可以在“屬性”檢查器中配置Dock和Grid屬性,則只需在程序代碼中設置“Parent”。
(4)Slice組件包含多維數據集的切片,要加載切片,需要下載帶切片的文件。這可以是多維數據文件或計劃文件。
屬性:
屬性 | 描述 |
AutoUniqueValuesFilter | 過濾重複值。 |
Cube | 多維數據集對象。 |
FieldsOrder | 顯示字段的順序:ByIndex,ByName,ByCaption。 |
ColCount | 列數。 |
HideColZeros | 隱藏空列。 |
HideRowZeros | 隱藏空行。 |
HideTotalForSingleValue | 如果只有一個值,則隱藏總計。 |
MeasuresContainer | 包含度量的容器。 |
RowCount | 網格中的行數。 |
ScriptLanguage | 可以是CSharp或Vb。 |
ScriptText | 腳本代碼。 |
ScriptRestristions | 配置腳本限制。 |
SliceFields | 切片字段列表 |
XAxisContainer | 沿X軸放置的字段的容器。 |
YAxisContainer | 沿Y軸放置的字段的容器。 |
基本方法:
方法 | 描述 |
BeginUpdate | 啓用更新模式。 |
EndUpdate | 完成更新。 |
Clear | 清除切片數據和字段。 |
Save | 保存切片。保存多維數據集時,它會自動運行。 |
Load | 從文件或流加載切片。 |
Transpose | 轉置切片(更改軸)。 |
代碼中使用的示例:
FastReport.Olap.Slice.Slice slice1 = new FastReport.Olap.Slice.Slice(); slice1.Cube = cube;
(5)SliceGrid組件以交叉表的形式顯示切片,這是設計器的主要工具。允許用戶自定義字段佈局,添加新字段,排序,分組等。
屬性:
屬性 | 描述 |
DataZone | 用於在網格中顯示數據的設置。 |
XAxisZone | X軸顯示區域設置。 |
YAxisZone | Y軸顯示區域設置。 |
FilterFieldsZone | 過濾區域設置。 |
XFieldsZone | 在X軸上設置顯示尺寸的區域。 |
YFieldsZone | 在Y軸上設置顯示尺寸的區域。 |
FieldsZone | 字段列表區域設置。 |
方法:
方法 | 描述 |
Export() | 將報告導出爲以下格式之一的方法:
|
ShowFieldsEditor() | 使用切片的字段列表打開窗口。 |
代碼中使用的示例:
SliceGrid sliceGrid = new SliceGrid(); sliceGrid.Dock = DockStyle.Fill; sliceGrid.Parent = tabPage1; sliceGrid.Slice = slice1;
此示例顯示如何在應用程序代碼中創建sliceGrid對象。如果沒有這種需要,則可以在“屬性”檢查器中進行所有設置。
(6)SliceGridToolbar組件是SliceGrid的渲染工具欄:
該工具包如下:
(1) Save:
cube
scheme
(2) Open:
cube
additional cube
scheme
(3) Clear grid
(4) Export to:
HTML
DBF
CSV
XML
Open Document Spreadsheet
Excel
Excel 2007
(5) Transport - change the X and Y axes by places
(6) Hide row zeros
(7) Hide column zeros
(8) Row sort type:
Sort by value of the axis
Sort by measures totals
Sort by focused column
(9) Column sort type:
Sort by value of the axis
Sort by measures totals
Sort by focused row
(10) Edit measures——指標的設置。這包括設置條件數據突出顯示
(11) Display format——爲選定的列或行設置
(12) Field list——切片中可用的所有字段的列表
(13)公式編輯器本質上是編程語言C#或VB中的腳本編輯器
(14) Information——關於切片的信息
屬性:
屬性 | 描述 |
Grid | 網格爲其中的行爲工具欄 |
ToolItems | 工具欄項列表 |
使用此組件的一個重要特性是綁定到程序代碼中的父對象。也就是說,僅僅將組件“拖動”到表單上並設置其Grid屬性是不夠的。在程序代碼中必須設置Parent屬性以在窗體上顯示工具欄。例如,這可以是sliceGrid對象,或TabPage,Panel或其他合適的對象。
代碼中使用的示例:
FastReport.Olap.Controls.SliceGridToolbar toolbar = new FastReport.Olap.Controls.SliceGridToolbar(); toolbar.Grid = sliceGrid1; toolbar.Parent = sliceGrid1; toolbar.Dock = DockStyle.Top;
在本文的第二部分中,我們介紹其餘的對象:Chart,ChartToolbar,DataSource,DBDataSet,DTDataSet。