TDecisionCube維護它提供給TDectisionSource對象的交叉制表的數據。
TCecisioncube對象加到一個窗體或數據模塊,可以允許應用程序表示交叉制表的數據, TDecisionCube將來自源數據集的數據分解成每一維相當於被概括信息的數據集的一個字段的多維結構。任何數據集都可以用作TDecisioncube對象的源,但對TDecisionQuery工作將更容易。
通常,總計值為決策立主圖表的源的數據集計算。然而作為代替,平均值可以被Decision Cube內部計算,內部計算的平均值有一個優勢,他們可以被Decision網格一正確地數據透視、部分總計、訓練,該網格顯示來自Decision Cube 的數據。
TDecisioncube引進了允許交叉制表的數據存儲以提供數據給TDecisionsource對象的屬性和方法。Decision網格和Decision圖表不直接從決策立主圖表檢索數據。它們使用說明來自TDecisionCube對象的維數配置的TDecisionSource對象。
屬性列表
Active 指明決策立主圖表是否可以提供數據
DesignState 在設計期間確定有多少數據由決策立主圖表顯示
方法列表
~TDecisionCube 刪除一個TDecisionCube 實例
GetDetailSQL 生成數據描述子集的SQL語句
GetSQL 生成數據描述子集的SQL語句
ShowCubeDialog 顯示Decision Cube編輯器
TDecisioncube 創建一個TDecisionCube實例
屬性
TDecisionCube::Active
指明決策立主圖表是否可以提供數據。
__property bool Active={read=CubeGetActive,write=CubeSetActive, nodefault};
讀Active可以確定決策立主圖表是否准備提供數據給決策控件。設置Active 為TRue可以引起決策立主圖表去獲得和分解來自DataSet屬性指定數據集的數據。當Active為GAlse時,決策立生圖表被子關閉,且決策源不能從決策立主圖表讀數據。當Active為True時,可以從決策立主圖表讀數據。
Acitve屬性不能被設置為True ,除非由DataSet屬性指定的數據集已經激活。
TDecisionCube::DesignState
在設計期間確定有多少數據由決策立主圖表顯示。
enum TCubeDataState {dsNodata,dsMetatea,dsDimensionData,daAlldaata};
__property TCubeDataState DesignState = {read= FDesignState, write=SetdesignState,nodefault};
在設計期間設置DesignState可以限制當決策立主圖表是激活時被提供的信息量。建立緩存可以加快時間,加強內存。限制決策立主圖表所能提供的信息在決策立主圖表有好多維或維數有好多值時可以改變設計時間。DesignState可以是一列值之一:
值 說明
dsNoData 決策立主圖表不能在設計期間被激活
dsMstaData 決策立主圖表提供維數說明,但沒有維數的值的列表,也沒有總計值
dsDimensionData 決策立主圖表提供維數說明,和維數字段的值,但沒有總計值
dsAllData 決策立主圖表提供所有可以的數據;維數說明,維數據字段的值,總計值
在設計期間使用Decision Cube編輯器可以改變DesignState的Value.
方法
TDecisionCube::~TDecisionCube
刪除一個TDecisionCube實例。
__fastcall virtual ~TDecisionCube(void);
不要直接調用Destroy,而應調用Free,Faee驗證是否決策立主圖表的內存已經被釋放,然後再調用Destroy.
TDecisionCabe::GetDetailSQL
返回一個被用來在決策立主圖表中生成數據的描述子集的SQL語句。
System::AnsiString__fastcall GetDetallSQL ( Mxarrays::TSmallIntArray* ValueArray,System::AnsiSring SelectList,bool bActive);
使用由GetSQL返回的SQL語句可以看使決策立主圖表中的信息的子集生成的數據。由此生成的查詢產生的一個包括由ValueArray參數描述的投影圖的數據集。當前數據集的所有概要都被包括在由此生成的查詢中。
查詢並不包括任何總計值或分組,必須由決策立主圖表的數據集加入 。ValueArray參數中的每一條目與決策立主圖表的維數相應,第一個條目與第二個維數相對應,以此類推。若在值數組中的一個條目的值小於0,在那個維數的所有字段值被包括在新的數據集中,若在值數組中的一個條目的值等於0或大於0,它被翻譯成該維數字段值的索引。ValueArray指定一個字段值時,SQL語句限制數據集為與初始數據庫表的相應字段值相匹配的記錄。因此,ValueArray說明帶一套已訓練維數的維數數組。
bActive指出是否ValueArray參數包括不激活的維數。當bActive為True時僅激活的維數被包括。若要進一步數據集以使它僅包括決策立主圖表的維數的子集,使用GetDetailSQL方法。
TDecisionCube::ShowCubeDialog
顯示Decision Cube編輯器。
void__fastcall ShowCubeDialog(void);
調用ShowCubeDialog可以允許用戶使用Decision Cube編輯器改變數據立主圖表的激活維數。 ShiwCubeDialog生成與在設計期間,通過決策立主圖表組件的彈出菜單選中Decision Cube編輯器時出現的對話框一樣的對話框。
Decision Cube編輯器允許用戶使維數激活或不激活, 並且改變維數的名稱。它也控制著在設計期間在決策控件上顯示多少信息。
TDecisionCube::TDecisionCube
創建一個TDecisionCube實例。
__fastcall virtual TDecisionCube(Classes::TComponent* AOwner);
利用new間接調用TDecisionCube,可以在運行期間創建一個決策立主圖表的實例。對於在設計期間放在窗體上的決策立主圖表,TDecisionCube被自動調用。
TDecisionCube為決策立主圖表和它的助手對象分配內存並初始化Active屬性為False,DesignState屬性為dsAllData。