Visual FoxPro 应用程序通常由以下几部分组成:一个或多个数据库、设置应用程序系统环境的主程序以及用户界面(诸如表单、工具栏和菜单等)。此外,还可以包括查询和报表,允许用户检索或输出自己的数据。
本章内容要点:
认真细致的规划可以节省时间、精力和资金。在规划阶段,应该让最终用户更多地参与进来。无论多么仔细的规划,在项目实施过程中也需要不断润色,并接受最终用户的反馈。
在开发之前所做的设计方案往往会对最终结果产生很大的影响。许多问题都应在深入开发之前加以考虑,例如:这个应用程序的用户是谁,用户的主要操作是什么,要处理的数据集合有多大,是否要使用后台数据服务器,以及是单用户还是网络上的多用户等等。
一般的用户操作
您的最终用户可能需要处理顾客、订单或各种产品,他们处理信息的方式将决定应用程序如何进行数据操作。例如,位于目录 Visual Studio …\Samples\Vfp98\Tastrade 中的 Tastraded.app 程序所使用的订单输入表单也许对一些应用程序有用,但这个表单可能并不适用于管理货物清单或追踪销售记录。
数据库的大小
当需要处理庞大的数据集合时,考虑最多的恐怕是如何提高性能。第十五章“优化应用程序”介绍了一些优化性能的方法。有时,您可能需要调整用户在数据之间移动的方式。例如,如果一个表中只有二三十个记录,那么记录指针一次只移动一个记录不会有什么问题,但如果表中有二、三万个记录,就必须为用户提供能找到所有数据的其他方法(比如增加搜索列表、对话框、过滤器和定制查询等)。第十章“使用控件”介绍了如何使用列表来选择特定表记录,第八章“创建视图”介绍了如何创建参数化查询。
单用户和多用户
创建应用程序时,最好考虑到几个用户同时访问数据库的情况。Visual FoxPro 提供了一些技术,使您能够很容易地进行共享访问方面的编程。第十七章“共享访问程序设计”描述了允许多个用户同时访问数据库的技术。
国际化考虑
若事先知道应用程序仅使用在单一语言环境中,可以不考虑国际化问题。另一方面,如果您想扩大市场,或用户要处理国际化的数据和环境设置,则应在创建应用程序时考虑这些因素。第十八章“开发国际化应用程序”阐述了在应用程序中需要做的一些处理,这些应用程序是为国际化使用而开发的。
本地数据和远程数据
若应用程序需要处理远程数据,则必须使用新的管理方法,这种方法与处理本地 Visual FoxPro 数据有所不同。第八章“创建视图”介绍了如何为本地数据或远程数据创建视图。《程序员指南》的第六部分“创建客户/服务器解决方案”介绍如何设计出能够很好地处理远程数据的应用程序。
在创建应用程序的过程中,有许多重复性工作。但由于两个应用程序不可能完全相同,因此您需要在开发出原型的基础上,对其各组成部分不断优化,以得到一个完善的产品。最终用户的要求和期望有可能改变,那么应用程序的某些方面也应随之改变。所有人在编程时都会犯些小错误,所以在测试和调试过程中,可能会需要重新设计和改写某些代码。
创建应用程序的过程
除了考虑以上的整体过程外,还需要仔细推敲应用程序中应包含哪些功能,涉及到哪些数据以及如何构造数据库的结构等问题。您需要设计一个用户界面,使用户可以访问应用程序。同时,创建一些报表和查询,以便用户可以从数据中提取有用信息。
在计划好应用程序中所需组件后,可能会希望建立一个目录框架和项目以组织那些为应用程序而建立的组件文件。可在“Windows 资源管理器”中建立框架,在“项目管理器”中创建项目,或使用“应用程序向导”同时建立。这种新增的“应用程序向导”将打开“应用程序生成器”,从中您可以进一步组织那些最初用向导建立的项目和组件。为了保持向后兼容性,仍然可以选择使用早期“应用程序向导 (5.0)”。
“项目管理器”能够编译已完成的应用程序。此外,在开发阶段,它还可以使应用程序某些组件的设计、修改和运行变得方便易行。
项目管理器
“项目管理器”提供以下功能:
有关使用“项目管理器”的详细内容,请参阅《用户指南》中的第一章“入门指南”。有关编译应用程序的详细内容,请参阅本书的第十三章“编译应用程序”。
因为数据库应用程序在很大程度上依赖于所管理的数据,所以最好从数据入手进行应用程序的设计。在动手设计用户界面和用于管理数据的组件之前,请设置数据库,并确定表之间的关系以及所希望的事务规则等信息。在可靠的数据库基础上,开发工作会容易许多。
第五章“设计数据库”、第六章“创建数据库”和第七章“处理表”阐述了在设计过程中使用的命令,并解释了如何使用 Visual FoxPro 设计高效的表和数据库。
您有时可以不必自己创建类,只用 Visual FoxPro 的基类就可以创建一个可靠的面向对象的事件驱动程序。您偶而也许想自己创建一些类,以实现一些特殊功能。Visual FoxPro 可靠的类库能帮助您快速创建原型,并向应用程序添加功能,使代码更易于管理和维护。使用“表单设计器”(使用“文件”菜单中的“另存为类”命令)或“类设计器”,您可以在程序文件中创建类。
第三章“面向对象程序设计”中阐述了创建类的好处,及如何用编程方式创建类。
界面直接表现一个应用程序的功能。用户对应用程序是否满意,很大程度上取决于界面功能是否完善。也许您的类模型很简洁,代码很精致,解决难题的方法很巧妙,但这一切用户都看不到,他们所能见到的只是提供的用户界面。Visual FoxPro 的设计工具使得创建富有吸引力并且功能丰富的界面成为了一件轻松愉快的事情。
用户界面主要包括表单、工具栏和菜单,它们可以将应用程序的所有功能与界面中的控件或菜单命令联系起来。第九章“创建表单”详细描述了如何创建表单和表单集。有关在表单中如何使用 Visual FoxPro 控件的详细内容,请参阅第十章“使用控件”。第十一章“设计菜单与工具栏”介绍了如何为应用程序创建菜单。
也许您想在表单上为用户显示一些信息,或者也想给用户提供一些方便,以准确地给出他们所需的内容,让他们自己选择是否把信息打印到报表或标签上。查询(特别是能够接受用户自定义参数的查询)使用户具有更强大的控制数据的能力,报表则允许用户选择如何打印数据(可以全部打印、部分打印或概要打印),ActiveX 控件和自动服务允许应用程序之间共享信息和功能。
《用户指南》的第四章至第七章介绍了“查询设计器”和“报表设计器”。本书的第十二章“添加查询和报表”介绍了如何在应用程序中集成查询和报表。第十六章“添加 OLE”介绍了如何在应用程序中集成 OLE。
测试和调试是开发人员在开发工作的每一步中都需要做的事。随着工作的深入,您最好不断地进行测试和调试。假设创建了一个表单,那么在处理应用程序的其他部分之前,最好检查一下表单能否完成预定的功能。
第十四章“测试和调试应用程序”中介绍了如何使用 Visual FoxPro 调试工具调试应用程序,并提供了使调试过程更轻松的若干技巧。