这是我的代码:
var
ddd: TDecisionDimensionDef;
dsd: TDecisionSummaryDef;
begin
DecisionBrokerJCSJJ1.DataSet.Close();
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.BeginUpdate;
try
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.DimensionDefs.Clear(); //出错语句
ddd:=TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.DimensionDefs.Add;
ddd.FieldName:= 'FPRIORITY';
ddd.TableName:= 'TTask';
ddd.FieldType:= TFieldType.ftString;
ddd.DisplayName:='重要度';
ddd.IsPrimaryKey := False;
ddd.Origin := 'FPRIORITY';
ddd.IsAgg := False;
ddd.DimType :=TDecisionDimType.dtDataDim;
ddd.DimStyleDefType :=TDecisionDimstyleDefType.dfColDim;
ddd.DimIndexDef := 0;
ddd.ShowSubTotal := False;
ddd.CustomDim.FieldType :=TCustomDimType.cdtString;
ddd.BinType := TBinType.binNone;
ddd:=TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.DimensionDefs.Add;
ddd.FieldName:= '_ZD_1';
ddd.FieldType:=TFieldType.ftString;
ddd.DisplayName:='自定义维1';
ddd.IsPrimaryKey := False;
ddd.IsAgg := False;
ddd.IsUserField := False;
ddd.DimType := TDecisionDimType.dtDataDim;
ddd.DimStyleDefType := TDecisionDimstyleDefType.dfRowDim;
ddd.DimIndexDef := 0;
ddd.ShowSubTotal := False;
ddd.CustomDim.Strings.Add('已完成,TTASK.FSTATE = ''tsFinished''');
ddd.CustomDim.Strings.Add('已退回,TTASK.FSTATE = ''tsReturned''');
ddd.CustomDim.FieldType := TCustomDimType.cdtString;
ddd.BinType := TBinType.binNone;
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.SummaryDefs.Clear();
dsd:=TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.SummaryDefs.Add();
dsd.FieldName := 'FSPERSONNAME';
dsd.TableName := 'TTask';
dsd.FieldType := TFieldType.ftString;
dsd.DisplayName :='提交人';
dsd.Origin := 'FSPERSONNAME';
dsd.IsPrimaryKey := False;
dsd.IsAgg := True ;
dsd.SummType := TdecisionSummtype.dtAggSumm;
dsd.SummFlags := TSummFlags.sfSum;
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).Database.URL:= 'Biz:\SYSTEM\System.DataBase';
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).SQL.Text:='SELECT FSTATE AS "状态", FKIND AS "类型", "已完成" AS "自定义维1", FSPERSONNAME AS "提交人" FROM TTASK WHERE (TTASK.FSTATE = "tsFinished") GROUP BY FSTATE, FKIND, FSPERSONNAME UNION SELECT FSTATE AS "状态", FKIND AS "类型", "已退回" AS "自定义维1", FSPERSONNAME AS "提交人" FROM TTASK WHERE (NOT(TTASK.FSTATE = "tsFinished") AND (TTASK.FSTATE = "tsReturned")) GROUP BY FSTATE, FKIND, FSPERSONNAME';
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.ShowFieldName := False;
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.SummAreaWidth := 1;
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.SummAreaHeight := 1;
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.MaxDims := 5;
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.MaxSums := 10;
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.MaxCells := 0;
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.DecisionType := TDecisionType.dctStatistics;
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.DatabaseURL := 'Biz:\SYSTEM\System.DataBase';
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.OriginalSQL.Text := 'SELECT * FROM TTASK';
finally
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).DecisionDef.EndUpdate;
end;
TDecisionDataSet(DecisionBrokerJCSJJ1.DataSet).Open(); |