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