我的数据已经查出来,但是我想将查出来的两个数据想减再做累加,比如 一个财务表,一个是支出,一个是收入,一个是结余
也就是
起初结余:=0;
结余:=结余+收入-支出;
DBGrid现实如下:
收入  支出  结余
3000 1000
2000 3000
0    1000
算结余
现实出来的结果要求
收入  支出  结余
3000 1000 2000
2000 3000 1000
0    1000 0
我想在这里写(也就是OPEN下面把值赋进去)
 datamodule1.materialPedestalquery.Close;
  datamodule1.materialPedestalquery.SQL.Clear;
  datamodule1.materialPedestalquery.SQL.Add(str);
  datamodule1.materialPedestalquery.Open ;
         // datamodule1.AxisCardFShquery.Refresh;
         strlen:=Length(str);
         if(strlen>0) then
         begin
         if(DBGridEh2.DataSource.DataSet.FieldValues['TDBGridColumnEh']='') then
         begin
         DBGridEh2.DataSource.DataSet.FieldValues['TDBGridColumnEh']:=0;
         end;
         DBGridEh2.DataSource.DataSet.FieldValues['TDBGridColumnEh']:=DBGridEh2.DataSource.DataSet.FieldValues['TDBGridColumnEh']+DBGridEh2.DataSource.DataSet.FieldValues['SRSL']-DBGridEh2.DataSource.DataSet.FieldValues['FCSL'];
         strlen:=strlen-1;
         end;  materialPedestalDataSource.DataSet:=datamodule1.materialPedestalquery;
  materialPedestalDataSource.Enabled:=true;
  DBGridEh2.DataSource:=materialPedestalDataSource;
  DBGridEh2.Refresh ;代码如何写,请高手帮忙

解决方案 »

  1.   


    3000 1000 2000 
    2000 3000 1000    -- 這個是 -1000吧,是不是錯了。
    0    1000 0 
    你這個不麻煩,數據集再增加一個CALC字段,在 onCalcFields   中處理就行了。
      

  2.   

    我的数据语句写的很麻烦,就是想在OPEN后获得的数据里将两个字段的内容想减得到结余
      

  3.   

    把它现实在DBGridEh的结余的字段里面
      

  4.   

    你可以在查询时就把这个值计算出来
    access用iif
    sql server中用case
    这两个都是可以带条件的如果查出后再计算的话,就只能根据每条的实际情况,去计算了
      

  5.   

    问题是我的查询语句关联了大概8个表吧,查询语句用了13个Union all,全改太麻烦了,不过好在我在查询的时候把结余都赋值成了 0
    这中方法看看行不
    DBGridEh2.DataSource.DataSet.Edit;
    就是修改query中的结果集
      

  6.   

     DBGridEh2.DataSource.DataSet.Edit;
             DBGridEh2.DataSource.DataSet.FieldByName('qmsl').AsInteger:=DBGridEh2.DataSource.DataSet.FieldByName('qmsl').AsInteger+DBGridEh2.DataSource.DataSet.FieldByName('SRSL').AsInteger-DBGridEh2.DataSource.DataSet.FieldByName('FCSL').AsInteger;
    还是不行,提示Query是个关闭的Query~~
    幸运星,有没有什么好的建议?
      

  7.   

    是根据每条记录的实际情况计算的,但问题是怎么计算,怎么显示出效果来,bdmh ?