我正在尝试使用 C++ Builder 6 中的 QuickReport 创建报告,但无法生成我需要的结果。
我尝试以两种方式创建这份报告,但取得了一定的成功。我在下面详细介绍了一种尝试,因为它似乎是最有希望的。我是 QuickReport 的新手,不知道在哪里寻求帮助。我在http://www.quickreport.co.uk/上在线找到的文档很少,除了极其简单的报告之外,并没有充分解释如何使用该产品。
报告的格式应如下:
- 制造商 1
- 一个产品
- 另一种产品
- 又一个产品
- 制造商 2
- 我的产品
- 这个产品
尝试 1:分离制造商和产品数据的两个查询
- 创建一个通过 ID 获取制造商集合的 TQuery。
- 创建一个细节带。
- 将报表的 DataSet 设置为 Manufacturer TQuery。
- 在与制造商 TQuery 和制造商名称字段关联的详细信息带上创建制造商名称 QRDBText 字段。
- 创建一个 TQuery,它通过制造商 ID 获取产品集合,制造商 ID 是 TQuery 的参数。
- 创建一个子细节带。
- 将 Sub Detail 带的 DataSet 设置为 Product TQuery。
- 在与 Product TQuery 和 Product Name 字段关联的 Sub Detail 带上创建 Product Name QRDBText 字段。
- 为 Sub Detail 带创建事件:
- 打印前:
- 获取当前制造商 ID 并将其作为参数插入到 Product TQuery
- 激活产品 TQuery
- 印后:
- 停用产品 TQuery
- 打印前:
结果:这几乎可以满足我的要求。它正确显示每个制造商,但是它只显示每个制造商的第一个产品。我不确定我是否错误地期望 Sub Detail 带像 Detail 带那样遍历结果,或者我是否缺少其他一些使其工作的必要步骤。我也考虑过使用 Loop 或 Child 乐队,但似乎都没有提供我期望的功能。同样,我似乎根本找不到合适的文档来解释 QuickReport。
最后,我无法确定我是否期待 QuickReport 不提供的功能,或者我是否认为这一切都错了。