我的数据已经查出来,但是我想将查出来的两个数据想减再做累加,比如 一个财务表,一个是支出,一个是收入,一个是结余
也就是
起初结余:=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 ;代码如何写,请高手帮忙
也就是
起初结余:=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 ;代码如何写,请高手帮忙
3000 1000 2000
2000 3000 1000 -- 這個是 -1000吧,是不是錯了。
0 1000 0
你這個不麻煩,數據集再增加一個CALC字段,在 onCalcFields 中處理就行了。
access用iif
sql server中用case
这两个都是可以带条件的如果查出后再计算的话,就只能根据每条的实际情况,去计算了
这中方法看看行不
DBGridEh2.DataSource.DataSet.Edit;
就是修改query中的结果集
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~~
幸运星,有没有什么好的建议?