4/14/2009

用 LotusScript 实现 Excel 报表的自动生成和操作

Lotus Notes 是 Windows® 和 Macintosh® 计算机上功能强大且用途广泛的软件,在企业内部的办公应用领域,扮演了十分重要的角色。而 Excel® 表格也是企业办公领域的流行工具之一,经常作为统计数据的报表使用。Lotus Domino Designer 当中的 LotusScript 语言提供了丰富的编程功能,可以在 Notes 数据库当中实现对 Excel 文件的自动生成、操作和发送等等功能。本文结合本人在开发过程当中的实际经验,以一个具体的应用模块为例,介绍在 Lotus 平台下,用 LotusScript 语言实现 Excel 报表操作功能的原理、方法和一些实用技巧。
Lotus Notes 应用开发概念简介
Lotus Notes 是大型企业内部办公协作的首选工具之一,除了众所周知的电子邮件收发功能以外,Notes 也是一个强大的应用程序运行平台,可以通过运行各种 Notes 应用来实现各种各样的功能。Notes 客户端上运行的应用被称为 Notes 数据库,如同网页浏览器(如Firefox)通过打开不同的 URL 访问功能各异的网络应用(网页)一样,Notes 客户端的强大功能,正在于通过打开不同的 Notes 数据库,从而实现千变万化的业务功能。从物理上看,Notes 数据库很简单,就是一个后缀名为“nsf”的文件,Notes 客户端只要打开本地或者远程服务器上的 nsf 文件,就可以访问这个 Notes 数据库了。从逻辑上看,Notes 数据库文件将数据库的设计和数据都集中在一起,便于访问和维护。
要理解 Notes 数据库的逻辑结构,就要理解 Notes 数据库独特的数据库类型-“文档数据库”。一提到“数据库”,人们都会想起通用的关系型数据库,其实,很多其他形式的数据库,如“文档数据库”也非常的有价值,便于实现某些特定的功能。文档数据库的概念很简单,就是在数据库当中没有关系型数据库那样复杂的结构和严格的规定,数据按照简单的“文档”形式来存储,一个“文档”当中包含很多内容字段,文档之间的关联不是很紧密。除开数据存储以外,Notes 数据库当中还储存了一些操作数据的应用程序,包括脚本程序、图形界面设计、数据表单设计等等。有了这些设计,Notes 数据库就不仅仅具有简单的数据存储功能,还可以实现丰富的应用逻辑功能了。关系型数据库虽然很通用,可以存储任何结构的数据,但是在存储结构不是很复杂,数据间关联不是很紧密的情况下,文档数据库的形式就更加容易设计和修改;而这种将数据和设计放在一个文件当中的形式,也更加便于部署和掌握。
一个很容易想到的文档数据库的例子就是电子邮件信箱:在邮箱里,每一封邮件都可以被认为是一个独立的文档,有着类似的结构和字段,而且相互之间关联程度不大。如果用关系型数据库来记录邮件内容,在开发过程中必须遵循很多的限制和约束,而且对于归类、排序、自动设置属性等等邮件文档的常用功能,必须按照关系型数据库的规范编写比较复杂的应用程序来实现。有了文档数据库,事情就变得简单了,由于文档的共同特性,文档数据库一般都有通用的归类、排序等功能,几乎不用写代码,就可以实现这些常规的操作功能。而且,当我们要迁移邮箱内容的时候,只要拷贝邮箱的 nsf 文件就可以了,不会像关系数据库那样需要复杂的导入导出和配置过程。所以,Lotus Notes 当中应用最为广泛的,就是邮件数据库,它充分体现了文档数据库的特点,另外,个人通讯录、日程安排管理、公司内部的文档管理系统等等企业办公协作应用,也可以用文档数据库很好的实现。