用過QuickReprot自帶的QREditor這個控件的高手請進﹗﹗﹗BCB里設計時的QucikReprot怎樣存成QREditor認識的 .qr檔(200分

  • 主题发起人 主题发起人 lzm
  • 开始时间 开始时间
L

lzm

Unregistered / Unconfirmed
GUEST, unregistred user!
用過QuickReprot自帶的QREditor這個控件的高手請進﹗﹗﹗BCB里設計時的QucikReprot怎樣存成QREditor認識的 .qr檔(200分)<br />QuickReport版本為 3.07 如題﹕
BCB里設計時的QucikReprot怎樣存成QREditor認識的 .qr檔
1. 我想實現讓用戶可以修改已有的報表格式﹐在BCB里采用QuickReprot自帶的QREditor﹐
2.我對QREditor.pas做過修改﹐(比如漢化﹐修改界面)報表控件面板用所檔案為 dclqrt50.bpl,
我怎樣讓此 dclqrt50.bpl檔重新編譯一次。
一個問題100大分﹗
 
保存成.qr文件:
只能通过编程实现,用WriteComponet,ReadComponet配合,下面是我很久以前的代码,
有一定的参考价值(以前我用Delphi,相信该成C++不成问题).
//save controls to stream
var
Stream : TFileStream;
i : integer;
begin
Stream:= TFileStream.Create('F:/tt.qrp',fmCreate);
try
// Stream.WriteComponent(QuickRep1.Bands.DetailBand);
for i:= 0 to QuickRep1.Bands.DetailBand.ControlCount-1do
Stream.WriteComponent(QuickRep1.Bands.DetailBand.Controls);
finally
Stream.Free;
end;
end;

//======================================================================
//load controls from stream
var
Stream : TFileStream;
AComponent : TComponent;
begin
Stream := TFileStream.Create('F:/tt.qrp',fmOpenRead+fmShareDenyNone);
try
repeat
AComponent:= Stream.ReadComponent(nil);
QuickRep1.Bands.DetailBand.InsertComponent(AComponent);
TControl(AComponent).Parent:= QuickRep1.Bands.DetailBand;
until Stream.Position>=Stream.Size-1;
finally
Stream.Free;
end;
end;

1.QuickReport 中的QREditor不是很完善,它仅支持几个简单控件不推荐使用
2.汉化后要重新编译安装控件包.
附:
我已经完成了一个BCB的打印包,效果比BCB自己带的QuickReport有明显优势,
带有报表设计打印中心(预览,设置,打印,设计... ...)
支持每个DBGrid(DBGridEh)所见既所得的智能打印及提供设计界面的高级打印
也支持每个DBChart(Chart)所见既所得的打印
且能够实现无级缩放打印(如:设计为A4纸,打印时能够选A3,16开,32开等,自动适应目标
纸张,且不变形,这一点应该比QuickReport优秀,还有其他优点...)
该包是在BCB中完成的,Delphi的还没有移植完成
感兴趣的话,我给大家发个例子!!!
 
To:wgc
總算找到高人了!上面的代碼,我翻成BC++試了一下,完全正确,多謝你的熱心!
當然,很想看看你做的BCB打印包了.把例子發上來可以嗎?多謝!
 
wgc:
怎不見你的回音呢,把你的例子貼上來看看.
我手頭正在做用戶自定義報表格式.初學BCB,還請指教!不勝感激
 
多人接受答案了。
 
后退
顶部