FastReport的主从数据的问题

liusiyang 2005-12-21 11:16:50
我是用的数组不是数据库,报表有两个Band如下:

MastData
DetailData

给他们提供数据的是两个数组

arrayCategory
arrayItem

要实现的表如下:

种类:=电器=
品名:电视机
品名:录像机

种类:=元器件=
品名:电阻
品名:电容

现在的问题是第一个项可以打出来,细项数据也可以打出来,但就是不会停止,
他会一直循环打第一个项的品名,这样就不会去打印第二项种类

我用了两个 UserDataSet 控件,一个确定种类序号,一个确定品名序号;
种类的如下设置有效: 也许是MasterData的原因
m_dataCategory.RangeEnd := reCount;
m_dataCategory.RangeEndCount := nLen;
但是品名的如上设置就没有效,在 主报表的 GetValue 事件中 种类的 RecNo始终为0,但品名
的 RecNo 却无限增长。试着设置过 OnCheckEOF 为 true 但是马上连MasterData也会停止,下面的数
据打印不出来了。




...全文
178 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lovendII 2005-12-22
  • 打赏
  • 举报
回复
恭喜
Randomize 2005-12-22
  • 打赏
  • 举报
回复
接分了,樓主公布經驗了.
liusiyang 2005-12-22
  • 打赏
  • 举报
回复
问题已经解决,经过是这样的,我做了一个简化的小程序,准备发给别人帮我调试,但是一调试发现它居然没有问题,设置了RangeEndCount有效,他可以接着打下一个MasterData和DetailData;
于是把我原来的报表控件完部删除,再新建,名字也没改,报表上只放一个MasterData和DetailData; 再调试就OK拉,但是有一点要注意DetailData的数据源的RangeEndCount属性必为1
那怕DetailData没有记录,如果有多于一条的记录,往上加就是了。
我想FastReport也可能有点小Bug,不然我开始设置RangeEndCount为什么没有用,没有时间试了.我用的3.07版本

问题解决了,高兴,快来接分啦!
happypzl 2005-12-22
  • 打赏
  • 举报
回复
为楼主高兴我也接分,呵呵
liusiyang 2005-12-21
  • 打赏
  • 举报
回复
如何才能让DetailData停止,接着打下一个MasterData 和 DetailData;
人鱼传说 2005-12-21
  • 打赏
  • 举报
回复
學習
关于FastReport的说明 FastReport是高弹性的报表设计器,用于报表的数据可以从任何类型的数据源获取,包含字符列表,BDE数据库,ADO数据源(不使用BDE),Interbase(使用IBO),Pascal数组和记录,以及一些不常用的数据源。 整个FastReport系统是用Delphi的Pascal编写的。FastReport不需要动态链接库,但需在你的项目中占用大约400kb(Delphi 5)。如果你想最终用户拥有设计能力,这将在你的.EXE中增加大约500kb。虽然这看上去比较大,但这只是其它设计的几分之一。你同样应该考虑到FastReport不仅仅只是包含最终用户更改报表设计的能力,还能够适应查询和数据库的变化。FastReport还包含自己的脚本语言,让应用程序和最终用户能够更容易地改变报表。如果你的大部分应用使用FastReport,你可以简单地配置FastReport BPL(大约1400kb)而所有你的应用程序只需要保留很少的一部分。 你可以发现FastReport有一个非常吸引人的用户界面,使用最新的用户界面组件,例如可停靠的工具栏。你的最终用户将会非常愿意使用这个设计器,只需使用鼠标就可以创建大多数报表。 FastReport是名副其实的快速报表:较其它一些Delphi报表设计器而言,你可以发现没有什么可以接近于它的开发速度。报表预览窗口一直是大多数报表设计器的弱点,高品质的外观,赋于你的应用程序非常专业的用户界面。 FastReport是一个已经拥有三年历史的非常成熟的报表设计器,成长使它拥有其它Delphi报表设计器所不能相比的诸多先进特性。 FastReport的历史 FastReport应运而生。当我在1997年开发一个工资系统时,我寻找周围的报表设计器能够让我非常简单地创建报表,而且能够在运行时编辑报表。可是,那时没有一个免费组件是我所需要的。这样,我就想创建自己的报表设计器,于是FastReport诞生了。 FastReport的基本思想来源于Windows版的“1S-Bookkeeping”6.0,因此报表的基本元素是包含多行文本的矩形。这些文本既包含标准文本又包含变量。变量,像数据字段,用方括号突出显示。报表生成器的第一个版本仅支持一个区域,但它允许创建多层报表。它还不是一个组件,只是一些单元的集合。 后来,在1998年,报表生成器变成一个完整的Delphi组件。在这时,它命名为“FastReport”,并提供增强的函数功能。现在,FastReport是一个完整的,产品化的可视化报表生成器。它包含以下的特点: l 构建报表的生成器,也可以在运行时使用(重要的是用于最终用户报表的更改!)。 l 类似于MS Word的打印预览。 l 直接编译在Delphi EXE中,不需要动态链接库。 l 支持JPEG(使用Delphi类库)和GIF(使用RX类库)。 l 拥有比QuickReport1执行更快速的性能。 l 简洁,纯Delphi代码,比QR3有更小的设计器。 l 类似QuickReport和ReportBuild的强大的区域导向报表生成器。 l 包含许多非常有用的组件:文本,线段,图像,图形,OLE对象,格式文本,RX Rich2.0,图表,图表,条形码,带阴影的文本。 l 报表生成的页数无限制。 l 多页报表;复合报表;子报表;分组;多栏报表;主从报表;透视表;二次表; l 打印过程全控制;支持所有纸张尺寸; l TXT,RTF(用于图形),CSV,HTML(用于图像)输出转换器。 l 在报表预览中查找文本。 l 附加的TfrDataStorage组件允许在运行时创建数据表和查询。这对于需要完全控制报告过程的最终用户报表特别有用。 l 报表生成的页面可以被修改。 l 内置的Pascal解释器可用于非常灵活的报告!语法加亮的支持是使用一个免费的软件库。 l 报表数据可以保存于Delphi的DFM文件,外部文件,数据表的BLOB字段或数据流。 l FastReport可以非常容易地用于创建你自己的报表组件,向导和函数类库。 l 报表的核心部分支持IBObject(不需要BDE)。 l 支持Interbase表达式(IBX). l 报表核心支持ActiveX Data Object(ADO)。 l 完善的数据管理函数(不需要BDE)。

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧