由于在实际报表需求中有很多的统计运算,所以使用JDBCODBC来解决统计运算的问题。Servlet完成整个报表的控制运行,JDBC 驱动程序完成以SQL语句方式存取NSF数据,利用JXL进行读取Excel,最后以文件流的形式把报表展现给用户客户端,并用Excel程序打开报表。
报表结构图
整个报表的结构图如下。
图1 报表结构图
报表实现
一 设置Domino运行Servlet
1. 在整个报表输出过程中使用Domino的Servlet容器管理Servlet程序的运行,所以首先要启用Servlet程序并对其进行相关配置。
打开Domino服务器的服务器配置文档,找到”Domino Web引擎”标签如下图进行设置。
图2 配置Servlet
Java服务器小程序支持:选择“Domino服务器小程序管理器”
服务器小程序URL路径:输入“/Servlet”
类路径:输入相关的类路径名称,多值之间用分号隔开
其他参数使用默认。
注意:这里的URL路径是相对于../data/domino目录的
2. 关于Servlet开发环境JSDK
标准Domino Designer的开发环境并不支持Servlet开发,因此必须使用第三方IDE或命令行JDK开发Servlet代码。这里我们使用的是Eclipse集成开发环境来开发Servlet。
Domino Servlet支持JVM和Servlet Manager。当Servlet“启用”时,JVM在HTTP服务器启动之前装载;如果使用Domino Servlet Manager,在JVM装载之后装载它;如果使用第三方Servlet Manager,则只装载JVM。
用户从浏览器访问Servlet时,URL为http://myserver/servlet/servletname。例如,输入http://myserver/servlet/DomStat运行报表统计的Servlet。
Web服务器启动时装载Servlet,此后Servlet将在内存中开始工作。但是,Servlet代码改变后,Domino HTTP服务器必须退出并重新启动,新代码才会起作用。
需要在Domino控制台中敲入“tell http restart”命令重新加载Http服务才能生效。
有关Servlet配置文件经常出现的错误有:
- 文件目录放置错误,它必须是在您的Domino数据目录下。
- 文件扩展名错误,许多编辑器例如Notepad使用TXT扩展名。
- 大小写错误,文件名如同Servlet名字是大小写敏感的。
二 安装Notessql驱动程序
Notessql是为NSF类型数据库提供的ODBC驱动程序,符合ODBC2.0规范。安装Notessql驱动程序后,NSF类型数据库就可以用SQL语句进行读取数据。目前Notessql最新的版本是3.02。首先从IBM网站下载对应的安装文件,下载完成后在运行Domino服务器的机器上进行安装并进行配置。
安装完成后在配置ODBC数据源时可以从数据源类型中进行选择来配置与NSF数据库的连接,下图是一个例子。
图3
三 配置ODBC数据源
启动控制面板->ODBC数据源,新建所需要的系统数据源:
图4
数据源类型选择“系统DSN”,点“添加”新建基于NSF的数据源:
图5
Data source name:输入数据源名称
Domino server:输入Domino服务器名称或者Domino服务器的IP地址
Database:选择对应的nsf数据库
四 编写Servlet
1. 选择熟悉的Java源程序开发环境,这里我选择的Eclipse3.1版本。
2. 创建Servlet类
public class DomStat extends HttpServlet {
}
3. Servlet源程序代码如下:
源代码下载
五 运行Servlet
编译完成后把输出的class文件拷贝到Servlet目录下面,然后直接在IE地址栏中输入http://servername:serverport/Servlet/DomStat即可,运行效果如下图:
图6
运行环境
- LotusDomino6.5以上
- NotesSql3.02 for NSF的ODBC驱动程序
- JXL.jar包读取Excel
- Office应用程序