新建一 dataset , 并加入数据 : preparetable
function tfrm_print.createtableinmemory(const afielddefs:tfielddefs):tdataset;
var
temptable:tclientdataset;
begin
temptable:=nil;
result:=nil;
if afielddefs<>nil then
begin
try
temptable:=tclientdataset.create(application);
temptable.fielddefs.assign(afielddefs);
temptable.createdataset;
result:=(temptable as tdataset);
except
if temptable<>nil then
temptable.free;
raise;
end
end;
end;
procedure tfrm_print.createdataset(var gdataset:tdataset);
var adataset:tdataset;
begin
try
if assigned(gdataset) then gdataset.free;
except
end;
adataset:=tdataset.create(self);
try
with adataset.fielddefs do
begin
add('orderno',ftinteger);
add('prjname',ftstring,200);
add('srcprice',ftfloat);
end;
gdataset:=createtableinmemory(adataset.fielddefs);
gdataset.open;
finally
adataset.free;
end;
end;
procedure tfrm_goodsmg.preparetable(var gdataset:tdataset);
procedure preparedataset;
begin
{ while not 数据源.eof do begin
gdataset.append;
gdataset.fieldbyname('orderno').asinteger:= i_value;
gdataset.fieldbyname('prjname').asstring := a_value;
gdataset.fieldbyname('orderno').asfloat := d_value;
gdataset.post;
数据源.next;
end; }
end;
begin
createdataset(gdataset);
preparedataset;
end;
procedure getmydataset()
var mydataset:tdataset
begin
preparetable(mydataset);
mydataset.free;
end;