登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: [delphi] rave / quickreport / fastreport 报表使用     [回主站]     [分站链接]
标题
[delphi] rave / quickreport / fastreport 报表使用
clq
浏览(1) + 2008-08-14 15:07:45 发表 编辑

关键字:

[delphi] rave / quickreport / fastreport 报表使用

好久没做 delphi 的打印程序了,什么 fastreport, rave, quickreport 等都忘得差不多了.记录一下以备忘.

记忆中 quickreport 最好用,不过现在 d7 自带的是 rave 所以我们用一下这个好了.

clq
2008-8-14 15:23:11 发表 编辑

1.首先在窗体上放一个 TRvProject 控件,关于它我们只要后面再设置它的 ProjectFile 属性就可以了.

ProjectFile 是指设计的报表文件名,怎么设计一个报表文件呢? 双击 TRvProject 控件就可以打开设计器了.或者这样: 打开Tools下的Rave Designer.

2.在窗体上放一个 TRvDataSetConnection 将 DataSet 属性设置为一个打开的 Adotable 或者其他数据控件,注意是打开的.(有了这一步我们才会在设计器中看到有可用的数据连接)

3.在设计器中点击 "New Data Object" 图标,建立一个 "Dircet Data View" 注意选择 "Active Data Connections" 为我们新建立的 TRvDataSetConnection ,如果一个目标都没有就是有错.

4.在设计器默认生成的页面中放入一个 "Report" 页面下的 "Region" 控件.

5.在 Region 上放一个 DataBand 控件,设置 "BandStyle" 属性为 "Detail" 和 "First"(大概是这个意思 :) )

设置其 DataView 属性.

6.放一个 DataMemo 控件在 Band 上,设置 DataView 和 DataField 属性.

7.好了,这时保存报表为一个 *.rav 文件,按下 F9 预览看看 :)
...... nnd 什么都没看到对不对 :) 这是一个 bug :) 第一次预览报表时要先运行一次
设置一个窗体上的 TRvProject 的文件名为我们刚保存的 rav 文件,然后执行以下代码:
RvProject1.Execute;

一切都 OK 了.



rave 有一个超级大 bug :
在设计时数据集中的数据是打印不出来的(当你在设计器中按 F9 预览的时候),非要在用程序执行一次后才行.

另外在发布程序时需要带上 QT 的 DLL,因为它是用 QT 开发的.这个 dll 在 delphi 7 目录中有,好象叫 q....dll 来着,大家在目录下搜索或者用 VC 的 Depends 看一下就知道了.

--------------------------------------------------
总的来说,我不喜欢 rave .

clq
2008-8-14 15:34:52 发表 编辑

其实 delphi 7中有quickreport组件,只是要自己另外添加!Component-->Install Packages-->Add-->选Delphi7\bin\dclqrt70.bpl 就可以啦.

quickreport 的使用比较简单:

1.新建一个窗体.并弄一个活动的 DataSet 控件,比如 adotable.
2.窗体上放一下 TQuickRep 控件.设置 dataset 属性为 adotable.
3.在 TQuickRep 控件上放一个 TQRBand 控件,属性设置为 rbDetail .
4.在 TQRBand 控件上放一个 QRDBText1 控件,设置好 dataset 和 field 属性.

好了,这时执行这样的代码时就能打印整个数据集了:
procedure TForm1.Button2Click(Sender: TObject);
begin
QuickRep1.Preview;
end;

大家可以看到 Band 在 delphi 的报表系统中是一个很重要的概念,字面是"带子"的意思,其实是指要打印的东西在一张实际纸张中的位置,一般分为数据集的和普通的,普通的放在哪个位置打印时就出现在哪个位置,而与数据集相关的则会自动扩展自己的位置,并且会将整个数据集中第一条打印到最后一条,一般它会使打印的内容变成好几页.

其他类型的 band 则可以指明是出现在第一页还是最后一页,或者是每一页的开头/每一页的结尾等等.

一般来说报表与数据集怎样关联最啰嗦.rave 的就很啰嗦,而 quickreport 的就简单得多了.

clq
2008-10-6 20:43:11 发表 编辑

[图片]
quickreport 确实有很多问题,所以很多公司实际上用的是 fastreport. 说实在的, fastreport 不好入门,其概念与 delphi 的不和,与其他报表也有比较大的差异。

首先它的那个代替 dbmemo/dbedit 的控件在面板上据然叫什么 rect.. 害得我去找它的 richobject ,结果那个根本不能用,它的数据 band 叫 master band 而一般报表叫做 detail band 的它另有用途。不过它本身上手了也还算好用。当然了,最强的还是 Report Builder , 其实我很喜欢 quickreport 但它的 bug 太多了,预览的东西有时候都会和实际的不同,真不知道作者是怎么写的。

扯远了,入门为三个控件 TfrReport,TfrDBDataSet,还有就是一个一般的数据集了比如 table。设置一个数据集属性后双击 TfrReport ,然后点击工具栏上的“插入数据字段”(Insert DB Fields) 按钮,这是一个关键,要不它特殊的地方搞半天也不清楚--如果不用这个工具手工设置控件的话。好了,图形看附件。

fastreport 是有自己的脚本的,比如在那个 rect -- 其实是 memo -- 中输入

[ADOTable1."id"]

就可以显示一个字段的值了,很奇怪的语法吧。


总数:3 页次:1/1 首页 尾页  
总数:3 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1