TDecisionCube的DataSet属性为TClientDataSet时无法检测维数与统计值???(100分)

  • 主题发起人 主题发起人 Lilin
  • 开始时间 开始时间
L

Lilin

Unregistered / Unconfirmed
GUEST, unregistred user!
照HELP上所说,如果TDecisionCube的DataSet属性不为TQuery或TDecisionQuery,则必须
明确指出维数与统计值。在设计时,可以通过TDecision Cube Editor来设定,没什么问题。
但是用户要求在运行时生成SQL语句再生成图表,这时就有问题了,代码如下:
ClientDataSet1.Close;
ClientDataSet1.Open;
DecisionCube1.DimensionMap.Items[0].DimensionType := dimDimension;
DecisionCube1.DimensionMap.Items[1].DimensionType := dimSum;
报错说是无法检测维数与统计值,说什么要用TDecision Cube Editor来设定。
又胡乱把代码改成
try
ClientDataSet1.Close;
ClientDataSet1.Open;
finally
DecisionCube1.DimensionMap.Items[0].DimensionType := dimDimension;
DecisionCube1.DimensionMap.Items[1].DimensionType := dimSum;
end;
第一次按统计按钮,和以前报一样的错,可第二次、第三次却正常了,不知为什么会这样?
如果改成
ClientDataSet1.Close;
DecisionCube1.DimensionMap.Items[0].DimensionType := dimDimension;
DecisionCube1.DimensionMap.Items[1].DimensionType := dimSum;
ClientDataSet1.Open;
则说什么"Out of Index",真怪。
 
可能是CLIENTDATASET1没有完全打开的缘故:
try
ClientDataSet1.Close;
ClientDataSet1.Open;
sleep(1000);
//等一秒钟
DecisionCube1.DimensionMap.Items[0].DimensionType := dimDimension;
DecisionCube1.DimensionMap.Items[1].DimensionType := dimSum;
except
showmessage('open fail');
clientdataset1.close;
end;
 
还是没有用,555……
出错信息仍然是无法检测维数与统计值
 
ClientDataSet1.Close;
ClientDataSet1.Open;
isok:=1;
while (isok<10) and (isok<>0)do
begin
try
sleep(1000);
//等一秒钟
DecisionCube1.DimensionMap.Items[0].DimensionType := dimDimension;
DecisionCube1.DimensionMap.Items[1].DimensionType := dimSum;
isok:=0;
except
inc(isok);
end;
end;
if isok<>0 then
showmessage('open fail');
 
多谢cytown兄的提示,改成这样可以正常运行!
不过我觉得这样做太笨、对效率可能也会有影响,真不爽。
为什么会这样?真TMD的奇怪!
希望有高手来发表意见!
try
try
cdsSearchData.Close;
cdsSearchData.Provider.DataRequest(QryStr);
cdsSearchData.Open;
except
end;
finally
DecisionCube1.DimensionMap.Items[0].DimensionType := dimDimension;
DecisionCube1.DimensionMap.Items[1].DimensionType := dimSum;
cdsSearchData.Close;
cdsSearchData.Open;
end;

另外在TDecision Cube Editor中可以按年、季度、月等条件设置的选项,
在运行时应如何设定,D4的TDecision没有源码,也不能看,没有源码真不
方便
 
接受答案了.
 

Similar threads

后退
顶部