主题:数据库报表打印(200分)

G

gauss

Unregistered / Unconfirmed
GUEST, unregistred user!
要求:我建立了一个若干字段的数据库,现需要打印一张报表清单,但我只需打印其中的
一部份字段,并且每次打印的字段不是同一些字段,字段的多少不相等。请问哪一位朋友
有什么好的办法帮我解决这个问题。小弟等候各位佳音,并附上200大洋!
 
动态创建吧。
procedure TForm1.Button1Click(Sender: TObject);

begin

qrl1:=tqrlabel.Create(self);
qrl1.parent:=QuickRep1.Bands.TitleBand;
qrl1.Caption :='aaa';
qrl1.show;

qrt1:=tqrdbtext.Create(self);
qrt1.parent:=quickrep1.bands.detailband;
qrt1.Caption :='bbb';
qrt1.show;
qrt1.DataSet :=adoquery1;
qrt1.DataField :='XXX';
//数据集对应字段
end;
 
报表由动态创建
字段由Query 定义
 
用一个列表框将所有的字段列出来,让用户自己选择欲打印的字段。
再将这些字段动态创建,
最后动态创建报表!!!就像zjc说的那样!!
 
我建议你还是用Excel吧(把数据导入EXcel),delphi的报表太烂。
用EXcel对象也更灵活。也符合你的需求。
 
推荐使用FastReport 2.4 + Ehlib + Freh,这样你想做什么都行了,可以到fht.126.com下载。
 
方法两种:
一、自己写一个专门把数据输出到EXCEL的控件
二、采取动态创建报表的方法。用报表工具ereport 或FastReport
 
用DevExpress Grid,动态创建Grid的列,直接打印Grid.
 
感谢大家能对我的问题尽心回复!动态创建的答案我已经接受,不过我认为不通过动态创建
而采用将不需要打印的列的宽度设置为0也应该可以。大家认为呢?
 
多人接受答案了。
 
顶部