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。