请问vfp6 能调用水晶报表吗? 如何用?
能不能给出调用方法,或介绍一个学习的途径! 谢谢!
[解决办法]
不知道,帮顶
[解决办法]
找到RMH大侠以前的译文,可惜图片没有了,请参考:
在VFP中使用Crystal Reports(水晶报表)
*------------------------------------------
译者:RMH
Crystal Reports 简介
Visual FoxPro 应用程序中的一个最重要的问题是报表. 无论我们提供内置的报表或允许用户自己设计它们, 或提供输出到一个打印报表, 一个 Word 文档, 一个 Excel 工作表或一个 Adobe Acrobat 文件, 用户都会苛求更精密复杂的报表. 这正是 Crystal Reports 可以让我们的工作更容易的地方. 在处理前, 我应该告诉你该文档是基于 Crystal Reports 8 的.
Crystal Reports 提供许多在 VFP 报表书写器中没有的能力. 它们包括:
多行头, 脚和细节. 你可以轻易地倍行任何报表节和有条件地打印那些行.
图形. 它简单到选定你想要的图形类型并放入你想打印的节. Crystal Reports 将处理格式和数据绑定. 你也可以进一步地自定义它.
子报表. 该功能允许你在各报表中嵌入报表.
下延(drill-down). 与你的应用程序一起分发 Crystal Reports 阅读器来允许用户在相同报表中从概述下延到细节数据.
输出选项. 用户可以用一系列格式输出他们的报表, 包括 Excel, Word, RTF, HTML 或 PDF 并保持所有格式.
Web 报表. Crystal Reports 包括广泛的可以从 ASP 页中调用的 web 报表能力.
在 Visual Studio.Net 中的标准报表工具. 许多年了, VFP 开发者想要一个增强的报表设计器. 一个特殊版本的 Crystal Reports 将包括在 Visual Studio.Net 中.
访问 Fox 数据
在设计报表时, 你最可能绑定它到一个数据源. Crystal Reports 可以用多种方式访问 VFP 数据:
ADO. VFP 7.0 将随同分发一个 OLE-DB provider.
ODBC. 这是当前访问 VFP 数据的唯一方式, 但因为在 ODBC 层上它是缓慢的.
本地驱动程序. Crystal Reports 可以直接读取 Fox2X 数据. 这是访问你的数据的最快的方法. 我的推荐是运行一个选定所有需要数据到一个游标然后 COPY TO … FOX2X 的 PRG 文件.
记住 Crystal Reports 不能访问游标, 因为它们位于 FoxPro 的内存空间. 但是, Crystal Reports 可以通过 ODBC 使用 DBC 中的视图定义.
创建报表
我将向你展示两人创建报表的示例. 第一个简单的 flat 文件使用 Report Expert. 第二个报表更复杂, 多表连接使用 ODBC 来连接到 TasTrade 示例数据库.
示例 1: 一个简单的 Flat 文件
让我们通过一个简单的示例来来理解报表的创建过程. 在第一个示例中, 我们将使用一个单一的表. 因为 Crystal Reports 更容易处理 Fox2X 表, 打开 Tastrade 示例数据库中的 Customer 表, 然后 COPY TO C:\TEMP\Cust TYPE FOX2X. 启动 Crystal Reports 并选择 文件 > 新建. 你会看到 Report Gallery 对话框. 该对话框提示你选择你想设计的报表类型. Report Expert 是让你通过报表创建过程的向导.
在你选择不同 expert 类型时, 右边面板中的图形将改变为代表该报表的图形. 选择 "Using the Report Expert " 和一个标准报表, 然后单击 OK.
Standard Report Expert 将显示出来. 第一步是选择报表中要使用的所有表. 扩展 "Database Files " 节点然后单击 Find Database Files. 定位到你在上面创建的 CUSTOMER.DBF. 当你回到 Data Explorer 时, 确信你选择 Add 否则在你的报表中不可用. 当添加了一个表后, 一个复选标记将出现在 Data Explorer 后面. 单击 Close 来返回到 Report Expert.
Fields 标签允许你从选定的表中选择要包含的字段. 选择 COMPANY_NA, CITY 和 COUNTRY.
现在单击 Finish 来回到报表设计器. 报表将显示在预览窗口中.
你现在可以打印或导出报表. 选择 File > Print > Export. 你会看到允许你从一系列格式中选择一个的 Export 对话框.
当你选择 OK 时, 将显示一个对话框提示你不同的信息, 取决于你选择的导出格式.
示例 2: 一个多表报表
在该示例中, 我们将看看连接多个表来产生一个更复杂的报表. 该报表将包括多个分组和条形图.
在创建该报表前, 你需要创建一个 ODBC 连接到 TasTrade 数据库. 一但你有了该连接, 回到 Crystal Reports 并选择 File > New. 但是, 对于该示例, 选择 Blank Report. Data Explorer 将显示出来. 扩展 ODBC 选项然后扩展 Tastrade. 添加文件 Customer, Orders, Order_Line_Items 和 Products 然后关闭 Data Explorer.
Visual Linking Expert 将显示出来. Crystal Reports 寻找各表中的共同字段并试图正确地把表连接到一起.
正如你所看到的, 有两个连接需要移去. 单击 Customer.Discount 与 Orders.Discount 间的连接. 按下 Del 键来移去该连接. 然后移去 Order_Line_Items.Unit_Price 与 Products.Unit_Price 的连接, 最后单击 OK.
从 Field Explorer 拖动以下字段到报表的细节带: Order_Line_Items.Order_Id, Products.Product_Name, Orders_Line_Items.Quantity 和 Order_Line_Items.Unit_Price. 在添加了这些字段后, 你可以关闭 Field Explorer.
我们现在需要添加一些组. 选择 Insert > Group. 从 Insert Group 对话框中, 选择 Customer.Company_Name 然后单击 OK.
现在让我们为每个行项添加一个总价. 这要求创建一个 Crystal Reports 公式字段. 从菜单中选择 Insert > Formula Field, 然后单击 Field Explorer 工具栏上的 New 按钮并输入公式名 "Extended Price ".
公式编辑器 (Formula Editor) 添加了许多功能到 Crystal Reports. 几乎每一种报表对象的每一种属性都有一个相关的公式. 例如, 你可以让一个数在为负时显示红色而在为正时为空格. 你可以有条件地打印单个的对象或整个带. 你可以用 Crystal 语法或 BASIC 语法输入你的公式. 例如, 我们将使用 Crystal 语法.
有四个面板在 Formula Editor 中: Report Fields, Functions, Operators 和 Editor. 我们的公式将是一个简单的两个字段的乘法. 在 Report Fields 面板中, 双击 order_line_items.Quantity, 然后在 Editor 面板中输入一个 *, 然后击双 order_line_items.unit_price. 保存公式并关闭 Editor.
你将返回到 Field Explorer. 从 Field Explorer 拖动新的 Extend Price 字段并放入它到细节带中的 Unit Price 的右边.
让我们添加一些汇总. 只有 Extended Price 的汇总是有意义的. 选择细节带中的 Extended Price 字段, 然后从菜单中选择 Insert > Subtotal 并在 Insert Subtotal 对话框中单击 OK. 你也必须复选 "Insert grand total field " 复选框来在报表的末尾添加一个总汇总. 我们将从菜单中添加总汇总.
要添加总汇总, 选择细节带中的 Extended Price 字段. 从菜单中选择 Insert > Grand Total 并在 Insert Grand Total 对话框中按回车.
现在报表所需要的只是页头和图形了. 我们将首先添加页头. 在 Field Explorer 中, 扩展 Special Fields 节点. 选择 "Page N of M " 并拖放它到 Page Header 字段的右边. 拖动面号字段左边的拖动柄并收缩该字段以使其不要太宽.
现在拖动 Page Header 带左边的 "Print Date " 字段.
最后, 从菜单中选择 Insert > Text Object 并拖放到 Page Header 的中部. 输入报表名 "Sales Detail Report ". Crystal Reports 的少量的问题之一是没有简单的方法来在一个面中横向居中一个对象. 但是, 我们可以用少量的步骤来达到目的. 首先, 拖动报表标题的左边和右边的拖动柄并扩展字段让其与页宽一致. 然后, 右击字段并从快捷菜单中选择 "Format Text ". 在 Format Editor 中, 改变 "Horizontal Alignment " 为 Centered 并单击 OK. 现在报表标题将在页中横向居中. 如果你选择了大字体你还必须改变对象的高度.
我们的报表的最后一步是添加一个图形. 从菜单中选择 Insert > Chart. Chart Expert 将显示出来. 在第一页上, 选择你想要的图形类型. 我选择的是三维条形图.
第二页是你为图表选择数据的地方. 注意 Crystal Reports 已经为你选择了数据. 我们需要改变图表的放置位置从页头到页脚中. 当你单击 OK 时, 图表将自动放置到报表的页脚中.
我们现在完成了我们的报表设计.