动态建立报表?悬赏100大洋,急!急!急!!!(100分)

  • 主题发起人 主题发起人 xxy
  • 开始时间 开始时间
X

xxy

Unregistered / Unconfirmed
GUEST, unregistred user!
1。如何用DELPHI的QUICKREPORT对一个动态生成的表制作打印程序?(表的字段名和字段个数是不确定的)
2。如何控制分组报表的换页?
 
动态报表,要根据报表的实际内容才能决定如何实现。
首先报表格式应该有一个通用的框架结构,
比如只是细节区的字段个数不确定,可以在使用报表之前,向细节区里动态创建
一些TQRField,还是可能的。
 
有一个dbprint的程序,演示如何动态的建立TQRLABEL和TQRDBTEXT。
 
To zhangc
能否把你的dbprint发过来给我用一下
 
通过获得的字段民和个数动态创建控件树组
 
DBprint的源程序是delphi 2.0的.
我正在把他改编成delphi4.0
有无心得,一起共享.
 
xxy,给你写了一个简单的例程,供参考,
我已用此法做过一个管理程序,运行良好:
procedure TForm1.PrintButtonClick(Sender: TObject);
var
a:TQRDBText;
b:TQRLabel;
begin
b:=TQRLabel.Create(Self);
b.Parent:=Form2.QuickRep1.Bands.ColumnHeaderBand;
b.Left:=10;
b.Top:=10;
b.Width:=50;
b.Caption:='姓 名';
b:=TQRLabel.Create(Self);
b.Parent:=Form2.QuickRep1.Bands.ColumnHeaderBand;
b.Left:=70;
b.Top:=10;
b.Width:=100;
b.Caption:='单 位';
a:=TQRDBText.Create(Self);
a.Parent:=Form2.QuickRep1.Bands.DetailBand;
a.Left:=10;
a.Top:=10;
a.Width:=50;
a.DataSet:=Form2.Table1;
a.DataField:='a02';
a:=TQRDBText.Create(Self);
a.Parent:=Form2.QuickRep1.Bands.DetailBand;
a.Left:=70;
a.Top:=10;
a.Width:=100;
a.DataSet:=Form2.Table1;
a.DataField:='a26';
Form2.QuickRep1.Preview;
end;

你可以参照此法动态生成其他报表控件。
 
到shrw.chn.net去看看.
 
编个D5的好不好,我现在可用D5呢!
 
如果你的报表没有嵌套,可以先在REPORT中许多QRLable,
动态设其的VISIBLE属性。
给这些控件起名字时按照行和列编号。这样就可以动态控制这些控件了。
 
liuly:我想你的方法是可行的,但不知你有没有试过动态的设定纸张的类型、大小、
横打还是竖打呢。
 
改用别的报表控件.
QUICKREPORT太笨了.
 
多人接受答案了。
 
后退
顶部