﻿<?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-激情梦想</title><link>http://www.blogjava.net/lcwlv929/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 03 May 2026 02:16:02 GMT</lastBuildDate><pubDate>Sun, 03 May 2026 02:16:02 GMT</pubDate><ttl>60</ttl><item><title>android sdcard </title><link>http://www.blogjava.net/lcwlv929/articles/355856.html</link><dc:creator>炜</dc:creator><author>炜</author><pubDate>Fri, 05 Aug 2011 03:40:00 GMT</pubDate><guid>http://www.blogjava.net/lcwlv929/articles/355856.html</guid><wfw:comment>http://www.blogjava.net/lcwlv929/comments/355856.html</wfw:comment><comments>http://www.blogjava.net/lcwlv929/articles/355856.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcwlv929/comments/commentRss/355856.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcwlv929/services/trackbacks/355856.html</trackback:ping><description><![CDATA[<p>在Andorid开发中经常遇到与SD卡有关的调试，比如MP3文件、图片文件等。</p>
<p>&nbsp;</p>
<p>在使用模拟器开发时，可以通过硬盘来模拟SD卡。具体做法是：</p>
<p>&nbsp;</p>
<p><strong>1.创建一个SD卡镜像文件</strong></p>
<p>&nbsp;&nbsp;&nbsp; 打开cmd，我是进入到c盘根目录下，输入如下命令：mksdcard 1024M sdcard.img<br /><br />&nbsp;&nbsp;&nbsp; 该命令会在当前目录(我即是c盘根目录)下生成一个sdcard.img文件，该文件就是Android模拟器的SD卡镜像文件。<br /><br />&nbsp;&nbsp;&nbsp; 1024M表示1024兆，即该SD卡有1个G的容量，也可用K做单位（1M=1024K），K,M必须大写。<br /><br />&nbsp;&nbsp;&nbsp; 目前Android支持8M~128G的SD卡。</p>
<p>&nbsp;</p>
<p><strong>2.关联SD卡和模拟器</strong></p>
<p>&nbsp;&nbsp; 就是让模拟器知道它的SD卡是谁，路径是什么。</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; 在eclipse中使用了ADT插件。eclipse -&gt; windows-&gt;Android AVD Manager ，弹出一个窗口，</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; 在SDCard后面的框中输入：c：\sdcard.img ，即是第一步创建的SD卡镜像文件的位置。先点击create avd，</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp; 然后点击 finish 结束。</p>
<p>&nbsp;</p>
<p><strong>3、向SD卡中导文件</strong><br />&nbsp;&nbsp; 这一步需要把模拟器运行起来。</p>
<p>&nbsp;&nbsp;</p>
<p>&nbsp;在cmd中，命令如下：adb push test.mp3 sdcard/test.mp3</p>
<p>&nbsp;</p>
<p>这会将本地当前目录下的test.mp3文件拷到sdcard中，文件名不变。前一个test.mp3是本地文件的路径，sdcard是目的sd卡镜像的文件名（去掉后缀）。</p>
<p>&nbsp;&nbsp;</p>
<p>&nbsp;</p>
<p><strong>4、在模拟器中使用SD卡中的文件</strong></p>
<p><strong></strong></p>
<p>导入文件后，如果要在模拟器中访问，还需要在模拟器中的Dev tools里面Media scanner&nbsp; scan 一下媒体文件。<br /><br /></p>
<p><strong>5、说明</strong>
<p><strong></strong></p>默认时adb.exe在platform-tools路径下。<br /><br />转自：<a href="http://www.iteye.com/topic/396263">http://www.iteye.com/topic/396263</a></p><img src ="http://www.blogjava.net/lcwlv929/aggbug/355856.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcwlv929/" target="_blank">炜</a> 2011-08-05 11:40 <a href="http://www.blogjava.net/lcwlv929/articles/355856.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>frame</title><link>http://www.blogjava.net/lcwlv929/articles/199184.html</link><dc:creator>炜</dc:creator><author>炜</author><pubDate>Thu, 08 May 2008 03:37:00 GMT</pubDate><guid>http://www.blogjava.net/lcwlv929/articles/199184.html</guid><wfw:comment>http://www.blogjava.net/lcwlv929/comments/199184.html</wfw:comment><comments>http://www.blogjava.net/lcwlv929/articles/199184.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcwlv929/comments/commentRss/199184.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcwlv929/services/trackbacks/199184.html</trackback:ping><description><![CDATA[<p>&lt;html&gt;<br />
&nbsp;&lt;head&gt;<br />
&nbsp;&nbsp;&lt;title&gt;&lt;/title&gt;<br />
&nbsp;&nbsp;&lt;script&gt;<br />
function showLeftFrame() {<br />
&nbsp;if (document.all.leftTd.style.display == 'none'){<br />
&nbsp;&nbsp;document.all.middleTd.innerText = '3';<br />
&nbsp;&nbsp;document.all.leftTd.style.display = '';<br />
&nbsp;} else {<br />
&nbsp;&nbsp;document.all.middleTd.innerText = '4';<br />
&nbsp;&nbsp;document.all.leftTd.style.display = 'none';<br />
&nbsp;}<br />
}<br />
&lt;/script&gt;<br />
&nbsp;&lt;/head&gt;</p>
<p>&nbsp;&lt;body&gt;<br />
&nbsp;&nbsp;&lt;table width="800" height="423" align="center"&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td height="100" colspan="3"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;iframe name="top" src="top.htm" scrolling="no" frameborder="0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;marginheight="0" marginwidth="0" width="100%" height="100%"&gt;&lt;/iframe&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td id="leftTd" width="150" height="500"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;iframe name="left" src="left.htm" scrolling="no" frameborder="0"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;marginheight="0" marginwidth="0" width="100%" height="100%"&gt;&lt;/iframe&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td id="middleTd" width="10" onclick="showLeftFrame()"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bgcolor="#ddeeff" style="font-family:Webdings;cursor:hand;"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;td height="500"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;iframe name="content" src="content.jsp" scrolling="no"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;frameborder="0" marginheight="0" marginwidth="0" width="100%"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height="100%"&gt;&lt;/iframe&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&lt;/tr&gt;<br />
&nbsp;&nbsp;&lt;/table&gt;<br />
&nbsp;&lt;/body&gt;<br />
&lt;/html&gt;<br />
</p>
<img src ="http://www.blogjava.net/lcwlv929/aggbug/199184.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcwlv929/" target="_blank">炜</a> 2008-05-08 11:37 <a href="http://www.blogjava.net/lcwlv929/articles/199184.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2的ONGL标签详解--1</title><link>http://www.blogjava.net/lcwlv929/articles/192700.html</link><dc:creator>炜</dc:creator><author>炜</author><pubDate>Mon, 14 Apr 2008 03:13:00 GMT</pubDate><guid>http://www.blogjava.net/lcwlv929/articles/192700.html</guid><wfw:comment>http://www.blogjava.net/lcwlv929/comments/192700.html</wfw:comment><comments>http://www.blogjava.net/lcwlv929/articles/192700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcwlv929/comments/commentRss/192700.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcwlv929/services/trackbacks/192700.html</trackback:ping><description><![CDATA[如何把action中的值带到页面展示出来<br />
<br />
(先定义一个action，有个<span id="_42_309_Open_Text"><span style="color: rgb(0,0,0)"><span style="color: rgb(255,0,0)">username</span>字段，<span style="color: rgb(255,0,0)">假设value="song"</span>想传递到页面上)</span></span><br />
<br />
<img id="_42_309_Open_Image" onclick="this.style.display=''none''; document.getElementById(''_42_309_Open_Text'').style.display=''none''; document.getElementById(''_42_309_Closed_Image'').style.display=''inline''; document.getElementById(''_42_309_Closed_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="_42_309_Closed_Image" style="display: none" onclick="this.style.display=''none''; document.getElementById(''_42_309_Closed_Text'').style.display=''none''; document.getElementById(''_42_309_Open_Image'').style.display=''inline''; document.getElementById(''_42_309_Open_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">class</span><span style="color: rgb(0,0,0)">&nbsp;Login&nbsp;</span><span style="color: rgb(0,0,255)">extends</span><span style="color: rgb(0,0,0)"> ActionSupport&nbsp;</span><span id="_42_309_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)">...</span><span id="_42_309_Open_Text"><span style="color: rgb(0,0,0)">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">private</span><span style="color: rgb(0,0,0)">&nbsp;String&nbsp;<span style="color: rgb(255,0,0)">username</span>;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img id="_124_152_Open_Image" onclick="this.style.display=''none''; document.getElementById(''_124_152_Open_Text'').style.display=''none''; document.getElementById(''_124_152_Closed_Image'').style.display=''inline''; document.getElementById(''_124_152_Closed_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_124_152_Closed_Image" style="display: none" onclick="this.style.display=''none''; document.getElementById(''_124_152_Closed_Text'').style.display=''none''; document.getElementById(''_124_152_Open_Image'').style.display=''inline''; document.getElementById(''_124_152_Open_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)">&nbsp;String&nbsp;execute()&nbsp;</span><span style="color: rgb(0,0,255)">throws</span><span style="color: rgb(0,0,0)">&nbsp;Exception&nbsp;</span><span id="_124_152_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)">...</span><span id="_124_152_Open_Text"><span style="color: rgb(0,0,0)">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">return</span><span style="color: rgb(0,0,0)">&nbsp;INPUT;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0,0,0)"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="_187_218_Open_Image" onclick="this.style.display=''none''; document.getElementById(''_187_218_Open_Text'').style.display=''none''; document.getElementById(''_187_218_Closed_Image'').style.display=''inline''; document.getElementById(''_187_218_Closed_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_187_218_Closed_Image" style="display: none" onclick="this.style.display=''none''; document.getElementById(''_187_218_Closed_Text'').style.display=''none''; document.getElementById(''_187_218_Open_Image'').style.display=''inline''; document.getElementById(''_187_218_Open_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)">&nbsp;String&nbsp;getUsername()&nbsp;</span><span id="_187_218_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)">...</span><span id="_187_218_Open_Text"><span style="color: rgb(0,0,0)">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">return</span><span style="color: rgb(0,0,0)">&nbsp;username;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0,0,0)"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="_266_306_Open_Image" onclick="this.style.display=''none''; document.getElementById(''_266_306_Open_Text'').style.display=''none''; document.getElementById(''_266_306_Closed_Image'').style.display=''inline''; document.getElementById(''_266_306_Closed_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="_266_306_Closed_Image" style="display: none" onclick="this.style.display=''none''; document.getElementById(''_266_306_Closed_Text'').style.display=''none''; document.getElementById(''_266_306_Open_Image'').style.display=''inline''; document.getElementById(''_266_306_Open_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">public</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">void</span><span style="color: rgb(0,0,0)">&nbsp;setUsername(String&nbsp;username)&nbsp;</span><span id="_266_306_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)">...</span><span id="_266_306_Open_Text"><span style="color: rgb(0,0,0)">{<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0,0,255)">this</span><span style="color: rgb(0,0,0)">.username&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;username;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0,0,0)"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><br />
&nbsp; 下面是页面上显示username的一些尝试：<br />
<br />
<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0,0,0)">================</span><span style="color: rgb(0,0,0)">直接把值显示出来。。。</span><span style="color: rgb(0,0,0)">=====================&lt;</span><span style="color: rgb(0,0,0)">br</span><span style="color: rgb(0,0,0)">&gt;</span><span style="color: rgb(0,0,0)"><br style="color: rgb(51,153,102)" />
<span style="color: rgb(51,153,102)">&nbsp;1.s:property标签 &nbsp; </span></span><span style="color: rgb(51,153,102)">&lt;s:property&nbsp;value="username"/&gt;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<br />
&nbsp;2.$符号表达式&nbsp;&nbsp;&nbsp;&nbsp; $</span><span id="_144_153_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)">...</span><span id="_144_153_Open_Text" style="color: rgb(51,153,102)">{username}</span><span style="color: rgb(51,153,102)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color: rgb(0,0,0)"><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
<span style="color: rgb(51,102,255)">&nbsp; <br />
上面的两种方式都是可以显示"song"出来的，如果只用来显示，推荐</span></span><span style="color: rgb(51,102,255)">$</span><span id="_144_153_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)">...</span><span id="_144_153_Open_Text" style="color: rgb(51,102,255)">{username}</span><span style="color: rgb(51,102,255)"> ，简单明了。不过$</span><span id="_144_153_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)">...</span><span id="_144_153_Open_Text" style="color: rgb(51,102,255)">{}不可以放在struts2自带的&lt;s:xxx &gt; 标签中混用，会报不支持变量表达式异常。</span><span style="color: rgb(51,102,255)"> </span><span style="color: rgb(0,0,0)"><br />
<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></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)">=====================&lt;</span><span style="color: rgb(0,0,0)">br</span><span style="color: rgb(0,0,0)">&gt;</span><span style="color: rgb(0,0,0)"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /><br />
&nbsp; 1.#表达式&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(255,102,0)">&nbsp;<span style="color: rgb(255,0,0)">&nbsp;#username&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><br style="color: rgb(255,0,0)" />
<span style="color: rgb(255,0,0)">&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; 失败，页面输出"#username</span></span><span style="color: rgb(255,0,0)"><span style="color: rgb(0,0,0)"><span style="color: rgb(255,0,0)">"</span><br />
<br />
&nbsp; 2.s:property标签1:&nbsp;&nbsp;</span><span style="color: rgb(255,0,0)">&lt;s:property&nbsp;value="#username"/&gt;<br />
&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; 失败，页面无输出</span><br />
<span style="color: rgb(0,0,0)"><br />
&nbsp; 3.s:property标签2:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(51,153,102)">&lt;s:property&nbsp;value="#request.username"/&gt; </span><span style="color: rgb(0,0,0)"><br style="color: rgb(51,153,102)" />
<span style="color: rgb(51,153,102)">&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; 成功，页面输出"song"(这种属性放进了request中)</span><br />
<br />
&nbsp; 4.s:property标签3:&nbsp;&nbsp;</span><span style="color: rgb(255,0,0)">&lt;s:property&nbsp;value="#session.username"/&gt; <br />
&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; 失败，页面无输出(没有放到session中)</span><br />
<span style="color: rgb(0,0,0)"><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" /></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)">试一下。。。</span><span style="color: rgb(0,0,0)">=====================&lt;</span><span style="color: rgb(0,0,0)">br</span><span style="color: rgb(0,0,0)">&gt;</span><span style="color: rgb(0,0,0)">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />&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 />
<img id="_577_586_Open_Image" onclick="this.style.display=''none''; document.getElementById(''_577_586_Open_Text'').style.display=''none''; document.getElementById(''_577_586_Closed_Image'').style.display=''inline''; document.getElementById(''_577_586_Closed_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="_577_586_Closed_Image" style="display: none" onclick="this.style.display=''none''; document.getElementById(''_577_586_Closed_Text'').style.display=''none''; document.getElementById(''_577_586_Open_Image'').style.display=''inline''; document.getElementById(''_577_586_Open_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: rgb(0,0,0)">1.%</span><span style="color: rgb(0,0,0)">表达式&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(255,0,0)">%</span><span id="_577_586_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)">...</span><span id="_577_586_Open_Text" style="color: rgb(255,0,0)">{username}</span><span style="color: rgb(255,0,0)">&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 />
&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; 失败，页面输出"</span><span style="color: rgb(0,0,0)"><span style="color: rgb(255,0,0)">%{username}"</span><br />
<br />
<img id="_630_641_Open_Image" onclick="this.style.display=''none''; document.getElementById(''_630_641_Open_Text'').style.display=''none''; document.getElementById(''_630_641_Closed_Image'').style.display=''inline''; document.getElementById(''_630_641_Closed_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="_630_641_Closed_Image" style="display: none" onclick="this.style.display=''none''; document.getElementById(''_630_641_Closed_Text'').style.display=''none''; document.getElementById(''_630_641_Open_Image'').style.display=''inline''; document.getElementById(''_630_641_Open_Text'').style.display=''inline'';" alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span style="color: rgb(0,0,0)">2.%</span><span style="color: rgb(0,0,0)">表达式&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(255,0,0)">&nbsp;&nbsp;</span></span><span style="color: rgb(255,0,0)">%</span><span id="_630_641_Closed_Text" style="border-right: rgb(128,128,128) 1px solid; border-top: rgb(128,128,128) 1px solid; display: none; border-left: rgb(128,128,128) 1px solid; border-bottom: rgb(128,128,128) 1px solid; background-color: rgb(255,255,255)">...</span><span id="_630_641_Open_Text" style="color: rgb(255,0,0)">{''username''}</span><span style="color: rgb(255,0,0)">&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 />
&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; 失败，页面输出"%{''username''}"</span><br />
<br />
<span style="color: rgb(0,0,0)"><img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />3.s:property标签4:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: rgb(51,153,102)">&nbsp;</span></span><span style="color: rgb(51,153,102)">&lt;s:property&nbsp;value="%{username}"/&gt;<br />
&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; 成功，页面输出"song"</span><br />
<span style="color: rgb(0,0,0)"><br />
<img alt="" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top" />4.s:property标签Error4:&nbsp;<span style="color: rgb(255,0,0)">&nbsp;</span></span><span style="color: rgb(255,0,0)">&lt;s:property&nbsp;value="%{''username''}"/&gt;<br />
&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; 失败，页面输出"username"</span><br />
</span><br />
测试了一大把，最后总结出了4种拿到值得办法：<br />
<span style="color: rgb(51,204,204)">&nbsp;&lt;s:property value="username"/&gt;</span><br style="color: rgb(51,204,204)" />
<span style="color: rgb(51,204,204)">${username}&nbsp;&nbsp;&nbsp; </span><br style="color: rgb(51,204,204)" />
<span style="color: rgb(51,204,204)">&lt;s:property value="#request.username"/&gt;&nbsp; （#session. #application.类似）</span><br style="color: rgb(51,204,204)" />
<span style="color: rgb(51,204,204)">&lt;s:property value="%{username}"/&gt;</span><br />
<img src ="http://www.blogjava.net/lcwlv929/aggbug/192700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcwlv929/" target="_blank">炜</a> 2008-04-14 11:13 <a href="http://www.blogjava.net/lcwlv929/articles/192700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用eclipse在jsp上显示水晶报表（六）参数 （转载）</title><link>http://www.blogjava.net/lcwlv929/articles/189303.html</link><dc:creator>炜</dc:creator><author>炜</author><pubDate>Fri, 28 Mar 2008 08:50:00 GMT</pubDate><guid>http://www.blogjava.net/lcwlv929/articles/189303.html</guid><wfw:comment>http://www.blogjava.net/lcwlv929/comments/189303.html</wfw:comment><comments>http://www.blogjava.net/lcwlv929/articles/189303.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcwlv929/comments/commentRss/189303.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcwlv929/services/trackbacks/189303.html</trackback:ping><description><![CDATA[<p><strong><font size="3">一. </font></strong><font size="3"><strong>把参数完全交过水晶报表</strong></font></p>
<p><font size="3"><strong>&nbsp;&nbsp;&nbsp;</strong></font><font size="2">打开报表文件.rpt，在字段资源管理器里，右击参数－》新建</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; 在下面的选项属性里可以设置参数的名称，类型，提示文本，是否允许多个值，值范围类型（如果是字符串用离散，日期或数字用范围）</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp; 注意：上面都是比填的，如果参数是用来对应某个字段的，类型必需跟该字段一样。</font></p>
<p><font size="2">&nbsp;&nbsp; 在值属性里可以建一个值的列表，点上去，然后点右边的按钮就进入值列表编辑框了；是否提示时仅显示说明；编辑掩码，可以给参数的指定一定的格式；最小长度；最大长度；</font></p>
<p><font size="2">&nbsp;&nbsp; 现在你可以给这个报表创建一个查看器jsp，加viewer标签的就行了。</font></p>
<p><font size="2">&nbsp;&nbsp; 注意这个jsp的页面编码设置为UTF-8.</font></p>
<p><font size="3"><strong>二.&nbsp;&nbsp; 参数所需包跟相关对象</strong></font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp; 1.&nbsp;&nbsp;<strong>需要的java类和包&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</strong></font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font size="2"> com.crystaldecisions.sdk.occa.report.data.*</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; com.crystaldecisions.reports.sdk.DataDefController</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp; 2.&nbsp;&nbsp;<strong>创建一个存储参数字段的 Fields 对象。 参数对象都是放在这个里面，通过Fields对象可以添加、删除和查找参数对象</strong>&nbsp;&nbsp;&nbsp;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fields fields = new Fields();</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp; 3.&nbsp;&nbsp; ParameterField 参数字段对象。 </font></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterField paramField1 = new ParameterField();</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp; 4. <strong>为想设置的每个参数字段创建一个 Values 对象。Values对象是用来存储ParameterFieldDiscreteValue 对象或 ParameterFieldRangeValue 对象</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Values newVals1 = new Values();</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp; 5. <strong>离散值对象ParameterFieldDiscreteValue 对象</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterFieldDiscreteValue newDiscVal1 = new ParameterFieldDiscreteValue();</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterFieldDiscreteValue[ ] newDiscVals = new ParameterFieldDiscreteValue[ ];</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>范围值对象ParameterFieldRangeValue 对象</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterFieldRangeValue newRangeVal1 = new&nbsp;&nbsp; ParameterFieldRangeValue();</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterFieldRangeValue[ ] newRangeVals = new&nbsp;&nbsp; ParameterFieldRangeValue[ ];</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong> 他们的大概关系：一个Fields－》多个ParameterField</strong></p>
<p class="code"><strong>&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; 一个ParameterField－》一个Values</strong></p>
<p class="code"><strong>&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; 一个Values－》多个ParameterFieldDiscreteValue 或ParameterFieldRangeValue</strong></p>
<p class="code"><font size="3"><strong>三.&nbsp;&nbsp; 后台设置参数</strong></font></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.&nbsp;&nbsp;<strong>参数的管理都是通过 报表DataDefController 来控制的。</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataDefController dataDefController ＝ new DataDefController();</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于主报表 dataDefController = reportClientDoc.getDataDefController();</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于子报表</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataDefController = clientDoc.getSubreportController().getSubreport(reportName).getDataDefController();</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.&nbsp;&nbsp;<strong>参数的设置信息是通过 IDataDefinition 来获取的。</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IDataDefinition dataDefinition = dataDefController.getDataDefinition();&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如:Fields fields = dataDefController.getDataDefinition().getParameterFields() ;</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>而对参数的设置改动是通过 ParameterFieldController 来控制的</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterFieldController&nbsp;&nbsp; paramfieldcontroller= dataDefController.getParameterFieldController( );</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如: 给主报表参数字段设置单个值</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paramFieldController.setCurrentValue("", "StringParam", new String("Hello"));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //字符串类型<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paramFieldController.setCurrentValue("", "BooleanParam", new Boolean(true));&nbsp;&nbsp;&nbsp;&nbsp; //布尔类型<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paramFieldController.setCurrentValue("", "CurrencyParam", new Double(123.45));//货币类型<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paramFieldController.setCurrentValue("", "NumberParam", new Integer(123));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //数字类型</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 给某个参数字段设置多个离散值</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object [] multiVals = {"String1", "String2", "String3"};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //注意要对应参数字段的类型<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paramFieldController.setCurrentValues("", "StringMultiParam", multiVals);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.&nbsp;&nbsp;<strong>取得Fields</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Fields fields = dataDefController.getDataDefinition().getParameterFields() ;</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.&nbsp;&nbsp;<strong>对已经建立的参数字段，通过Fields的在知道名字的情况下通过Find方法取得</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterField paramField = (ParameterField)dataDefController.getDataDefinition().getParameterFields().findField(parameterName, FieldDisplayNameType.fieldName, Locale.getDefault());</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 参数字段七个基本类型<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 布尔(Boolean) 、货币(Double)、数字(Integer)、字符串(String)、日期、日期时间、时间(Date)</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 参数的值必须跟参数的类型符合才行.&nbsp;&nbsp;</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5.&nbsp;&nbsp;<strong>如果是新建的参数字段，那必需设置参数字段的报表名称设置为与参数关联的报表名称。如果参数字段用于主报表，则使用空白字符串 ("")。使用 setReportName 方法设置报表名称。</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paramField1.setName("Country");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置名字</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paramField1.setReportName("");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //如果为 "&nbsp;&nbsp; "就是用于主报表,如果子报表，要设置字报表名</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong> 如果是已经在rpt中存在的参数，就不用设置名字和报表名称了，也不用添加到Fields中。</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newDiscVal1.setValue("China");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置离散值，后面将添加到参数值列表中</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newDiscVal1.setDescription("The country is China.");//这个要不要都没关系</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将参数字段值添加到 Values 集合对象。&nbsp;&nbsp;&nbsp;</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newVals1.add(newDiscVal1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //可以添加多个</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为参数字段设置 Values 集合。</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pfield1.setCurrentValues(vals1);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 向 Fields 对象添加每个参数字段。 Fields 对象现在可用于查看器&nbsp;&nbsp;&nbsp;</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fields.add(pfield1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //非新建参数不用</p>
<p class="code">&nbsp;&nbsp;&nbsp; 下面是重点啦。虽然很简单，但是折磨了我三天</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp; 6.&nbsp;&nbsp;<strong>改动查看报表JSP页面的参数字段离散值列表或范围值列表</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 先用取得paramField对象，这个前面有说怎么取得，这里不多说了</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 要添加的离散值</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterFieldDiscreteValue newDiscValue = new ParameterFieldDiscreteValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newDiscValue.setValue(newValue);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 取得原来的Values集合，在把Values集合克隆到一个新的Values集合。我原来是用paramField.getValues()，不知道是JRC中出错还是什么，这个方法竟然完全没用，paramField.getDefaultValues().才能真正的取得参数对象的Values集合</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Values newVals = (Values)paramField.getDefaultValues().clone(true);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在原来的离散值中再添加多个离散值</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; newVals.add(newDiscValue);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为参数字段设置新的Values集合。这里原来是用paramField.setCurrentValues(newVals)，也是不行，要用下面的&nbsp;&nbsp; paramField.setDefaultValues(newVals);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paramField.setDefaultValues(newVals);</p>
<p class="code">7.&nbsp;&nbsp;&nbsp;<strong>禁用用户提示，自动使用设置的参数字段值。这在以下情况中特别有用：所设置的参数字段值对于用户为未知（例如系统生成的参数）。</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp; 　通过boolean multiValue = paramField.getAllowMultiValue();判断报表是否允许多值。<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; 　不允许多值的情况下：</p>
<p class="code">　　clientDoc.getDataDefController().getParameterFieldController().setCurrentValue(reportName, parameterName , newValue);</p>
<p class="code">　　如果是用于主报表,reportName为" ",否则为子报表名称。</p>
<p class="code">　　允许多值的情况下：</p>
<p class="code">　　①如果不考虑原来的离散值列表</p>
<p class="code">　　 String[] newValues = new String[]{"China","USA",..........};</p>
<p class="code">　　clientDoc.getDataDefController().getParameterFieldController().setCurrentValues(reportName, parameterName ,newValues);</p>
<p class="code">　</p>
<p class="code">　　②在原来离散值列表的基础上添加新的离散值，并设置</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataDefController dataDefController = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(reportName.equals(""))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataDefController = clientDoc.getDataDefController();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataDefController = clientDoc.getSubreportController().getSubreport (reportName).getDataDefController();<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ParameterField paramField = (ParameterField)dataDefController.getDataDefinition().getParameterFields().findField(parameterName, FieldDisplayNameType.fieldName, Locale.getDefault());</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp; ParameterFieldDiscreteValue newDiscValue = new ParameterFieldDiscreteValue();<br />
&nbsp;&nbsp;&nbsp;&nbsp; newDiscValue.setValue(newValue);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp; Values newVals = (Values)paramField.getDefaultValues().clone(true);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp; newVals.add(newDiscValue);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp; clientDoc.getDataDefController().getParameterFieldController().setCurrentValue(reportName, parameterName ,newVals);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>查看器的设置</strong></p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; crystalReportPageViewer.setParameterFields(fields);//这个感觉用不用都没关系</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; crystalReportPageViewer.setEnableParameterPrompt(false);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 报表的参数设置好后，则调用查看器的刷新方法以应用新的参数。</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(session.getAttribute("refresh")==null){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; crystalReportPageViewer.refresh();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.setAttribute("refresh","true");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp; 调用 processHttpRequest 方法以在当前的浏览器窗口中启动此查看器。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp; crystalReportPageViewer.processHttpRequest(request, response, getServletConfig().getServletContext(), null);</p>
<p class="code">&nbsp;&nbsp;&nbsp;&nbsp;<strong>注意不要在查看器里面设置刷新按钮，一按就会丢失参数设置。页面编码UTF-8。如果不行就tomcat profect－》reload this context</strong></p>
<img src ="http://www.blogjava.net/lcwlv929/aggbug/189303.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcwlv929/" target="_blank">炜</a> 2008-03-28 16:50 <a href="http://www.blogjava.net/lcwlv929/articles/189303.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用eclipse在jsp上显示水晶报表（五）viewer标签应用（转载）</title><link>http://www.blogjava.net/lcwlv929/articles/189302.html</link><dc:creator>炜</dc:creator><author>炜</author><pubDate>Fri, 28 Mar 2008 08:49:00 GMT</pubDate><guid>http://www.blogjava.net/lcwlv929/articles/189302.html</guid><wfw:comment>http://www.blogjava.net/lcwlv929/comments/189302.html</wfw:comment><comments>http://www.blogjava.net/lcwlv929/articles/189302.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcwlv929/comments/commentRss/189302.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcwlv929/services/trackbacks/189302.html</trackback:ping><description><![CDATA[<h6><font size="5">一. 完全傻瓜式</font></h6>
<ol>
    <li value="1">将一个指向查看器标记库描述符文件的引用添加到 JSP 页面的顶部。 同时必须确保相应的 JAR 文件和附加支持文件都存在。
    <p class="code">&lt;%@ taglib uri="/crystal<nobr>-t</nobr>ags<nobr>-r</nobr>eportviewer.tld" prefix="crviewer" %&gt;<em class="tipnote">注意：&nbsp;&nbsp;&nbsp;&nbsp;</em>可以为 prefix 属性指定任何名称。prefix 确定要使用什么标记前缀来访问标记库的标记。</p>
    <li value="2">创建一个开始 viewer 标记。 在此标记中，指定查看器名称和报表源的类型。
    <p class="code">&lt;crviewer:viewer viewerName="CrystalViewer" reportSourceType="reportingComponent" &gt;</p>
    <li value="3">创建必需的 report 标记。
    <p class="indent">此标记指定要显示的报表以及要用于缓存报表源的会话变量。</p>
    <p class="indent"><a name="250719"></a>&lt;crviewer:report reportName="/reports/sample.rpt"/&gt;</p>
    <li value="4">结束 viewer 标记。 JSP 页面现在即可查看名为 <code><font face="新宋体">sample.rpt</font></code> 的报表。 </li>
</ol>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/crviewer:viewer&gt;</p>
<p><font size="5"><strong>二. 自定义报表源式</strong></font></p>
<font size="5">
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.&nbsp;&nbsp;&nbsp; 将一个指向查看器标记库描述符文件的引用添加到 JSP 页面的顶部。 同时必须确保相应的 JAR 文件和附加支持文件都存在。 </font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%@ import="com.crystaldecisions.reports.sdk.ReportClientDocument"&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;%@ taglib uri="/crystal<nobr>-t</nobr>ags<nobr>-r</nobr>eportviewer.tld" prefix="crviewer" %&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<em class="tipnote">注意：&nbsp;&nbsp;&nbsp;&nbsp;</em>可以为 prefix 属性指定任何名称。prefix 确定要使用什么标记前缀来访问标记库的标记。</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.&nbsp;&nbsp; 创建报表源，设置报表源的属性，把报表源缓存于session变量中（必需的）</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;% <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; final String reportName="rpt/Sample.rpt";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReportClientDocument crDoc = new ReportClientDocument();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; crDoc.open(reportName,0);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; crDoc.getDatabaseController().logon("sa","");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.setAttribute("reportSource",crDoc.getReportSource());<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; %&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意：如果viewer标记的reportSourceVar属性的默认值是crystalReportSource，如果用这个做session变量的名称，那可以不用设置reportSourceVar。</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.&nbsp;&nbsp;&nbsp; 创建一个开始 viewer 标记。 在此标记中，指定查看器名称和报表源的类型。 </font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;crviewer:viewer viewerName="CrystalViewer" reportSourceType="pageServer" reportSourceVar="reportSource"&gt;</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.&nbsp;&nbsp; 结束 viewer 标记。 JSP 页面现在即可查看名为 <font face="Courier New">Sample</font>的报表。</font></p>
<p><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/crviewer:viewer&gt;</font></p>
</font>
<img src ="http://www.blogjava.net/lcwlv929/aggbug/189302.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcwlv929/" target="_blank">炜</a> 2008-03-28 16:49 <a href="http://www.blogjava.net/lcwlv929/articles/189302.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用eclipse在jsp上显示水晶报表（四）POJO填充报表（转载）</title><link>http://www.blogjava.net/lcwlv929/articles/189301.html</link><dc:creator>炜</dc:creator><author>炜</author><pubDate>Fri, 28 Mar 2008 08:49:00 GMT</pubDate><guid>http://www.blogjava.net/lcwlv929/articles/189301.html</guid><wfw:comment>http://www.blogjava.net/lcwlv929/comments/189301.html</wfw:comment><comments>http://www.blogjava.net/lcwlv929/articles/189301.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcwlv929/comments/commentRss/189301.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcwlv929/services/trackbacks/189301.html</trackback:ping><description><![CDATA[<p>在eclipse中怎么把POJO插入到水晶报表里面呢？这就是第四篇的所要做的</p>
<p>首先，应该就是要建立一个实体类了。</p>
<p>我这里用一个OrderItems.java做例子，代码</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000"> com.JRC.beans;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> OrderItems </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> id;&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; //对应数据库表的id<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> quantity;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //产品数量，数据库表所没有的<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"> OrderItems(</span><span style="color: #0000ff">int</span><span style="color: #000000"> id, </span><span style="color: #0000ff">int</span><span style="color: #000000"> quantity) </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">super</span><span style="color: #000000">();<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.id </span><span style="color: #000000">=</span><span style="color: #000000"> id;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.quantity </span><span style="color: #000000">=</span><span style="color: #000000"> quantity;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/** */</span><span><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * </span><span style="color: #808080">@return</span><span style="color: #008000"> id<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> getId() </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> id;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/** */</span><span><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * </span><span style="color: #808080">@param</span><span style="color: #008000"> id 要设置的 id<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> setId(</span><span style="color: #0000ff">int</span><span style="color: #000000"> id) </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.id </span><span style="color: #000000">=</span><span style="color: #000000"> id;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/** */</span><span><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * </span><span style="color: #808080">@return</span><span style="color: #008000"> quantity<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">int</span><span style="color: #000000"> getQuantity() </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> quantity;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/** */</span><span><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * </span><span style="color: #808080">@param</span><span style="color: #008000"> quantity 要设置的 quantity<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> setQuantity(</span><span style="color: #0000ff">int</span><span style="color: #000000"> quantity) </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.quantity </span><span style="color: #000000">=</span><span style="color: #000000"> quantity;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
</div>
<p>&nbsp;</p>
<p>如果你还没建好报表，新建一个报表如Report.rpt，并打开这个报表</p>
<p>在项目资源管理器中，点击OrderItems.java前面的+ （发不了图片），可以看到&nbsp;&nbsp; &#8220;绿点 OrderItems&#8221;，就是这个了，右击－》crystal reports－》添加到当前crystal报表。或者你可以直接把&#8220;绿点 OrderItems&#8221;拉到报表中</p>
<p>这样OrderItems就在报表的数据中了，在报表数据中再添加一个数据库表，如products（product_id，product_name,product_price,....,）</p>
<p>如果没出什么问题，那Report.rpt报表数据中有了OrderItems表和products表，左键按紧OrderItems表的id，把他拉到products表的products_id上，你可以发现他们中间有条线。</p>
<p>这样OrderItems.id就跟products.products_id关联起来了。中间的线默认属性是等于，你也可以改成其他的。</p>
<p>右击 Report.rpt－》Crystal Reports－》创建查看器JSP—》选择查看器API代码插入－》选中 使用POJO填充报表、连接Crystal报表页面查看器－》确定</p>
<p>一个新的Report-viewer.jsp页面就出来了。不过现在很不能用，你要稍微改下里面的一丁点东西才行。</p>
<p>注意:Report-viewer.jsp中用到JRCHelperSample类，这个在（一）中建立的CR项目中有，是非常非常好的工具类，没事就把它拷到你的项目下吧，有很多地方要用到这个类。这个类在包com.businessobjects.samples里面</p>
<p>&nbsp;</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">String reportName </span><span style="color: #000000">=</span><span style="color: #000000"> </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;&nbsp; //填上你的报表名字</span></div>
</div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">List dataSet </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ArrayList();<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataSet.add(</span><span style="color: #0000ff">new</span><span style="color: #000000"> OrderItems());<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataSet.add(</span><span style="color: #0000ff">new</span><span style="color: #000000"> OrderItems());<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataSet.add(</span><span style="color: #0000ff">new</span><span style="color: #000000"> OrderItems());<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataSet.add(</span><span style="color: #0000ff">new</span><span style="color: #000000"> OrderItems());<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dataSet.add(</span><span style="color: #0000ff">new</span><span style="color: #000000"> OrderItems());</span></div>
</div>
<p>你可以用OrderItems的构造函数添加数据集,你可以用到很多方法来添加dataSet数据集的，只要添加的是准确有效的OrderItems实体对象就行了</p>
<p>注意要把里面的/*&nbsp;&nbsp; */这些去掉</p>
<p>启动tomcat，运行Report-viewer.jsp吧</p>
<img src ="http://www.blogjava.net/lcwlv929/aggbug/189301.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcwlv929/" target="_blank">炜</a> 2008-03-28 16:49 <a href="http://www.blogjava.net/lcwlv929/articles/189301.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用eclipse在jsp上显示水晶报表（三）用sql语句过滤数据（转载）</title><link>http://www.blogjava.net/lcwlv929/articles/189300.html</link><dc:creator>炜</dc:creator><author>炜</author><pubDate>Fri, 28 Mar 2008 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/lcwlv929/articles/189300.html</guid><wfw:comment>http://www.blogjava.net/lcwlv929/comments/189300.html</wfw:comment><comments>http://www.blogjava.net/lcwlv929/articles/189300.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcwlv929/comments/commentRss/189300.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcwlv929/services/trackbacks/189300.html</trackback:ping><description><![CDATA[<p>在.net中,你可以很容易的用sql语句过滤报表数据，但在CR4E中没这样的功能设定，但可以通过编写代码完成。</p>
<p>这里是我做的简单用sql语句过滤数据的例子。</p>
<p>项目还是用ǘ ├锩娴膖omcat项目。</p>
<p>建一个实现这个功能的类</p>
<p>JRC_ResultSet_DataSource.java</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000"> com.JRC.util;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> java.sql.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> javax.servlet.http.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> com.crystaldecisions.reports.sdk.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000"> com.crystaldecisions.sdk.occa.report.lib.</span><span style="color: #000000">*</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">class</span><span style="color: #000000"> JRC_ResultSet_DataSource </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000"> String&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REPORT_NAME</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"> JRC_ResultSet_DataSource(String report_name)</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.REPORT_NAME</span><span style="color: #000000">=</span><span style="color: #000000">report_name;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/** */</span><span><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * </span><span style="color: #808080">@return</span><span style="color: #008000"> rEPORT_NAME<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"> String getREPORT_NAME() </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> REPORT_NAME;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/** */</span><span><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * </span><span style="color: #808080">@param</span><span style="color: #008000"> report_name 要设置的 rEPORT_NAME<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">void</span><span style="color: #000000"> setREPORT_NAME(String report_name) </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; REPORT_NAME </span><span style="color: #000000">=</span><span style="color: #000000"> report_name;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/** */</span><span><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *&nbsp;&nbsp;&nbsp; 连接数据库，通过sql查询语句进行查询，返回结果集<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000"> </span><span style="color: #0000ff">static</span><span style="color: #000000"> ResultSet getResultSetFromQuery(String query, </span><span style="color: #0000ff">int</span><span style="color: #000000"> scrollType)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000"> SQLException, ClassNotFoundException </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class.forName(</span><span style="color: #000000">"</span><span style="color: #000000">com.microsoft.jdbc.sqlserver.SQLServerDriver</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000"> String DBUSERNAME </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">username</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000"> String DBPASSWORD </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">password</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000"> String CONNECTION_URL </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">jdbc:microsoft:sqlserver://localhost:1433;database=dname</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; java.sql.Connection connection </span><span style="color: #000000">=</span><span style="color: #000000"> DriverManager.getConnection(CONNECTION_URL, DBUSERNAME, DBPASSWORD); <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Statement statement </span><span style="color: #000000">=</span><span style="color: #000000"> connection.createStatement(scrollType, ResultSet.CONCUR_READ_ONLY);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> statement.executeQuery(query);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/** */</span><span><span style="color: #008000">/**</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * 通过sql语句过滤报表数据，在.net就不用怎么惨了<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">*/</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000"> </span><span style="color: #0000ff">boolean</span><span style="color: #000000"> isReportSourceInSession(String session_name,HttpSession session) </span><span style="color: #0000ff">throws</span><span style="color: #000000"> ReportSDKException, SQLException, ClassNotFoundException</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000"> flag</span><span style="color: #000000">=</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"> </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">打开水晶报表</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ReportClientDocument reportClientDoc </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ReportClientDocument();<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reportClientDoc.open(REPORT_NAME, </span><span style="color: #000000">0</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">sql查询语句,返回的字段数必须跟报表里面的一样，不能多也不能少，并且字段的类型要跟报表的一样，其他不管是什么数据都可以&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">from 表这里要填完整，如数据库名.dbo.数据库表，最好做个别名</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String query </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">select tt.test_1,tt.test_2,tt.test_3,tt.test_4 from dname.dbo.test tt</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ResultSet resultSet </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">this</span><span style="color: #000000">.getResultSetFromQuery(query,ResultSet.TYPE_SCROLL_INSENSITIVE);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String tableAlias </span><span style="color: #000000">=</span><span style="color: #000000"> reportClientDoc.getDatabaseController().getDatabase().getTables().getTable(</span><span style="color: #000000">0</span><span style="color: #000000">).getAlias();<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">把结果集放进报表里，将会自动产生一个datasource</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; reportClientDoc.getDatabaseController().setDataSource(resultSet,tableAlias, </span><span style="color: #000000">"</span><span style="color: #000000">resultsetTable</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session.setAttribute(session_name, reportClientDoc.getReportSource());<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; flag</span><span style="color: #000000">=</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> flag;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000"> </span><span style="color: #0000ff">catch</span><span style="color: #000000"> (Exception e) </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000"> TODO: handle exception</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; e.printStackTrace();<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> flag;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
</div>
<p>这里要注意数据库查询结果集的字段数目要跟报表里面的字段数目一样，类型也要一样，不然就会出错。</p>
<p>sql语句中的表的名字要完整，如数据库名.dbo.数据库表，最好做个别名</p>
<p>显示页面</p>
<p>Result_viewer.jsp</p>
<p>&nbsp;</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;%</span><span style="color: #000000">@page </span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.JRC.util.JRC_ResultSet_DataSource</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%--</span><span style="color: #000000">webreporting.jar&nbsp;&nbsp;</span><span style="color: #000000">--%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@page </span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.crystaldecisions.report.web.viewer.*</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%--</span><span style="color: #000000">jrcerom.jar </span><span style="color: #000000">--%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@ page </span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.crystaldecisions.reports.sdk.*</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; JRC_ResultSet_DataSource jrcd</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> JRC_ResultSet_DataSource(</span><span style="color: #000000">"</span><span style="color: #000000">resultSet.rpt</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #000000">!</span><span style="color: #000000">jrcd.isReportSourceInSession(</span><span style="color: #000000">"</span><span style="color: #000000">reportSource</span><span style="color: #000000">"</span><span style="color: #000000">,session)<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.sendRedirect(</span><span style="color: #000000">"</span><span style="color: #000000">error.html</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; CrystalReportViewer crViewer</span><span style="color: #000000">=</span><span style="color: #0000ff">new</span><span style="color: #000000"> CrystalReportViewer();<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; crViewer.setOwnPage(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; crViewer.setOwnForm(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; crViewer.setPrintMode(CrPrintMode.ACTIVEX);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; Object reportSource</span><span style="color: #000000">=</span><span style="color: #000000">session.getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">reportSource</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; crViewer.setReportSource(reportSource);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; crViewer.processHttpRequest(request,response,</span><span style="color: #0000ff">this</span><span style="color: #000000">.getServletConfig().getServletContext(),</span><span style="color: #0000ff">null</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /> </span><span style="color: #000000">%&gt;</span></div>
</div>
<p>注意上面几点应该就没问题了</p>
<p>PS：Snippets视图最下面有Crystal reports的一些实用代码段</p>
<p>CR查看器标记、打开并查询报表、打开报表、查看报表、查看报表并设置数据库登录、将报表导出为pdf、将报表导出为rtf 等的代码段，简单易用</p>
<img src ="http://www.blogjava.net/lcwlv929/aggbug/189300.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcwlv929/" target="_blank">炜</a> 2008-03-28 16:48 <a href="http://www.blogjava.net/lcwlv929/articles/189300.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用eclipse在jsp上显示水晶报表（二）后台代码例子（转载）</title><link>http://www.blogjava.net/lcwlv929/articles/189299.html</link><dc:creator>炜</dc:creator><author>炜</author><pubDate>Fri, 28 Mar 2008 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/lcwlv929/articles/189299.html</guid><wfw:comment>http://www.blogjava.net/lcwlv929/comments/189299.html</wfw:comment><comments>http://www.blogjava.net/lcwlv929/articles/189299.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/lcwlv929/comments/commentRss/189299.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcwlv929/services/trackbacks/189299.html</trackback:ping><description><![CDATA[<p>在(一)中的配置保持不变,前一篇是用crviewer标签来实现jsp显示水晶报表的</p>
<p>这篇文章教你如何自己写代码来享受水晶报表的</p>
<p>report_source.jsp</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;%</span><span style="color: #000000">@page contentType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/html</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@page pageEncoding</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #008000">//</span><span style="color: #008000">Crystal Java Reporting Component (JRC) imports.%&gt;</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%--</span><span style="color: #000000"> jrcerom.jar</span><span style="color: #000000">--%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@page </span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.crystaldecisions.reports.sdk.*</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%--</span><span style="color: #000000"> rascore.jar</span><span style="color: #000000">--%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@page </span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.crystaldecisions.sdk.occa.report.lib.*</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">水晶报表的位置</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">final</span><span style="color: #000000"> String REPORT_NAME </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">view_report.rpt</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">try</span><span style="color: #000000"> </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">打开报表</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; ReportClientDocument reportClientDoc </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ReportClientDocument();<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; reportClientDoc.open(REPORT_NAME, </span><span style="color: #000000">0</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">把报表源放进session,传递到报表显示页面</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; session.setAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">reportSource</span><span style="color: #000000">"</span><span style="color: #000000">, reportClientDoc.getReportSource());<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">转到报表显示页面</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; response.sendRedirect(</span><span style="color: #000000">"</span><span style="color: #000000">CrystalReportViewer.jsp</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">catch</span><span style="color: #000000">(ReportSDKException ex) </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; out.println(ex);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">catch</span><span style="color: #000000">(Exception ex) </span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; out.println(ex);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">%&gt;</span></div>
</div>
<p>上面的可以封装到javabean里面</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">reportClientDoc.getDatabaseController().logon(USERNAME, PASSWORD);</span></div>
</div>
<p>设置数据库的登陆用户,如果浏览这个报表的用户需要设置不同的权限的话,那就需要设置上面这个了</p>
<p>CrystalReportViewer.jsp</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;%</span><span style="color: #000000">@page contentType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/html</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@page pageEncoding</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #008000">//</span><span style="color: #008000">Crystal Report Viewer imports.%&gt;</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%--</span><span style="color: #000000"> webreporting.jar</span><span style="color: #000000">--%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@page </span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.crystaldecisions.report.web.viewer.*</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%--</span><span style="color: #000000"> rascore.jar</span><span style="color: #000000">--%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@page </span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.crystaldecisions.reports.sdk.*</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">建立一个viewer对象实例,并设置</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">CrystalReportViewer viewer </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> CrystalReportViewer();<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />viewer.setOwnPage(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />viewer.setOwnForm(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />viewer.setPrintMode(CrPrintMode.ACTIVEX);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">从session中取报表源</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">Object reportSource </span><span style="color: #000000">=</span><span style="color: #000000"> session.getAttribute(</span><span style="color: #000000">"</span><span style="color: #000000">reportSource</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />viewer.setReportSource(reportSource);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">显示水晶报表</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">viewer.processHttpRequest(request, response,</span><span style="color: #0000ff">this</span><span style="color: #000000">. getServletConfig().getServletContext(), </span><span style="color: #0000ff">null</span><span style="color: #000000">); <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">%&gt;</span></div>
</div>
<p>第二种方法直接用一个页面</p>
<p>CrystalReportViewer.jsp</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;%</span><span style="color: #000000">@page contentType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/html</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@page pageEncoding</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #008000">//</span><span style="color: #008000">Crystal Java Reporting Component (JRC) imports.%&gt;</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%--</span><span style="color: #000000"> jrcerom.jar</span><span style="color: #000000">--%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@page </span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.crystaldecisions.reports.sdk.*</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%--</span><span style="color: #000000"> rascore.jar</span><span style="color: #000000">--%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@page </span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.crystaldecisions.sdk.occa.report.lib.*</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%--</span><span style="color: #000000"> webreporting.jar</span><span style="color: #000000">--%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000">@page </span><span style="color: #0000ff">import</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">com.crystaldecisions.report.web.viewer.*</span><span style="color: #000000">"</span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">//</span><span style="color: #008000">水晶报表的位置</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">final</span><span style="color: #000000"> String REPORT_NAME </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #000000">"</span><span style="color: #000000">view_report.rpt</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;%</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">try</span><span style="color: #000000"> ...</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">打开报表</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; ReportClientDocument reportClientDoc </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> ReportClientDocument();<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; reportClientDoc.open(REPORT_NAME, </span><span style="color: #000000">0</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">把报表源放进session,传递到报表显示页面<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">session.setAttribute("reportSource", reportClientDoc.getReportSource());<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">建立一个viewer对象实例,并设置</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; CrystalReportViewer viewer </span><span style="color: #000000">=</span><span style="color: #000000"> </span><span style="color: #0000ff">new</span><span style="color: #000000"> CrystalReportViewer();<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; viewer.setOwnPage(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; viewer.setOwnForm(</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; viewer.setPrintMode(CrPrintMode.ACTIVEX);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">从session中取报表源<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">Object reportSource = session.getAttribute("reportSource");<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">viewer.setReportSource(reportSource);</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; viewer.setReportSource(reportClientDoc.getReportSource());<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">显示水晶报表</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; viewer.processHttpRequest(request, response,</span><span style="color: #0000ff">this</span><span style="color: #000000">. getServletConfig().getServletContext(), </span><span style="color: #0000ff">null</span><span style="color: #000000">); <br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" /><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">转到报表显示页面<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">response.sendRedirect("CrystalReportViewer.jsp");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #000000">}</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">catch</span><span style="color: #000000">(ReportSDKException ex) ...</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; out.println(ex);<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img style="display: none" src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /></span><span style="color: #0000ff">catch</span><span style="color: #000000">(Exception ex) ...</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">...</span><span><span style="color: #000000">{<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp; out.println(ex);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />}</span></span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">%&gt;</span></div>
</div>
<p>个人感觉第一种方法好,报表源跟显示分开,安全,重用方便</p>
<img src ="http://www.blogjava.net/lcwlv929/aggbug/189299.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcwlv929/" target="_blank">炜</a> 2008-03-28 16:47 <a href="http://www.blogjava.net/lcwlv929/articles/189299.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用eclipse在jsp上显示水晶报表（一）最简单例子（转载）</title><link>http://www.blogjava.net/lcwlv929/articles/189298.html</link><dc:creator>炜</dc:creator><author>炜</author><pubDate>Fri, 28 Mar 2008 08:46:00 GMT</pubDate><guid>http://www.blogjava.net/lcwlv929/articles/189298.html</guid><wfw:comment>http://www.blogjava.net/lcwlv929/comments/189298.html</wfw:comment><comments>http://www.blogjava.net/lcwlv929/articles/189298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/lcwlv929/comments/commentRss/189298.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcwlv929/services/trackbacks/189298.html</trackback:ping><description><![CDATA[<p>我使用的开发IDE是eclipse3.2，服务器是tomcat5.5</p>
<p>新建一个 Crystal reports web项目</p>
<p>在Target runtime选择apache tomcat v5.5</p>
<p>下一步中crystal reports java reporting component、dynamic web module、java是默认选中的，这三个是必需的，你也可添加struts，后面的设置会要求你添加struts的类库。在最后面默认加入示例的数据库和报表。</p>
<p>这样一个Crystal Reports web项目就建立了（上面的步骤应该是地球人都可以完成吧）</p>
<p>在里面有个CrystalReport1.rpt和CrystalReport_viewer.jsp</p>
<p>右键CrystalReport_viewer.jsp－&gt;运行方式-&gt;Run on Server,点击完成。</p>
<p>你应该就可以看到一个空的水晶报表了吧（为什么空的，当然啦，CrystalReport1.rpt本身是空的）</p>
<p>在看看sample reports文件夹里面，有4个示例的.rpt报表文件，右击其中任何一个，选中Crystal Reports－》创建查看器JSP，就会创建一个*－viewer.jsp文件。运行这个文件，你应该可以看到一个水晶报表了吧。</p>
<p>我想这对大部分人应该都是没有问题的，剩下的事情就是好好分析这个项目里面所有的东东了</p>
<p>-------------------------------------------------------------------------------------------------------------------------------------------------------</p>
<p>上面什么东西是在任何项目中实现都必须的呢?为此我特意建立一个新的tomcat项目,最好建一个简单的jsp页面测试下你的tomcat项目是否可以正常运行.</p>
<p>通过本人的实验,在其他项目中JSP运行水晶报表的话,需要的类文件跟配置.</p>
<p>1. 添加一个用户库如 CrystalReports Libraries,把下面的*.jar添加进去</p>
<p>commons-collections-3.1.jar,commons-configuration-1.2.jar,<br />
commons-lang-2.1.jar,<br />
commons-logging.jar,<br />
Concurrent.jar,<br />
CrystalCharting.jar<br />
CrystalCommon.jar<br />
CrystalContentModels.jar<br />
CrystalDatabaseConnectors.jar<br />
CrystalExporters.jar<br />
CrystalExportingBase.jar<br />
CrystalFormulas.jar<br />
CrystalQueryEngine.jar<br />
CrystalReportEngine.jar<br />
CrystalReportingCommon.jar<br />
derby.jar<br />
icu4j.jar<br />
jrcadapter.jar<br />
<font color="#ff0000">jrcerom.jar</font><br />
keycodeDecoder.jar<br />
log4j.jar<br />
MetafileRenderer.jar<br />
msbase.jar<br />
mssqlserver.jar<br />
msutil.jar<br />
rasapp.jar<br />
<font color="#ff0000">rascore.jar</font><br />
ReportPrinter.jar<br />
rpoifs.jar<br />
serialization.jar<br />
URIUtil.jar<br />
<font color="#ff0000">webreporting.jar<br />
</font>webreporting-jsf.jar<br />
xercesImpl.jar<br />
xml-apis.jar<br />
Xtreme.jar</p>
<p>(总共36个jar,里面有一些在其他的库已经有的了,在项目中添加这个自定义库就行了)</p>
<p>&nbsp;</p>
<p>2. 把上个例子中的crystalreportviewers文件夹放在WEB-INF文件夹同一目录下。这个就是你能看到水晶报表的基本框架，相当于.net里面的水晶报表控件了的源代码了。</p>
<p>3. 把crystal-tags-reportviewer.tld放在WEB-INF下,主要标签</p>
<p>&nbsp;</p>
<p>4. web.xml 在&lt;web-app&gt;中间添加，主要是读入crystalreportviewers</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">context-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">crystal_image_uri</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">crystalreportviewers</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">context-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">context-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">crystal_image_use_relative</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-name</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">webapp</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">param-value</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">context-param</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
</div>
<p>&nbsp;</p>
<p>5. 把CRConfig.xml放在src文件夹下,水晶报表的配置文件,如果你有注册,注册码也会在这文件里面</p>
<p>CRConfig.xml</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml version="1.0" encoding="UTF-8"</span><span style="color: #0000ff">?&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">CrystalReportEngine-configuration</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">reportlocation</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">../..</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">reportlocation</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">timeout</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">0</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">timeout</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">ExternalFunctionLibraryClassNames</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">classname</span><span style="color: #0000ff">/&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">ExternalFunctionLibraryClassNames</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">CrystalReportEngine-configuration</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
</div>
<h5>配置超时间隔</h5>
<p>利用 <code><font face="新宋体">CRConfig.xml</font></code> 文件，您可以配置确定何时丢弃不活动报表源的超时间隔（以分钟为单位）。这是必要的，因为不活动报表源仍然会消耗系统资源（如数据库连接、服务器内存以及临时文件使用的磁盘空间）。可以通过在 <code><font face="新宋体">CRConfig.xml</font></code> 文件中设置 <code><font face="新宋体">timeout</font></code> 标记的值来指定超时间隔。默认情况下，超时间隔为 10 分钟。通过将该值设置为 0，可以将 Java Reporting Component 配置为没有超时。</p>
<p>超时间隔仅适用于不活动报表 -- 正在处理的报表不会因超出此值而超时。每次成功完成一个报表源请求时，超时定时器将会重置。如果在超时间隔内没有使用某个报表源，则会丢弃该报表源，并将其资源提供给其他进程使用。</p>
<p>6.&nbsp;&nbsp; 在jsp页面插入这段代码</p>
<div style="border-right: windowtext 0.5pt solid; padding-right: 5.4pt; border-top: windowtext 0.5pt solid; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; border-left: windowtext 0.5pt solid; width: 95%; word-break: break-all; padding-top: 4px; border-bottom: windowtext 0.5pt solid">
<div><img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">&lt;%</span><span style="color: #000000">@ taglib uri</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">/crystal-tags-reportviewer.tld</span><span style="color: #000000">"</span><span style="color: #000000"> prefix</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">crviewer</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">%&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">crviewer:viewer reportSourceType</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">reportingComponent</span><span style="color: #000000">"</span><span style="color: #000000"> viewerName</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">rcname-viewer</span><span style="color: #000000">"</span><span style="color: #000000"> reportSourceVar</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">rcname</span><span style="color: #000000">"</span><span style="color: #000000"> isOwnPage</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">true</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;</span><span style="color: #000000">crviewer:report reportName</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">rcname.rpt</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">/&gt;</span><span style="color: #000000"><br />
<img src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">crviewer:viewer</span><span style="color: #000000">&gt;</span></div>
</div>
<p>感觉像在用.net里面的水晶报表控件一样,不只viewer,连partviewer也可以的.</p>
<img src ="http://www.blogjava.net/lcwlv929/aggbug/189298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcwlv929/" target="_blank">炜</a> 2008-03-28 16:46 <a href="http://www.blogjava.net/lcwlv929/articles/189298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hibernate自动创建表通过castor自动添加数据</title><link>http://www.blogjava.net/lcwlv929/articles/179199.html</link><dc:creator>炜</dc:creator><author>炜</author><pubDate>Sun, 03 Feb 2008 08:44:00 GMT</pubDate><guid>http://www.blogjava.net/lcwlv929/articles/179199.html</guid><wfw:comment>http://www.blogjava.net/lcwlv929/comments/179199.html</wfw:comment><comments>http://www.blogjava.net/lcwlv929/articles/179199.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/lcwlv929/comments/commentRss/179199.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/lcwlv929/services/trackbacks/179199.html</trackback:ping><description><![CDATA[<p>————————————————————————————————————<br />
hibernate自动创建表<br />
只要在hibernate.cfg.xml文件中加入属性<br />
&lt;property name="hibernate.hbm2ddl.auto"&gt;update&lt;/property&gt;<br />
并在每个.hbm.xml文件中加入属性<br />
&lt;hibernate-mapping auto-import="true" default-lazy="false"&gt;<br />
就可以了。<br />
————————————————————————————————————<br />
通过castor把xml文件转成对应类<br />
注释部分为本地项目，无注释部分为WEB项目使用。<br />
//&nbsp;&nbsp;&nbsp;File a= new File("D:\\castor/initDataBase.xml");<br />
//&nbsp;&nbsp;&nbsp;FileInputStream fin = new FileInputStream(a);<br />
//&nbsp;&nbsp;&nbsp;InputStreamReader bb = new InputStreamReader(fin, "UTF-8");<br />
//&nbsp;&nbsp;&nbsp;initinfo = (Initinfo) Unmarshaller.unmarshal(Initinfo.class, bb);<br />
InputStream initinfoInputStream = servletConfig.getServletContext()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.getResourceAsStream("/WEB-INF/initDataBase.xml");<br />
&nbsp;&nbsp;&nbsp;InputStreamReader initinfoInputStreamReader = new InputStreamReader(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initinfoInputStream, "UTF-8");<br />
&nbsp;&nbsp;&nbsp;initinfo = (Initinfo) Unmarshaller.unmarshal(Initinfo.class, initinfoInputStreamReader);<br />
————————————————————————————————————<br />
向表中加入数据<br />
for (int i = 0; i &lt; initinfo.getTcommserial().length; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;commserial = dao.findByName(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initinfo.getTcommserial()[i].getSilName());//判断表中是否有此数据<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (commserial == null) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;commserial = InitinfoFormat.TcommserialToCommSerial(initinfo.getTcommserial()[i]);//把castor类的数据转成entity数据<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dao.save(commserial);//保存<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;}<br />
————————————————————————————————————</p>
<img src ="http://www.blogjava.net/lcwlv929/aggbug/179199.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/lcwlv929/" target="_blank">炜</a> 2008-02-03 16:44 <a href="http://www.blogjava.net/lcwlv929/articles/179199.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>