大家帮我看看我的FastReport保存是否出现了什么问题,保存不了哦!
努力偷懒 2006-09-27 09:18:47 过程是这样的:
procedure Tfrm_Print_New.L_ChangeDblClick(Sender: TObject);
var
strSQL:string;
aStream:TMemoryStream;
begin
inherited;
//从数据库中获取流信息,如果不存在,则把当前的报表保存进去,否则直接读取出来修改后再保存。
strSQL:='select count(*) from fr_Field where Fr_Name='+QuotedStr(self.ClassName+'.fr');
if dm.findID(strsql)=0 then
begin
aStream:=TMemoryStream.Create;
fr.SaveToStream(aStream);
strSQL:='insert into fr_Field(Fr_Name) values ('+quotedstr(self.ClassName+'.fr')+') select @@error';
if dm.GetErrorforUpdate(strSQL)<>0 then
exit;
dm.SaveStreamIntoDB('fr_Field','fr_Name',self.ClassName+'.fr','fr_data',astream,dm.Con);
end
else
begin
aStream:=TMemoryStream.Create;
aStream.LoadFromStream(dm.GetStreamFromDB('fr_Field','fr_Name',self.ClassName+'.fr','fr_data',dm.Con));
fr.LoadFromStream(aStream);
end;
fr.DesignReport;
fr.SaveToStream(aStream);
dm.SaveStreamIntoDB('fr_Field','fr_Name',self.ClassName+'.fr','fr_data',astream,dm.Con);
现在的问题是,我DesignReport后的报表没有保存下来。(但是,dm.SaveStreamIntoDB是没问题的,因为第一次执行这个过程的时候,数据库里面是没那记录的,现在数据库已经存在了那条记录。)我现在反复执行这个过程,它的报表格式和原来根本就没变化。是不是我设计完以后,保存到流里面的还是原来的那个报表的东西,而不是新的报表?