|
用代码修改决策立方数据集的项属性一定要全部清除旧定义,重新增加吗?下面代码为何无效?
说明:下面是决策立方数据集定义:
object DataSetJCSJJ1: TDecisionDataSet
Relation.DeleteRule = krNoAction
Relation.UpdateRule = krNoAction
ID = 'JCSJJ1'
DisplayName = #20915#31574#25968#25454#38598'1'
Database.Reference = 'Biz:\CWGLXT\DB_CWSJK.DATABASE'
CheckConstraints = <>
Params = <>
UseBizRange = True
DecisionDef.DimensionDefs = <
item
FieldName = 'Y'
TableName = 'TBL_GZB'
FieldType = ftInteger
DisplayName = #26376
Origin = 'Y'
IsPrimaryKey = True
IsAgg = False
IsUserField = False
DimType = dtDataDim
DimStyleDefType = dfColDim
DimIndexDef = 0
ShowSubTotal = True
CustomDim.FieldType = cdtString
BinType = binNone
end
item
FieldName = 'N'
TableName = 'TBL_GZB'
FieldType = ftInteger
DisplayName = #24180
Origin = 'N'
IsPrimaryKey = True
IsAgg = False
IsUserField = False
DimType = dtDataDim
DimStyleDefType = dfRowDim
DimIndexDef = 0
ShowSubTotal = False
CustomDim.FieldType = cdtString
BinType = binNone
end
item
FieldName = 'YG'
TableName = 'TBL_GZB'
FieldType = ftString
DisplayName = #21592#24037
Origin = 'YG'
IsPrimaryKey = True
IsAgg = False
IsUserField = False
DimType = dtDataDim
DimStyleDefType = dfRowDim
DimIndexDef = 1
ShowSubTotal = False
CustomDim.FieldType = cdtString
BinType = binNone
end>
DecisionDef.SummaryDefs = <
item
FieldName = 'SFJE'
TableName = 'TBL_GZB'
FieldType = ftFMTBcd
DisplayName = #23454#21457#37329#39069
Origin = 'SFJE'
IsPrimaryKey = False
IsAgg = False
IsUserField = False
SummType = dtDataSumm
SummFlags = sfsum //注意这行
end>
DecisionDef.ShowFieldName = False
DecisionDef.SummAreaWidth = 1
DecisionDef.SummAreaHeight = 1
DecisionDef.MaxDims = 5
DecisionDef.MaxSums = 10
DecisionDef.MaxCells = 0
DecisionDef.Database.Reference = 'Biz:\CWGLXT\DB_CWSJK.DATABASE'
DecisionDef.DecisionType = dctStatistics
DecisionDef.DataSetID = 'JCSJJ1'
DecisionDef.DisplayName = #20915#31574#25968#25454#38598'1'
DecisionDef.OriginalSQL.Text =
'SELECT TBL_GZB.YG, TBL_GZB.N, TBL_GZB.Y, TBL_GZB.GZ, TBL_GZB.QT,' +
' TBL_GZB.SFGZ, TBL_GZB.SFJJ, TBL_GZB.SFJE'#13#10' FROM TBL_GZB'
Left = 146
Top = 106
end
下面是代码:
procedure TJCLF1.Button1Click(Sender: TObject);
begin
if Button1.Caption='合计' then
begin
Button1.Caption:='平均值';
DecisionBrokerJCSJJ1.dataset.Close;
TDecisionDataSet(DecisionBrokerJCSJJ1.dataset).DecisionDef.BeginUpdate;
TDecisionDataSet(DecisionBrokerJCSJJ1.dataset).DecisionDef.SummaryDefs.Items[0].SummFlags:=TSummFlags.sfAverage; //注意这行
dialogs.ShowMessage(TDecisionDataSet(DecisionBrokerJCSJJ1.dataset).DecisionDef.SummaryDefs.Items[0].FieldName.ToString);
TDecisionDataSet(DecisionBrokerJCSJJ1.dataset).DecisionDef.EndUpdate;
DecisionBrokerJCSJJ1.dataset.open;
DecisionGrid.Refresh;
end
else
begin
end;
end;
代码执行完后,统计依然是合计,而没有变成平均值 |
|