-------------------------------------------------------
SELECT TB.SL,TB.DJ,TB.JE,TB.SE FROM (SELECT 100000000.000*0.000 AS SL,10000.000 AS DJ,100000000.00*0.00 AS JE,10000000.00*0.00 AS SE) AS TB;
这是没有实际表的数据集,用ClientDataset打开此SQL得到字段:数量(SL),单价(DJ),金额(JE),税额(SE),输入下列值,税率是0.17,计算金额,税额结果:
数量(SL),单价(DJ),金额(JE),税额(SE)
10 2.545
20 3.989
--------------------------------------------------------
不可用TClientDataset.CreateDataset;
SELECT TB.SL,TB.DJ,TB.JE,TB.SE FROM (SELECT 100000000.000*0.000 AS SL,10000.000 AS DJ,100000000.00*0.00 AS JE,10000000.00*0.00 AS SE) AS TB;
这是没有实际表的数据集,用ClientDataset打开此SQL得到字段:数量(SL),单价(DJ),金额(JE),税额(SE),输入下列值,税率是0.17,计算金额,税额结果:
数量(SL),单价(DJ),金额(JE),税额(SE)
10 2.545
20 3.989
--------------------------------------------------------
不可用TClientDataset.CreateDataset;
Procedure Button1Click(Sender:TObject);
begin
with ClientDataset1 do
begin
Close;
CommandText:='SELECT TB.SL,TB.DJ,TB.JE,TB.SE FROM (SELECT 100000000.000*0.000 AS SL,10000.000*0.0 AS DJ,100000000.00*0.00 AS JE,10000000.00*0.00 AS SE) AS TB';
Open;
Edit;
FieldValues['SL']:=10;
FieldValues['DJ']:=2.545;
FieldValues['JE']:=2.545*10;
FieldValues['SE']:=FieldByName('JE').AsFloat*1.17;
Post;//这里会出错, //一直不用ApplyUpdates(0); 因为不是物理字段。
//do something other ... Close;
end;
end;
Procedure Button1Click(Sender:TObject);
begin
with ClientDataset1 do
var I:Integer;
begin
Close;
CommandText:='SELECT TB.SL,TB.DJ,TB.JE,TB.SE FROM (SELECT 100000000.000*0.000 AS SL,10000.000*0.0 AS DJ,100000000.00*0.00 AS JE,10000000.00*0.00 AS SE) AS TB';
Open;
for I:=0 to fieldscount-1 do
fields[I].ReadOnly:=False;
Edit;
FieldValues['SL']:=10;
FieldValues['DJ']:=2.545;
FieldValues['JE']:=2.545*10;
FieldValues['SE']:=FieldByName('JE').AsFloat*1.17;
Post;//过了 append;
FieldValues['SL']:=20;
FieldValues['DJ']:=3.989;
FieldValues['JE']:=FieldByName('SL').AsFloat*FieldByName('DJ').AsFloat;
FieldValues['SE']:=FieldByName('JE').AsFloat*1.17;
Post;//过了 //一直不用ApplyUpdates(0); 因为不是物理字段。
//do something other ... Close;
end;
end;