﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-经理的空间-随笔分类-COGNOS</title><link>http://www.blogjava.net/zhangyuan/category/45560.html</link><description>经理的空间</description><language>zh-cn</language><lastBuildDate>Fri, 20 Aug 2010 22:12:55 GMT</lastBuildDate><pubDate>Fri, 20 Aug 2010 22:12:55 GMT</pubDate><ttl>60</ttl><item><title>cognos列表与图形联动效果</title><link>http://www.blogjava.net/zhangyuan/archive/2010/08/20/329492.html</link><dc:creator>え经理え</dc:creator><author>え经理え</author><pubDate>Fri, 20 Aug 2010 09:37:00 GMT</pubDate><guid>http://www.blogjava.net/zhangyuan/archive/2010/08/20/329492.html</guid><wfw:comment>http://www.blogjava.net/zhangyuan/comments/329492.html</wfw:comment><comments>http://www.blogjava.net/zhangyuan/archive/2010/08/20/329492.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangyuan/comments/commentRss/329492.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangyuan/services/trackbacks/329492.html</trackback:ping><description><![CDATA[<p>&nbsp;cognos中有列表和图形，但是表和图之间总是孤立的，刷新页面也都是全页面刷新，于是经理在想，是否有个方法能在点击cognos列</p>
<p>表时旁边的cognos图表能够实时的变动，类似flex中的绑定效果。在老板的强烈催促下，经理也没什么时间去网上去找去问，觉得凭自己以前</p>
<p>的一些J2EE老底子加上report studio中强大的HTML项目貌似可以搞定,于是开搞了...<br />
&nbsp;首先给大家看看数据库<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/cognos2/pic2010082021.jpg" width="508" height="109" /><br />
<span style="color: #0000ff"><strong>一、先用report studio建立一个带参数的cognos饼图报表(这里可以随便是什么图)，报表灰常简单<br />
</strong></span><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/cognos2/pic2010082022.jpg" width="837" height="467" /><br />
设置参数名为par3，并把此报表保存为a1<br />
<strong style="color: #0000ff">二、再用report studio建立一个列表</strong>，如图<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/cognos2/pic2010082023.jpg" width="846" height="211" /><br />
经理在这里多用了html项目，因为cognos在页面上封装的太好了，只能这样拼凑脚本。<br />
基本的原理就是在列表旁边放置一个html项目，其内容是一个iframe，其连接也就是刚刚做好的那个带参数的饼图报表。<br />
然后在列表中放置一个label，在label中设置点击事件出来iframe链接（其实这样就换了一个参数）及重新载入。</p>
<p>其中<br />
1的代码如下，他主要是点击的列表触发的事件<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">&nbsp;changeframe(par)<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img id="Codehighlighter1_60_275_Open_Image" onclick="this.style.display='none'; Codehighlighter1_60_275_Open_Text.style.display='none'; Codehighlighter1_60_275_Closed_Image.style.display='inline'; Codehighlighter1_60_275_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_60_275_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_60_275_Closed_Text.style.display='none'; Codehighlighter1_60_275_Open_Image.style.display='inline'; Codehighlighter1_60_275_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_60_275_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_60_275_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sname</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">http://localhost/cognos8/cgi-bin/cognos.cgi?b_action=cognosViewer&amp;ui.object=/content/package[@name='aa']/report[@name='a1']&amp;ui.action=run&amp;run.prompt=false&amp;p_par3=</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">par;<br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frameChart.location.href</span><span style="color: #000000">=</span><span style="color: #000000">sname;<br />
</span><span style="color: #008080">6</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">7</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
<p>&nbsp;</p>
<p>2到6主要就是定义一个含有点击事件的label<br />
2的代码为<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">u</span><span style="color: #000000">&gt;&lt;</span><span style="color: #000000">label&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">changeframe('</span></div>
<p><br />
3其实是一个报表表达式，它是参数<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">[query1].[arr2]</span></div>
<p><br />
4的代码为<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">');</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;style=</span><span style="color: #000000">"</span><span style="color: #000000">width:</span><span style="color: #000000">100</span><span style="color: #000000">%</span><span style="color: #000000">;height:</span><span style="color: #000000">100</span><span style="color: #000000">%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&gt;</span></div>
<p><br />
5也是一个报表表达式，他是设置该列显示的内容<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">[arr2]</span></div>
<p><br />
6的代码为，他收个尾</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&lt;/</span><span style="color: #000000">label&nbsp;</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">u</span><span style="color: #000000">&gt;</span></div>
<p><br />
</p>
<p>7的代码主要是iframe，然后就是刷新等待时候的一个等待提示<br />
7的代码为<br />
</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><span style="color: #008080">&nbsp;1</span><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">iframe&nbsp;frameborder</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">frameChart</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;src</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;scrolling</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">no</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;height</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">450</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;width</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">100%</span><span style="color: #000000">"</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">iframe</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">div&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">loading</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;style</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">display:block;&nbsp;padding:100px&nbsp;0&nbsp;100px&nbsp;0;text-align:center;color:#999999;font-size:12px;</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;页面加载中<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /><br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">div</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">script&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/javascript</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;&nbsp;a&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">frameChart</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;b&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">loading</span><span style="color: #000000">"</span><span style="color: #000000">);&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.style.display&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">none</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.style.display&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">block</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img id="Codehighlighter1_528_859_Open_Image" onclick="this.style.display='none'; Codehighlighter1_528_859_Open_Text.style.display='none'; Codehighlighter1_528_859_Closed_Image.style.display='inline'; Codehighlighter1_528_859_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_528_859_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_528_859_Closed_Text.style.display='none'; Codehighlighter1_528_859_Open_Image.style.display='inline'; Codehighlighter1_528_859_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;&nbsp;(window.ActiveXObject)&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_528_859_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_528_859_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.onreadystatechange&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img id="Codehighlighter1_585_851_Open_Image" onclick="this.style.display='none'; Codehighlighter1_585_851_Open_Text.style.display='none'; Codehighlighter1_585_851_Closed_Image.style.display='inline'; Codehighlighter1_585_851_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_585_851_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_585_851_Closed_Text.style.display='none'; Codehighlighter1_585_851_Open_Image.style.display='inline'; Codehighlighter1_585_851_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_585_851_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_585_851_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">this</span><span style="color: #000000">.readyState</span><span style="color: #000000">==</span><span style="color: #000000">"</span><span style="color: #000000">complete</span><span style="color: #000000">"</span><span style="color: #000000">)&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img id="Codehighlighter1_643_841_Open_Image" onclick="this.style.display='none'; Codehighlighter1_643_841_Open_Text.style.display='none'; Codehighlighter1_643_841_Closed_Image.style.display='inline'; Codehighlighter1_643_841_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_643_841_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_643_841_Closed_Text.style.display='none'; Codehighlighter1_643_841_Open_Image.style.display='inline'; Codehighlighter1_643_841_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_643_841_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_643_841_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.innerHTML&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.style.display&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">none</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.style.display&nbsp;&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">""</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img id="Codehighlighter1_864_963_Open_Image" onclick="this.style.display='none'; Codehighlighter1_864_963_Open_Text.style.display='none'; Codehighlighter1_864_963_Closed_Image.style.display='inline'; Codehighlighter1_864_963_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"  alt="" /><img style="display: none" id="Codehighlighter1_864_963_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_864_963_Closed_Text.style.display='none'; Codehighlighter1_864_963_Open_Image.style.display='inline'; Codehighlighter1_864_963_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #0000ff">else</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_864_963_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_864_963_Open_Text"><span style="color: #000000">{&nbsp;<br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a.style.display&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">block</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">隐藏&nbsp;</span><span style="color: #008000"><br />
</span><span style="color: #008080">25</span><span style="color: #008000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b.style.display&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">none</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></div>
<p><br />
拼滴我累死了.....</p>
<p>OK，我们来看看效果<br />
我先点击一下第一个单元格<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/cognos2/pic2010082024.jpg" width="801" height="383" /><br />
再点击第二个<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/cognos2/pic2010082025.jpg" width="803" height="393" /></p>
<p>注意，列表不会刷新哦，有点像ajax的效果。<br />
<br />
<br />
后来想想，其实功能挺简单的。<br />
例子比较简陋，只是想传达一个思想，希望以后大家有好东西能一起交流。<br />
</p>
<img src ="http://www.blogjava.net/zhangyuan/aggbug/329492.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangyuan/" target="_blank">え经理え</a> 2010-08-20 17:37 <a href="http://www.blogjava.net/zhangyuan/archive/2010/08/20/329492.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Cognos SDK 研究学习手册（二）之[java读取report报表返回XML]</title><link>http://www.blogjava.net/zhangyuan/archive/2010/08/05/cognos-sdk-xml-string.html</link><dc:creator>え经理え</dc:creator><author>え经理え</author><pubDate>Thu, 05 Aug 2010 13:41:00 GMT</pubDate><guid>http://www.blogjava.net/zhangyuan/archive/2010/08/05/cognos-sdk-xml-string.html</guid><wfw:comment>http://www.blogjava.net/zhangyuan/comments/327841.html</wfw:comment><comments>http://www.blogjava.net/zhangyuan/archive/2010/08/05/cognos-sdk-xml-string.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangyuan/comments/commentRss/327841.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangyuan/services/trackbacks/327841.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 对COGNOS有一定了解以后，经理逐渐发现COGNOS的强大之处，特别的立方体模型使数据仓库更有条理而且访问速度更快。但是也了解到了COGNOS的劣势，应该说是IBM整体的劣势，也就是界面太丑。虽然COGNOS也包含了几乎所有的图表，样式也可以调整。但是对COGNOS的界面调整太复杂，几乎看的比较好的COGNOS显示界面都要有HTML对象来调，更或者无论你怎么调也是基于HTML，在色彩和动画方面不会有很大的空间了。<br />
&nbsp;&nbsp;&nbsp; 于是经理在想，是不是可以把只用COGNOS对数据的抓取优势而在显示层用别的方式呈现呢(比如flex或者别的)？如果COGNOS能开发更多的前端显示接口固然好，但这是不可能的，当然，经理知道这样做会损失一部分性能，但是对现在大多对界面都很挑剔的客户，这肯定是一条比较好的路。<br />
&nbsp;&nbsp;&nbsp; OK，那么现在经理把做的一个java调用cognos端直接返回XML字节流的例子和大家分享下。<br />
<span style="color: #0000ff"><strong>一、环境</strong></span><br />
&nbsp;&nbsp;&nbsp; 硬件环境：主屏2.0Hz+内存3gb+系统32位<br />
&nbsp;&nbsp;&nbsp; 软件环境：cognos 8.41+Myeclipse8.5ga+sqlserver2000sp4<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic2010080521.jpg" width="522" height="101" /><br />
<strong style="color: #0000ff">二、IBM Cognos Connection部分</strong><br />
&nbsp;&nbsp;&nbsp; 首先，我用framework做了了一个灰常简单的包(所谓非常简单就是里面完全没有维度和亮度，直接隐射的数据库表列)，并把他发布到公共文件夹，名为test_sdk_paser<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805212.jpg" width="304" height="168" /><br />
然后在这个包下用report studio做了一个灰常简单的报表,名为test<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805221.jpg" /><br />
这个报表就是我们之后要在java中获取其数据的报表。<br />
<span style="color: #0000ff"><strong>三、COGNOS SDK调用程序</strong></span><br />
&nbsp;&nbsp;&nbsp;<span style="color: #008000">&nbsp;<strong>0.准备步骤.</strong><br />
</span>我们先要把sdk所需要的包考到项目中来。必要包的位置在D:\cognos\c8\sdk\java\lib\下，先给大家看看我的目录结构<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805220.jpg" /><br />
&nbsp;&nbsp;&nbsp; <span style="color: #008000"><strong>1.我建立了一个config.properties文件用来存放congos服务器的ip和端口</strong><br />
</span><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805222.jpg" /><br />
&nbsp;&nbsp;&nbsp; 在java中对应写一个从properties中获取数据的方法<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805223.jpg" /><br />
&nbsp;&nbsp;&nbsp;<strong> </strong><span style="color: #008000"><strong>2.弄清楚报表的xpath</strong><br />
</span>&nbsp;&nbsp;&nbsp; 这个xpath我们可以在报表的 设置属性--&gt;常规 找到<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805224.jpg" /><br />
&nbsp;&nbsp;&nbsp; xpath是十分重要的，其实报表ID也十分重要，这个经理以后会跟大家写。<br />
&nbsp;&nbsp;&nbsp;<strong> <span style="color: #008000">3.连接cognos服务器</span></strong><br />
经理这里用ReportService_ServiceLocator对象的getreportService方法来获得一个ReportService_Port对象。<br />
getreportService需要一个参数，是cognos服务器地址，http://localhost/p2pd/servlet/dispatch<br />
ReportService_Port是报表操作对象，我们就是用这个对象的run方法来运行cognos端报表。<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805225.jpg" /><br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805226.jpg" /><br />
&nbsp;&nbsp;&nbsp;<strong style="color: #008000"> 4.设置cognos认证信息</strong><br />
经理这里的cognos设置了NTML认证，那么是需要在sdk代码中设置认证信息的。<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805227.jpg" /><br />
用CAM方式进行登陆<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic2010080522.jpg" /><br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic2010080523.jpg" /><br />
&nbsp;<strong style="color: #008000">&nbsp;&nbsp; 5.设置report的参数</strong><br />
本例中用HashMap来传递report的参数，用循环的方式把外界的参数从HashMap中取出来，设置到ParameterValue的value中去。<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic2010080524.jpg" width="670" height="346" /><br />
&nbsp;&nbsp;&nbsp; <strong style="color: #008000">6.cognos运行报表设置</strong><br />
每项代表什么经理已经把注释写的很清楚了。<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic2010080525.jpg" /><br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic2010080526.jpg" /><br />
这里尤其提醒大家注意的一点是，RunOptionEnum.prompt这个参数一定要设置，设置这个参数是当cognos运行有参数的report时候，不弹出html提示窗口。经理之前就是没有设置这个参数，所以在测试带参数报表的时候搞了一天都没搞出来。<br />
那么这个option到底还有多少参数呢?经理给大家看啊看你cognos sdk的官方API<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic2010080527.jpg" /><br />
大家看到了吧，官方的API只是把枚举值做了一个罗列，具体他们是做什么的？有什么作用？什么都没说。经理当然也看了sdk的源码，希望能在源码中找到一点注释，结果是：sdk的java文件没有一行注释代码。<br />
经理在这里不想骂人，现在终于知道为什么cognos sdk这个领域这么弱了。<br />
&nbsp;&nbsp;&nbsp;<strong style="color: #008000"> 7.运行cognos报表并返回xml数据<br />
</strong>经理在这里统计了一下用sdk返回数据的时间。<br />
之前讲过用ReportService_Port的run方法可以让report运行，然后返回一个叫AsynchReply的对象，这个对象中有details[]属性，这个里面基本上包含了report返回的所有信息。而他的status属性则标识了此次请求是否成功。<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic2010080529.jpg" /><br />
<p><br />
OK,现在代码都解释完了，现在来测试下。<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805211.jpg" /><br />
经理在这里写了一个简单的测试例子，用之前讲到的test_sdk_paser包中的test进行测试<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805213.jpg" /><br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805214.jpg" /><br />
<p>下面再测试一个带参数的报表</p>
<p>把之前的那个报表加一个参数<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805215.jpg" /><br />
然后在这里输入一个1<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805216.jpg" /><br />
得到这样的数据<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805217.jpg" /><br />
<p>稍微改动下代码，然后run一下<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805218.jpg" /><br />
然后得到结果是这样的<br />
<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/zhangyuan/cognos/sdk/idx2/pic20100805219.jpg" /><br />
正好和刚刚的结果一样~~</p>
<p><br />
sdk取数据关键的也就是上面说的7个步骤。最后依然要BS一下cognos的开发者，居然在源码中一行注释都没有，帮助文档也不全面。<br />
所以还是集结大家的力量一起研究一起分享研究后的成果。<br />
欢迎大家一起来博客上讨论。</p>
<p>谢谢~</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><br />
&nbsp;</p>
<img src ="http://www.blogjava.net/zhangyuan/aggbug/327841.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangyuan/" target="_blank">え经理え</a> 2010-08-05 21:41 <a href="http://www.blogjava.net/zhangyuan/archive/2010/08/05/cognos-sdk-xml-string.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Cognos FrameWork（维度）</title><link>http://www.blogjava.net/zhangyuan/archive/2010/05/26/321895.html</link><dc:creator>え经理え</dc:creator><author>え经理え</author><pubDate>Wed, 26 May 2010 03:03:00 GMT</pubDate><guid>http://www.blogjava.net/zhangyuan/archive/2010/05/26/321895.html</guid><wfw:comment>http://www.blogjava.net/zhangyuan/comments/321895.html</wfw:comment><comments>http://www.blogjava.net/zhangyuan/archive/2010/05/26/321895.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangyuan/comments/commentRss/321895.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangyuan/services/trackbacks/321895.html</trackback:ping><description><![CDATA[看了很多Cognos建模概念性的东西，一直被&#8216;维度&#8217;这个概念困扰。Cognos把数据看成一个立方体，例如：我们把产品、地区、时间组成一个立方体，那么维度就相当于这个立方体的坐标轴，各个维度的每个交点上面的值就是量度（即数据）<br />
<img src="http://www.blogjava.net/images/blogjava_net/zhangyuan/f.JPG" alt="" border="0" /><br />
这是对模型设计一个非常重要的概念，因为平面取值的搜索条件是2个，而三围取值的搜索条件是3个，这样一来搜索速度会很大程度的提升。<br />
最重要的还不仅仅如此，因为维度还可以分层的，就是说如上图的例子，时间是可以分为，年、月、日，而产品可以分为产品系列、类型、和品牌产品，地区也可以分为地域、国家和部门。这样一来就是一个多维多层级的数据模型。<br />
<img src="http://www.blogjava.net/images/blogjava_net/zhangyuan/fg.JPG" alt="" border="0" /><br />
再一个概念就是类别。类别其实是维度多面性的一个体现。他相当于是在每一层上又多加了一个拓展，以地区为例。<br />
<img src="http://www.blogjava.net/images/blogjava_net/zhangyuan/fgr.JPG" alt="" border="0" /><br />
那么有了这些概念，我们在建模，不应该说是在建立数据库平面模型的时候就应该按照这样的概念去设计数据库。毕竟两个平面表就可以组成一个立方体的多维数据表，而表中的字段、数据可以用层和类的关系来模拟。真是受益匪浅啊~<br />
<br />
<br />
<br />
 <img src ="http://www.blogjava.net/zhangyuan/aggbug/321895.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangyuan/" target="_blank">え经理え</a> 2010-05-26 11:03 <a href="http://www.blogjava.net/zhangyuan/archive/2010/05/26/321895.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Cognos SDK 研究学习手册（一）</title><link>http://www.blogjava.net/zhangyuan/archive/2010/05/25/321752.html</link><dc:creator>え经理え</dc:creator><author>え经理え</author><pubDate>Tue, 25 May 2010 04:02:00 GMT</pubDate><guid>http://www.blogjava.net/zhangyuan/archive/2010/05/25/321752.html</guid><wfw:comment>http://www.blogjava.net/zhangyuan/comments/321752.html</wfw:comment><comments>http://www.blogjava.net/zhangyuan/archive/2010/05/25/321752.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.blogjava.net/zhangyuan/comments/commentRss/321752.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/zhangyuan/services/trackbacks/321752.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; 最近进了新公司的数据挖掘与分析组，因公司需求开始学习Cognos，前几个星期看了下Cognos的主要设计器，没想到经理马上就要我搞Cognos的sdk，这个东西国内用的人很少，网上的资料也相当少，只能硬着头皮自己看官方的文档和例子。<br />
&nbsp;&nbsp; 这里就把东西都记录下来。<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; 首先，根据看的一些资料，所谓sdk其实是Cognos公布了一些自己在设计产品时候留下的接口，可以让客户从程序端灵活的调用。但是Cognos本身具有的设计功能已经灰常强大了，一般会用到sdk的公司基本上都是遇到很J8的甲方。不过这次也给了我很大的学习机会。<br />
&nbsp;&nbsp; 那么我这里写了一个用java访问Cognos建立的维度和量度，来生成报表。<br />
&nbsp;&nbsp; 一、准备工作<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.建立一个叫
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CZHANGY%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CZHANGY%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]--><span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;">zj_cognos_inter</span><span style="font-size: 10.5pt; font-family: 宋体;">的</span><span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;">javaweb</span><span style="font-size: 10.5pt; font-family: 宋体;">项目</span>,
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CZHANGY%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]--><span style="font-size: 10.5pt; font-family: 宋体;">我这里比较熟悉用</span><span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;">struts</span><span style="font-size: 10.5pt; font-family: 宋体;">于是自己把</span><span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;">struts</span><span style="font-size: 10.5pt; font-family: 宋体;">的框架也导进来了</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.找到Cognos自带的例子，
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="ProgId" content="Word.Document" />
<meta name="Generator" content="Microsoft Word 11" />
<meta name="Originator" content="Microsoft Word 11" />
<link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CZHANGY%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" /><!--[if gte mso 9]><xml>
Normal
0
7.8 磅
0
2
false
false
false
MicrosoftInternetExplorer4
</xml><![endif]--><!--[if gte mso 9]><![endif]--><style>
<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:""@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{mso-style-parent:"";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.5pt;
font-family:"Times New Roman";}
/* Page Definitions */
@page
{}
@page Section1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
{page:Section1;}
-->
</style><!--[if gte mso 10]>
<style>
/* Style Definitions */
table.MsoNormalTable
{
mso-style-parent:"";
font-size:10.0pt;
font-family:"Times New Roman";}
</style>
<![endif]--><span style="font-size: 10.5pt; font-family: 宋体;">示例位置在</span><span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;">cognos</span><span style="font-size: 10.5pt; font-family: 宋体;">安装目录</span><span style="font-size: 10.5pt; font-family: &quot;Times New Roman&quot;;">"c8"webapps"samples"WEB-INF"src"com"cognos"jspSample</span>.<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在这里可以看到一些工具类<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<img src="http://www.blogjava.net/images/blogjava_net/zhangyuan/aa.JPG" alt="" border="0" /><br />
我们把这些类考到项目中来<br />
<img src="http://www.blogjava.net/images/blogjava_net/zhangyuan/a2.JPG" alt="" border="0" /><br />
这些类是非常重要的，很多类如API.JAVA,LogonException等都是封装的方法类，一般不需要用，不过里面有很多的方法，可供我们学习。<br />
在这里我们用的比较多的是CognosConnection和ReportBuilder这两个类。<br />
这里我用了一个配置文件来保存一些静态参数<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 255);">&lt;?</span><span style="color: rgb(255, 0, 255);">xml&nbsp;version="1.0"&nbsp;encoding="gb2312"</span><span style="color: rgb(0, 0, 255);">?&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">cognos&nbsp;</span><span style="color: rgb(255, 0, 0);">version</span><span style="color: rgb(0, 0, 255);">="8.3"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">url_home</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;![CDATA[</span><span style="color: rgb(128, 128, 128);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http://localhost/cognos8<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">]]&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">url_home</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">url_report_prefix</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;![CDATA[</span><span style="color: rgb(128, 128, 128);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/cgi-bin/cognos.cgi?b_action=cognosViewer&amp;ui.action=run&amp;ui.object=<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">]]&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">url_report_prefix</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">url_report_suffix</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;![CDATA[</span><span style="color: rgb(128, 128, 128);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;run.outputFormat=&amp;run.prompt=true&amp;cv.header=false&amp;cv.toolbar=false<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">]]&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">url_report_suffix</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">url_logoff</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;![CDATA[</span><span style="color: rgb(128, 128, 128);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/cgi-bin/cognos.cgi?b_action=xts.run&amp;m=portal/logoff.xts&amp;h_CAM_action=logoff<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">]]&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">url_logoff</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">url_cm</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">http://localhost:9300/p2pd/servlet/dispatch</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">url_cm</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">namespace</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);">my&nbsp;cognos</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">namespace</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">cognos</span><span style="color: rgb(0, 0, 255);">&gt;<br />
</span></div>
<br />
<div style="background-color: rgb(238, 238, 238); font-size: 13px; border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 0, 0);">ServletContext&nbsp;application&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;getServlet().getServletContext();<br />
&nbsp;&nbsp;&nbsp;&nbsp;HttpSession&nbsp;session&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;request.getSession();<br />
&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cfgPath&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;application.getRealPath(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">/WEB-INF/cfg.xml</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;cmUrl&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;ConfigUtil.parseXml(cfgPath,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">url_cm</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">连接cognos服务</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;CognosConnection&nbsp;conn&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;CognosConnection(cmUrl,application,session);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">-----如果是用匿名认证登陆就不需要这句话，如果是用的自己的认证就需要登陆一下<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">bb是我的表空间，zhangyuan是我本机用户名，123是我本机的密码</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;conn.logon(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">bb</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">zhangyuan</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">123</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">创建一个报表生成器的实力类</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;ReportBuilder&nbsp;rb&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;ReportBuilder(conn);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">指定生成报表的包</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;packageSp&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">/content/package[@defaultName='mbase']</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;rb.createReport(packageSp);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">用Cognos&nbsp;sql来指定生成的列</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;colRef&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;{</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">[business&nbsp;layer].[date].[mdate].[year]</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">[business&nbsp;layer].[date].[mdate].[day]</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">[business&nbsp;layer].[measures].[psend]</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">};<br />
&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;titles&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;{</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">year</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">day</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">psend</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">};<br />
&nbsp;&nbsp;&nbsp;&nbsp;rb.addColumns(titles,&nbsp;colRef);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">指定生成的报表名</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;name&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">ReportWizardReport&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">增加报表</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;rb.saveReport(name);<br />
</span></div>
 <img src ="http://www.blogjava.net/zhangyuan/aggbug/321752.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/zhangyuan/" target="_blank">え经理え</a> 2010-05-25 12:02 <a href="http://www.blogjava.net/zhangyuan/archive/2010/05/25/321752.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>