fastreport保存到数据库问题?

CB1013 2012-02-08 05:40:12
var
template:TStream;
--加入数据库
template:=TMemoryStream.Create;
template.Position:=0;
if OpenDialog1.Execute then OpenDialog1.Files.SaveToStream(template);
DM.frxReport1.SaveToStream(template);
DM.RptData.Append;
try
DM.RptData.Edit;
DM.RptData.FieldByName('id').AsString:=Trim(DM.Report.FieldByName('id').AsString);
DM.RptData.FieldByName('report').AsString:=ExtractFileName(OpenDialog1.FileName);
(DM.RptData.FieldByName('rptmemo') as TBlobField).LoadFromStream(template);
DM.RptData.Post;
finally
template.Free;
end;
DM.RptData.Close;
DM.RptData.Open;
--读取报表
try
template:=DM.RptData.CreateBlobStream(DM.RptData.FieldByName('rptmemo'),bmRead);
template.Position:=0;
DM.frxReport1.LoadFromStream(template);
DM.frxReport1.FileName :=Trim(DM.RptData.FieldByName('Report').AsString);
DM.frxReport1.DesignReport;
finally
template.Free;
end;
问题:读出来的报表并不是加入的的报表,还是加入的报表本来就有问题,如:加入的1.fr3,2.fr3等报表,读出来的都是10.fr3报表,可并没加入10.fr3这张报表,不是为什么?
...全文
259 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
andylist 2012-02-12
  • 打赏
  • 举报
回复
不知道,我写进数据库却没有你所说的情况发生。
我看见佛 2012-02-12
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lzg827 的回复:]
DM.RptData.FieldByName('id').AsString:=Trim(DM.Report.FieldByName('id').AsString);
有无可能是这句代码的问题
DM.Report.FieldByName('id').AsString并不是你想的那个值。
设个中间变量,断句进去看看。
比如:
a:=Trim(DM.Report.FieldByName('id……
[/Quote]
我觉得这种可能性比较大些
CB1013 2012-02-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lzg827 的回复:]
引用 1 楼 sundayzhao 的回复:
应该是报表文件太大了,修改Blob的大小即可

这样也行?好神奇的问题。
有没可能是保存的时候名字错了?断点进去看
[/Quote]
名字没错
lzg827 2012-02-11
  • 打赏
  • 举报
回复
DM.RptData.FieldByName('id').AsString:=Trim(DM.Report.FieldByName('id').AsString);
有无可能是这句代码的问题
DM.Report.FieldByName('id').AsString并不是你想的那个值。
设个中间变量,断句进去看看。
比如:
a:=Trim(DM.Report.FieldByName('id').AsString);
……
做了N个操作后
DM.RptData.FieldByName('id').AsString := a;

这种写法和你的写法,有时候差别很大的。
kaikai_kk 2012-02-08
  • 打赏
  • 举报
回复
if OpenDialog1.Execute then OpenDialog1.Files.SaveToStream(template);
DM.frxReport1.SaveToStream(template);

这里template中有2份资料了

DM.RptData.Append;
try
DM.RptData.Edit;

是添加还是修改?
lzg827 2012-02-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 sundayzhao 的回复:]
应该是报表文件太大了,修改Blob的大小即可
[/Quote]
这样也行?好神奇的问题。
有没可能是保存的时候名字错了?断点进去看
sundayzhao 2012-02-08
  • 打赏
  • 举报
回复
应该是报表文件太大了,修改Blob的大小即可

5,932

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧