FastReport 報表問題,絕對值得研究.(100分)

  • 主题发起人 主题发起人 zjwork
  • 开始时间 开始时间
Z

zjwork

Unregistered / Unconfirmed
GUEST, unregistred user!
FastReport 報表問題,絕對值得研究.
fastreport的報表信息存儲在一個 .frf格式的檔案,每次發佈程式,要一
并將程式及 .frf一起發佈,實在很煩,針對此問題,我想將 .frf文件的內
容存儲到一個 表的 A字段中,當要列印時,從表中表中讀出該 A字段,以
A字段值取代報表的 .FRF檔案,這樣在程式發行時,就要簡單多了.
可是我不知道 .FRF的存儲格式,試著用MEMO試了一下,不成功,望各位
大俠指教.
不知大家有沒有遇到這種情況,或有更好的解決辦法.
指點一下.
 
使用你的数据表的Blob字段。取的时候这样:
打开表,代码就省了
ms := TMemoryStream.Creat;
with msdo
try
TBlobField(Table1.FieldByName('二进制的字段名')).SaveToStream(ms);
ms.Position := 0;
fastreport1.loadfromstream(ms);
finally
ms.Free;
end;
 
to mlzhou:
人家要在运行时更换报表的样式啦~~~~~~~
 
你可以不将报表保存到frf文件中啊,将frReport的StoreInDfm设为True.
 
StoreInDfm属性设为True,你存成摸板的意义在于什么地方啊?
把那个属性改成真后,是作为DFM文件存储的,打包发布时是不需要带这个文件的,已经编译进去了。
 
>>来自:szf, 时间:2002-6-4 16:40:00, ID:1142655
>>to mlzhou:
>>人家要在运行时更换报表的样式啦~~~~~~~

>>来自:zhumoo, 时间:2002-6-4 16:50:00, ID:1142679
>>你可以不将报表保存到frf文件中啊,将frReport的StoreInDfm设为True.

如果 将frReport的StoreInDfm设为True,編譯進執行檔中,在運行時,修改後就無法存檔,
我如果存到 field中,運行時載入,如果有修改,修改又存到field中,那不是很好嗎,你們
認為呢.

szf講了怎樣讀取,可是,再講講怎樣寫入到表的字段中呢,望再指導一下,最好是用 bcb
代碼.不情之請,先謝過了.

 
如果是RM的话
FastReport1->LoadFromBLOBField(Field);
FastReport1->SaveToBLOBField(Field);
 
kkyy謝謝你的回答,問題我巳解決得差不多了,先謝謝了.
另外:
再問一下,如何將一個 .frf 文件存到一個字段中呢.
謝謝!
 
直接把流FastReport的模板流存到数据库Blob字段
打开表,代码就省了
ms := TMemoryStream.Create
with msdo
try
FastReport1.SaveToStream(ms)
ms.Position := 0;
Table1.Edit;
TBlobField(Table1.FieldByName('二进制的字段名')).LoadFromStream(ms);
Table1.Post;
finally
ms.Free;
end;
//----把frf文件存入数据库
fs := TFileStream.Create('FRF文件名');
try
fs.SaveToStream(ms);
ms.Position := 0;
Table1.Open;
TBlobField(Table1.FieldByName('二进制的字段名')).LoadFromStream(fs);
Table1.Post;
finally
fs.Free;
end;
 
后退
顶部