设置FieldKind 
                     begin
                      Field := TStringField.Create(dm.SalaryReport);
                      Field.FieldKind := fkCalculated;
                      Field.FieldName := '金额小计';
                      Field.Name := 'fieldcalculated';
                      Field.DisplayWidth :=10;
                      Field.DataSet := dm.SalaryReport;                      end; 设置  DataType 
                       with FieldDefs.AddFieldDef do
                          begin
                            DataType := ftBCD;
                            FieldKind := fkCalculated;
                            Size := 2;
                            Precision := 10;
                            Name := '金额小计';
                          end;网上看到的代码,但是测试下来,跟本就没有添加到fkCalculated,也就是 Field 的代码是无效代码                     begin
                     Field := TStringField.Create(dm.SalaryReport);
                      Field.FieldKind := fkCalculated;
                      Field.FieldName := '金额小计';
                      Field.Name := 'fieldcalculated';
                                           with FieldDefs.AddFieldDef do
                             begin
                              Name:='fieldcalculated';
                              DataType :=ftBCD ;
                              DisplayName:= '金额小计';
                             end;
                       Field.Free ;
                     end;
我的clientdataset 是完全手工建立了,而且运行过程中也需要删除后再建立请高手指点!

解决方案 »

  1.   


    回贴有分
     IntegerField:=TIntegerField.Create..........
     stringField := TStringField.Create..........
      bcdfield:=TBCDField.Create.................
      

  2.   

    送分都没有人要,真是的.........
    设置FieldKind 
                         begin
                          Field := TStringField.Create(dm.SalaryReport);//把TStringField改成你想要的数据类型就好了,比如TIntegerField
                          Field.FieldKind := fkCalculated;
                          Field.FieldName := '金额小计';
                          Field.Name := 'fieldcalculated';
                          Field.DisplayWidth :=10;
                          Field.DataSet := dm.SalaryReport;                      end;