【更新】用cognos SDK将报表下载到本地
资料简介:
抱歉由于工作原因,又再次和cognos无缘了。 可能是更偏向于底层以及SDK的开发, 一直没有机会从事更多关于cognos的开发。 M@X 大虾找到我,希望我能更新一下cognos lib的连接, 一直无法让大家正常运行是我的错~~~
关于版本的问题, 我这里想说一下。 对于windows平台下,8.3. 8.4的类库没发现什么问题, 但在AIX下,8.4就必须使用8.4的类库,而且有些依赖的类库也必须替换, 这让我想起了当年一个非常小的jar包依赖,而不得不出差坐半天火车解决后,又当天坐火车回来。
先决条件:
1. 熟悉JAVA,会使用JAVA开发工具,比如说Netbeans, Eclipse等等
2. 下载依赖的cognos SDK jar包, 下载地址为:
http://www.cognoschina.net/club/thread-3475-1-2.html
3.源代码可能太长了,帖子有字数限制,想要完整的,直接下载Lesson1.rar解压后,就行了。
由于工作需要,快速的了解了cognos SDK如果将服务器上的报表下载到本地。
我们的系统是 JavaEE + cognos, 将cognos的报表信息都另存一份在 Java EE系统中, 用户点击下载时, 便触发代码来调用cognos SDK,实现下载功能。而这一切对用户来所是透明的,这也是大家期望达到的效果。
好吧,咱们现在就来做一个最简单的报表导出吧。
首先,你得有张报表,如果还不清楚如何创建报表,“Anda教程” “Andy教程”一定有适合你的。 现在假设我已经有一张报表,请看下图
里面的内容为
一会儿生成到本地的excel就包含上面内容。
然后编写一个JAVA程序,这个JAVA程序得有个几百行。 详细的代码注释,与说明都写上了, 你只要修改大概6到7处,才能保证正常运行。如果运行的时候,遇到什么问题,可以回贴,我有空就会回复的。
导出excel的流程就是:
1.连接cognos服务
2.登录cognos(没有配置CA,就不需要这一步)
3.设置cognos执行excel导出事件
4.不断的向cognos服务器发请示,判断是否已经生成excel
5.生成excel,下载到本机
运行程序的时候,可能有点慢,耐心等待一会,完成后,你可以看看你自己设定的盘符下是否已经生成了excel。其中程序运行的时候,如果输出,下列信息,则表示生成成功
加入到计划调度中:
正在执行:
执行完成:
最后打开生成的excel,发现内容属实:
问题: 在使用cognos导出excel时,容易发生类似于死锁的问题——不得不重启数据库后,才能再次倒出,而且导出的时候是依靠设定的导出时间来判断excel属于哪个用户,如果在高并发的情况下,可能会出乱子。 而Cognos SDK的doc文件,连个注释说明都没有。哎,期待高手出现。
最后附上完整的源代码如下:
关于版本的问题, 我这里想说一下。 对于windows平台下,8.3. 8.4的类库没发现什么问题, 但在AIX下,8.4就必须使用8.4的类库,而且有些依赖的类库也必须替换, 这让我想起了当年一个非常小的jar包依赖,而不得不出差坐半天火车解决后,又当天坐火车回来。
先决条件:
1. 熟悉JAVA,会使用JAVA开发工具,比如说Netbeans, Eclipse等等
2. 下载依赖的cognos SDK jar包, 下载地址为:
http://www.cognoschina.net/club/thread-3475-1-2.html
3.源代码可能太长了,帖子有字数限制,想要完整的,直接下载Lesson1.rar解压后,就行了。
由于工作需要,快速的了解了cognos SDK如果将服务器上的报表下载到本地。
我们的系统是 JavaEE + cognos, 将cognos的报表信息都另存一份在 Java EE系统中, 用户点击下载时, 便触发代码来调用cognos SDK,实现下载功能。而这一切对用户来所是透明的,这也是大家期望达到的效果。
好吧,咱们现在就来做一个最简单的报表导出吧。
首先,你得有张报表,如果还不清楚如何创建报表,“Anda教程” “Andy教程”一定有适合你的。 现在假设我已经有一张报表,请看下图
里面的内容为
一会儿生成到本地的excel就包含上面内容。
然后编写一个JAVA程序,这个JAVA程序得有个几百行。 详细的代码注释,与说明都写上了, 你只要修改大概6到7处,才能保证正常运行。如果运行的时候,遇到什么问题,可以回贴,我有空就会回复的。
导出excel的流程就是:
1.连接cognos服务
2.登录cognos(没有配置CA,就不需要这一步)
3.设置cognos执行excel导出事件
4.不断的向cognos服务器发请示,判断是否已经生成excel
5.生成excel,下载到本机
运行程序的时候,可能有点慢,耐心等待一会,完成后,你可以看看你自己设定的盘符下是否已经生成了excel。其中程序运行的时候,如果输出,下列信息,则表示生成成功
报表: /content/package[@name='MSSQL']/report[@name='test'] 将在 2009-10-25 19:09:35.687 开始运行。 cognos的event管理服务为其生成的事件唯一编号为: C0A8016801CF481301248A9EF7988002001248b631047 你可以在congos门户中的Cognos Administration->状态中,看到此即将进行的活动。 报表已经生成到本地文件系统 d:test.xls中了。 导出完成.当然,你也可以在Cognos Administration看到这个计划的一系列变化:
加入到计划调度中:
正在执行:
执行完成:
最后打开生成的excel,发现内容属实:
问题: 在使用cognos导出excel时,容易发生类似于死锁的问题——不得不重启数据库后,才能再次倒出,而且导出的时候是依靠设定的导出时间来判断excel属于哪个用户,如果在高并发的情况下,可能会出乱子。 而Cognos SDK的doc文件,连个注释说明都没有。哎,期待高手出现。
最后附上完整的源代码如下:
2009-10-25
浏览31726
下载498
已下载用户的评价8.00分
您还未下载该资料,不能发表评价;
查看我的 待评价资源
查看我的 待评价资源
trizy软件开发工程师cc
没用
你好,最近刚开始看SDK,有个需求咨询一下,现要使用SDK实现自动导出同时导入到另一台环境上,相当于开发环境的包导入到测试环境。 方法:分三部分,制作两个bat文件实现 一、配置相关参数,实现指定文件夹的导出----export.bat 二、将导出成功后的包(../Deployment目录下),放入到测试机子对应的../Deployment目录下 三、获取该目录下得包,实现导入------import.bat 现同台服务器的导入导出已实现,因为导入导出包都读取Deployment目录下的文件 问题: 上述第二步的功能如何实现? 我想的是在开发环境点击export.bat实现导出同时../Deployment目录下数据包copy放入一共享文件夹,然后在另一台服务器(测试环境)点击import.bat读取共享文件夹内的数据copy 至测试环境../Deployment目录下实现导入,请教这步SDK如何读取../Deployment目录? [b]回复 [url=http://www.cognoschina.net/club/redirect.php?goto=findpost&pid=20093&ptid=3476]5#[/url] [i]anda[/i] [/b]
你好,最近刚开始看SDK,有个需求咨询一下,现要使用SDK实现自动导出同时导入到另一台环境上,相当于开发环境的包导入到测试环境。 方法:分三部分,制作两个bat文件实现 一、配置相关参数,实现指定文件夹的导出----export.bat 二、将导出成功后的包(../Deployment目录下),放入到测试机子对应的../Deployment目录下 三、获取该目录下得包,实现导入------import.bat 现同台服务器的导入导出已实现,因为导入导出包都读取Deployment目录下的文件 问题: 上述第二步的功能如何实现? 我想的是在开发环境点击export.bat实现导出同时../Deployment目录下数据包copy放入一共享文件夹,然后在另一台服务器(测试环境)点击import.bat读取共享文件夹内的数据copy 至测试环境../Deployment目录下实现导入,请教这步SDK如何读取../Deployment目录? [b]回复 [url=http://www.cognoschina.net/club/redirect.php?goto=findpost&pid=20093&ptid=3476]5#[/url] [i]anda[/i] [/b]