微软在2004年岁末发布最新版visual foxpro 9.0,这则消息让我们回想起曾经风光无限的foxpro,现在它已经被java、delphi、vb等众多明星遮掩了光芒,有人认为如果不是诞生在豪门微软,它肯定已经消失。但了解visual foxpro的都知道,visual foxpro的卓越性能是无法代替的。新版visual foxpro 9.0在foxpro社区引起了轰动,新版中将包含一个更快的本地数据引擎,支持更多的数据类型,sql语句执行中有更大的一致性,一个完全重新设计的可扩展报表编写器,以及一系列效率和功能增强特性。
在visual foxpro 9.0的报表系统出现了难以置信的改进。在本文中,我只讨论几个新增功能中的一个——扩展运行时报表引擎(runtime reporting engine)的能力。
visual foxpro小组在处理运行时改进工作时一直紧记着几个目标,包括:
你可以同时访问旧的和新的报表引擎,因此你可以根据需要选择在哪种引擎下运行报表。但是一旦你看到新的报表引擎的优点,你就再也不希望使用旧式报表了。
报表系统的架构
visual foxpro 9以前版本中的报表系统类似于单片电路:它处理所有细节信息,只有少量的例外(用户定义的函数、报表带条的onentry和onexit表达式等等),在报表运行的时候,你是不能与它交互操作的。
新的报表引擎把报表的功能分成了两部分:现在的报表引擎只处理数据和对象定位;一种新对象(报表监听器)处理显示和输出的事务。由于报表监听器是类(class),因此我们现在可以使用以前梦寐以求的方式与报表进程交互操作。
新的报表语法
visual foxpro 9支持使用旧的报表引擎运行报表;你可以像以前一样使用report命令(尽管你可以使用新命令重载report的行为)。为了得到新式的报表行为,必须使用report命令的object子句。object子句支持两种使用方法:指定报表监听器和指定报表样式。微软把它归纳为对象辅助(object-assisted)报表。
报表监听器是提供新式报表行为的对象。报表监听器是基于visual foxpro 9的新的基础类reportlistener的。为了让visual foxpro 9使用报表指定的监听器,需要实例化监听器类,并在report命令的object子句中指出该对象的名称。下面是一个例子:
| lolistener = createobject('myreportlistener') report form myreport object lolistener |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器