关于quickreport打印数据库报表的几个问题!(150分)

  • 主题发起人 主题发起人 tianrei
  • 开始时间 开始时间
T

tianrei

Unregistered / Unconfirmed
GUEST, unregistred user!
1、 由于我的数据库字段很多,我想把quickrep组件设置成横放,请问如何设置?
2、 我想将每条记录变成一个表格的形式打印出来,每个表格占用一张纸
(及一个表格显示一条记录,每个表格占一个page),表格如下:
___________________________________________________
|姓名 | (记录来自数据库)| 籍贯 (同上)|
|—————————————————————————|
| 性别 | (同上) | 毕业学校 (同上)|
|—————————————————————————|
|年龄 | (同上) | 毕业专业 (同上)|
——————————————————————————
A、请问,当表格画好后,该如何设置(记录来自数据库)中的内容。
B、如果与quickrep(form2上)相关连的是form1.query1,我想用两种方式来选择记录:
1、用户选择打印当前记录。2、将qury1中的记录全部打印出来。
(注意使用上面的表格打印,及当QUERY1中有多个查询记录时,打印预览中会有多个页PAGE)。
这时又如何设置quickrep和(记录来自数据库)中的内容?
3、谁有quickreport的中文报表的例子,邮箱(tianrei@21cn.com)。你的例子会对我很有帮助!
谁知道关于quickerport比较好的电子图书下载的网站?
谢谢各位的帮助!请不要灌水!(拒绝去下什么控件之内的)
 
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=464018
 
你的报表好像很简单啊
A、TQuickReport的DataSet设置你的TQuery
B、QRBand有的属性ForceNewPage 一看就知道是什么了,
你的报表TQuery控件不要用显示的TQuery控件,这样在打印前就可以发送SQL语句控制了。
不知我有没有理解你的问题。
 
hehe,抢分,比tinytao细一点再说
1.横放?双击你的TQuickReport,有设置属性的地方,第一行,最右的一个Combobox,
选择为landscape,再apply试试?
2.
A:
1).TQuickreport的dataset设置你的TQuery
2).再要放入数据的格子内放入TQRDBText,设置其Dataset和field为你要指定的
3).既可以按tinytao的方法设置QRBand的forcenewpage为true也可以把band拉高,
使其下与TQuickReport的底一样
B:
如要打印Query选出来的所有记录简单open之后打就是了
如要打印当前记录,可是有点麻烦,你可按tinytao的方法试试
我有一种方法,你可试试:对第一个TRQDBText的caption赋值后,query close,再打
如: RQDBText_Field1.Caption:=Query1.FieldByName('Field1').AsString;
....
Query1.close;
 
首先问你,你设了detail了吧。
在你要显示数据的地方放一个 QRDBTEXT 控件,这个控件你会用巴。
设 DATASET ,DATAFIELD
至于查询嘛,请看我得代码(不懂再说吧)
procedure TqueryFrm.Button2Click(Sender: TObject);
(查询中的一个按钮)
printfrm_q.QuickRep1.DataSet:=Query1;
printfrm_q.QRDBText1.DataSet:=Query1;
printfrm_q.QRDBText1.DataField:='名字’;.........;
printfrm_q.show;
end;

TqueryFrm相当于你的form1(查询)
printfrm_q相当于你的form2(报表)
 
谢谢!quickreport和QRDBTEXT 、QRBand我都会用;
form1.query1我也知道怎样与form2.quickrep相关连!
(查询代码我也会!呵呵!)
TO:tinytao AND sonie
我设置QRBand有的属性ForceNewPage为TRUE, 但在不管QUERY1中有
几个记录,报表中要不就显示第一条记录,要不就显示最后一条记录!
打印预览中只有一个PAGE。
打印当前记录我到知道:
只需要form2.quickrep 的DATASET 不设置就只显示当前记录!
(当然,QRDBTEXT 要指向FORM1.QUERY1)
我想在声明一次,我想所有的QUERY1中的记录都被打印出来!
每条记录用一张纸(PAGE)打印,每张纸的格式都是象我上面画的!
顺便说一句我的表比上面的复杂的多,我只是举一个简单的例子!
谢谢 tinytao AND sonie 问题继续!

 
3).既可以按tinytao的方法设置QRBand的forcenewpage为true也可以把band拉高,使其下与TQuickReport的底一样
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
也就是说,让整个页面只能放下一个DetailBand,
放不下两条记录
 
在打印报印前如果要打所有记录,没有对Query Open就一定要First;
不然它怎样从第一条记录打起啊。
 
你将表画好后,将DetailBand拉成你想要的一张纸的那么大,就可以实现一个表一页纸了.
 
所有的QUERY1中的记录都被打印出来:
用QRGroup控件将数据分组打印,Expression属性(即分组条件)可设为‘姓名’(如果
‘姓名’字段是唯一的话)。这样,每打一条query1中的记录时都会打一张新表,当然,
页面大小要设定为正好可以打印一个表。
这里只给出一个思路,真正实现还要靠你自己调试。调试过程中有什么困难,可以email
通知我。
 
感谢sonie、tinytao、Langrisser和真心帮助我的朋友!
谢谢!
现在分配分数!
 
多人接受答案了。
 
后退
顶部