﻿<?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-Java软件报表软件技术博客-随笔分类-Java报表问题解答</title><link>http://www.blogjava.net/fannie/category/39387.html</link><description>java报表软件技术汇总      java报表软件制作       报表软件新闻</description><language>zh-cn</language><lastBuildDate>Fri, 19 Aug 2016 10:58:04 GMT</lastBuildDate><pubDate>Fri, 19 Aug 2016 10:58:04 GMT</pubDate><ttl>60</ttl><item><title>如何读取Access里的OLE类型的图片</title><link>http://www.blogjava.net/fannie/archive/2016/08/19/431634.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Fri, 19 Aug 2016 02:15:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2016/08/19/431634.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/431634.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2016/08/19/431634.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/431634.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/431634.html</trackback:ping><description><![CDATA[<p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 21pt; background-color: #ffffff;"><span style="font-family: 宋体;">身份证一类读卡器读取的照片信息，保存在</span><span style="font-family: &quot;Times New Roman&quot;, serif;">Access</span><span style="font-family: 宋体;">数据库中一般为</span><span style="font-family: &quot;Times New Roman&quot;, serif;">OLE</span><span style="font-family: 宋体;">型字段，图片为</span><span style="font-family: &quot;Times New Roman&quot;, serif;">BMP</span><span style="font-family: 宋体;">格式，因为是用其读卡器写入的，其数据类型为常二进制数据。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 21pt; background-color: #ffffff;"><span style="font-family: 宋体;">再用报表或</span><span style="font-family: &quot;Times New Roman&quot;, serif;">EXCEL</span><span style="font-family: 宋体;">读取这些图片时，如果将该图片字段拖入单元格后，预览就看不到图片了。</span><span style="font-family: &quot;Times New Roman&quot;, serif;">EXCEL</span><span style="font-family: 宋体;">如何读取这类图片网上有教程，这里不多说。如果你要用报表软件</span><span style="font-family: &quot;Times New Roman&quot;, serif;">FineReport</span><span style="font-family: 宋体;">来展现这类图片该如何做呢？</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 21pt; line-height: 18.75pt; background-color: #ffffff;"><span style="font-family: 宋体;">思路是采用</span><span style="font-family: &quot;Times New Roman&quot;, serif;">FineReport</span><span style="font-family: 宋体;">的自定义函数，使用</span><span style="font-family: &quot;Times New Roman&quot;, serif;">java</span><span style="font-family: 宋体;">的</span><span style="font-family: &quot;Times New Roman&quot;, serif;">jna</span><span style="font-family: 宋体;">调用本地的</span><span style="font-family: &quot;Times New Roman&quot;, serif;">WltRS.dll</span><span style="font-family: 宋体;">，将数据库</span><span style="font-family: &quot;Times New Roman&quot;, serif;">OLE</span><span style="font-family: 宋体;">字段中的长二进制数据转为</span><span style="font-family: &quot;Times New Roman&quot;, serif;">.wlt</span><span style="font-family: 宋体;">文件，再调用本地方法将</span><span style="font-family: &quot;Times New Roman&quot;, serif;">.wlt</span><span style="font-family: 宋体;">文件转为</span><span style="font-family: &quot;Times New Roman&quot;, serif;">.bmp</span><span style="font-family: 宋体;">图片，最终自定义函数返回图片在</span><span style="font-family: &quot;Times New Roman&quot;, serif;">FineReport</span><span style="font-family: 宋体;">中显示。</span></p><p style="margin: 0px; padding: 0px; background-color: #ffffff;"><font face="Helvetica, Tahoma, Arial, sans-serif">1、</font><span style="font-family: 宋体; font-weight: bold;">前提准备</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 21pt; line-height: 18.75pt; background-color: #ffffff;"><span style="font-family: 宋体;">本地库文件</span><strong><span style="font-family: &quot;Times New Roman&quot;, serif;">WltRS.dll</span></strong><span style="font-family: 宋体;">保存在</span><strong><span style="font-family: &quot;Times New Roman&quot;, serif;">E:\bmp\WltRS.dll</span></strong><span style="font-family: 宋体;">（位置可变，但</span><span style="font-family: &quot;Times New Roman&quot;, serif;">ixu</span><span style="font-family: 宋体;">保证以自定义函数中的路径一致）；</span><span style="font-family: &quot;Times New Roman&quot;, serif;">eclipse</span><span style="font-family: 宋体;">项目中导入</span><span style="font-family: &quot;Times New Roman&quot;, serif;">FINEREPORT</span><span style="font-family: 宋体;">的</span><span style="font-family: &quot;Times New Roman&quot;, serif;">jar</span><span style="font-family: 宋体;">包。</span></p><p style="margin: 0px; padding: 0px; background-color: #ffffff;"><font face="Helvetica, Tahoma, Arial, sans-serif">2、</font><span style="font-family: 宋体; font-weight: bold;">实现自定义函数</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">&nbsp;</p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 21pt; line-height: 18.75pt; background-color: #ffffff;"><span style="font-family: 宋体;">自定义一个函数类</span><span style="font-family: &quot;Times New Roman&quot;, serif;">BinaryImage.java</span><span style="font-family: 宋体;">，该类继承</span><span style="font-family: &quot;Times New Roman&quot;, serif;">AbstractFunction</span><span style="font-family: 宋体;">，在</span><span style="font-family: &quot;Times New Roman&quot;, serif;">run()</span><span style="font-family: 宋体;">方法中使用</span><span style="font-family: &quot;Times New Roman&quot;, serif;">java</span><span style="font-family: 宋体;">的</span><span style="font-family: &quot;Times New Roman&quot;, serif;">jna</span><span style="font-family: 宋体;">调用本地库文件</span><span style="font-family: &quot;Times New Roman&quot;, serif;">WltRS.dll</span><span style="font-family: 宋体;">，最终返回图片。代码如下：</span></p><div style="font-family: Monaco, &quot;DejaVu Sans Mono&quot;, &quot;Bitstream Vera Sans Mono&quot;, Consolas, &quot;Courier New&quot;, monospace; width: 694.516px; margin-left: 9px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word; background-color: #ffffff;"><div><div style="padding-right: 3px; padding-bottom: 3px; padding-left: 3px; margin: 0px; font-weight: bold;">Java代码<span style="font-size: 13px; color: #0000ff;">package</span><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;com.FineReport.function; &nbsp;</span></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">&nbsp;&nbsp;&nbsp;<br /><span style="color: #0000FF; ">import</span>&nbsp;java.awt.image.BufferedImage;&nbsp;&nbsp;<br /><span style="color: #0000FF; ">import</span>&nbsp;java.io.BufferedOutputStream;&nbsp;&nbsp;<br /><span style="color: #0000FF; ">import</span>&nbsp;java.io.File;&nbsp;&nbsp;<br /><span style="color: #0000FF; ">import</span>&nbsp;java.io.FileOutputStream;&nbsp;&nbsp;<br /><span style="color: #0000FF; ">import</span>&nbsp;java.io.IOException;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br /><span style="color: #0000FF; ">import</span>&nbsp;javax.imageio.ImageIO;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br /><span style="color: #0000FF; ">import</span>&nbsp;com.FineReport.data.core.db.BinaryObject;&nbsp;&nbsp;<br /><span style="color: #0000FF; ">import</span>&nbsp;com.FineReport.script.AbstractFunction;&nbsp;&nbsp;<br /><span style="color: #0000FF; ">import</span>&nbsp;com.sun.jna.Library;&nbsp;&nbsp;<br /><span style="color: #0000FF; ">import</span>&nbsp;com.sun.jna.Native;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br /><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;BinaryImage&nbsp;<span style="color: #0000FF; ">extends</span>&nbsp;AbstractFunction{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">加载dll，"E:\\bmp\\WltRS"是dll的文件完整路径，但不带后缀名，生成WltRS.class&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;WltRS&nbsp;wltrs&nbsp;=&nbsp;(WltRS)&nbsp;Native.loadLibrary("E:\\bmp\\WltRS",&nbsp;WltRS.<span style="color: #0000FF; ">class</span>);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;index&nbsp;=&nbsp;0;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;Object&nbsp;run(Object[]&nbsp;args)&nbsp;{&nbsp;&nbsp;<br />&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;<span style="color: #0000FF; ">int</span>&nbsp;current&nbsp;=&nbsp;index;&nbsp;&nbsp;<br />&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;<span style="color: #008000; ">//</span><span style="color: #008000; ">args[0]&nbsp;是&nbsp;BinaryObject对象，取为bo&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BinaryObject&nbsp;bo&nbsp;=&nbsp;(BinaryObject)args[0];&nbsp;&nbsp;<br />&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;<span style="color: #008000; ">//</span><span style="color: #008000; ">将bo转换为.wlt文件，并保存在位置E:\bmp\；本地方法GetBmp的第一个参数是wlt文件的路径&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;getFile(bo.getBytes(),&nbsp;"E:\\bmp\\",&nbsp;current&nbsp;+&nbsp;".wlt");&nbsp;&nbsp;<br />&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;<span style="color: #008000; ">//</span><span style="color: #008000; ">读取.wlt为文件&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;File("E:\\bmp\\"&nbsp;+&nbsp;current&nbsp;+&nbsp;".wlt");&nbsp;&nbsp;&nbsp;<br />&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;<span style="color: #008000; ">//</span><span style="color: #008000; ">调用本地方法，在相同路径下生产.bmp&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wltrs.GetBmp("E:\\bmp\\"&nbsp;+&nbsp;current&nbsp;+&nbsp;".wlt",&nbsp;1);&nbsp;&nbsp;<br />&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;<span style="color: #008000; ">//</span><span style="color: #008000; ">读取并返回图片&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;imagefile&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;File("E:\\bmp\\"&nbsp;+&nbsp;current&nbsp;+&nbsp;".bmp");&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedImage&nbsp;buffer&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&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;buffer&nbsp;=&nbsp;ImageIO.read(imagefile);&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(IOException&nbsp;e)&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;e.printStackTrace();&nbsp;&nbsp;<br />&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;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;index&nbsp;=&nbsp;(++index)%300;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;buffer;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">&nbsp;byte[]转换为file的方法&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;getFile(<span style="color: #0000FF; ">byte</span>[]&nbsp;bfile,&nbsp;String&nbsp;filePath,&nbsp;String&nbsp;fileName)&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BufferedOutputStream&nbsp;bos&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileOutputStream&nbsp;fos&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;file&nbsp;=&nbsp;<span style="color: #0000FF; ">null</span>;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;dir&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;File(filePath);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>(!dir.exists()&nbsp;&amp;&amp;&nbsp;dir.isDirectory()){<span style="color: #008000; ">//</span><span style="color: #008000; ">判断文件目录是否存在&nbsp;&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dir.mkdirs();&nbsp;&nbsp;&nbsp;<br />&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;file&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;File(filePath+"\\"+fileName);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fos&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;FileOutputStream(file);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bos&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;BufferedOutputStream(fos);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bos.write(bfile);&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(Exception&nbsp;e)&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">finally</span>&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(bos&nbsp;!=&nbsp;<span style="color: #0000FF; ">null</span>)&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&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;bos.close();&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(IOException&nbsp;e1)&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;e1.printStackTrace();&nbsp;&nbsp;&nbsp;<br />&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;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(fos&nbsp;!=&nbsp;<span style="color: #0000FF; ">null</span>)&nbsp;{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">try</span>&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;fos.close();&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<span style="color: #0000FF; ">catch</span>&nbsp;(IOException&nbsp;e1)&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;e1.printStackTrace();&nbsp;&nbsp;&nbsp;<br />&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;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<br /><span style="color: #008000; ">//</span><span style="color: #008000; ">用jna调用本地方法的必须步骤，具体含义不明&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">interface</span>&nbsp;WltRS&nbsp;<span style="color: #0000FF; ">extends</span>&nbsp;Library{&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000; ">//</span><span style="color: #008000; ">定义要调用的本地方法&nbsp;&nbsp;</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;GetBmp(String&nbsp;str,&nbsp;<span style="color: #0000FF; ">int</span>&nbsp;i);&nbsp;&nbsp;<br />} &nbsp;</div></div></div><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 18.75pt; background-color: #ffffff;">&nbsp;<span style="line-height: 18.75pt; text-indent: 21pt; font-family: 宋体;">将编译后的</span><span style="line-height: 18.75pt; text-indent: 21pt; font-family: &quot;Times New Roman&quot;, serif;">BinaryImage.class</span><span style="line-height: 18.75pt; text-indent: 21pt; font-family: 宋体;">、</span><span style="line-height: 18.75pt; text-indent: 21pt; font-family: &quot;Times New Roman&quot;, serif;">WltRS.class</span><span style="line-height: 18.75pt; text-indent: 21pt; font-family: 宋体;">根据包名拷贝至报表工程如报表安装目录下的</span><span style="line-height: 18.75pt; text-indent: 21pt; font-family: &quot;Times New Roman&quot;, serif;">WebReport\WEB-INF\classes\com\FineReport\function\</span><span style="line-height: 18.75pt; text-indent: 21pt; font-family: 宋体;">文件夹下。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 18.75pt; background-color: #ffffff;"><strong><span style="font-family: &quot;Times New Roman&quot;, serif; color: #383838; padding: 0cm;">3</span></strong><strong><span style="font-family: 宋体; color: #383838; padding: 0cm;">、使用自定义函数</span></strong></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 21pt; line-height: 18.75pt; background-color: #ffffff;"><span style="font-family: 宋体;">将</span><span style="font-family: &quot;Times New Roman&quot;, serif;">OLE</span><span style="font-family: 宋体;">类型字段的值显示为图片。启动设计器，点击服务器</span><span style="font-family: &quot;Times New Roman&quot;, serif;">&gt;</span><span style="font-family: 宋体;">函数管理器，新增自定义函数</span><span style="font-family: &quot;Times New Roman&quot;, serif;">BINARYIMAGE</span><span style="font-family: 宋体;">，选择</span><span style="font-family: &quot;Times New Roman&quot;, serif;">com.FineReport.function.BinaryImage</span><span style="font-family: 宋体;">类：</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 21pt; line-height: 18.75pt; background-color: #ffffff;"><span style="font-family: 宋体;"><br /><img alt="" src="http://dl2.iteye.com/upload/attachment/0119/4515/21c5581e-b816-351d-90f3-eb31de47518c.png" style="border: 0px;" /><br />&nbsp;</span><span style="line-height: 18.75pt; text-indent: 21pt; font-family: 宋体;">将身份证读卡器写入</span><span style="line-height: 18.75pt; text-indent: 21pt; font-family: &quot;Times New Roman&quot;, serif;">Access</span><span style="line-height: 18.75pt; text-indent: 21pt; font-family: 宋体;">数据库</span><span style="line-height: 18.75pt; text-indent: 21pt; font-family: &quot;Times New Roman&quot;, serif;">OLE</span><span style="line-height: 18.75pt; text-indent: 21pt; font-family: 宋体;">型字段的照片信息拖入单元格，双击，在<strong>数据列</strong></span><strong style="line-height: 18.75pt; text-indent: 21pt;"><span style="font-family: &quot;Times New Roman&quot;, serif;">&gt;</span></strong><strong style="line-height: 18.75pt; text-indent: 21pt;"><span style="font-family: 宋体;">高级</span></strong><strong style="line-height: 18.75pt; text-indent: 21pt;"><span style="font-family: &quot;Times New Roman&quot;, serif;">&gt;</span></strong><strong style="line-height: 18.75pt; text-indent: 21pt;"><span style="font-family: 宋体;">自定义</span></strong><span style="line-height: 18.75pt; text-indent: 21pt; font-family: 宋体;">显示中使用自定义函数转换成图片：</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 21pt; line-height: 18.75pt; background-color: #ffffff;"><span style="line-height: 18.75pt; text-indent: 21pt; font-family: 宋体;"><br /><img alt="" src="http://dl2.iteye.com/upload/attachment/0119/4517/d2e615bb-02a1-3bb3-bf30-d7ddea2624ae.png" style="border: 0px;" /></span></p><img src ="http://www.blogjava.net/fannie/aggbug/431634.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2016-08-19 10:15 <a href="http://www.blogjava.net/fannie/archive/2016/08/19/431634.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>web报表开发工具FineReport Excel导入错位</title><link>http://www.blogjava.net/fannie/archive/2015/05/12/425018.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Tue, 12 May 2015 06:06:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2015/05/12/425018.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/425018.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2015/05/12/425018.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/425018.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/425018.html</trackback:ping><description><![CDATA[<div><strong style="font-size: 14pt;"><a href="http://www.finereport.com/">web报表开发工具</a>FineReport Excel导入错位<br /></strong><a name="a:1." style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div class="doc_h1" style="font-weight: bold; font-size: 16px; color: #383838; line-height: 11px; margin-top: 20px; margin-bottom: 16px;">1.&nbsp;问题描述</div></a><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">同一张模板，通过原样导出至Excel中，再刷新模板导入该Excel的时候，发现导入错位的问题，如下图所示：</div><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><img src="http://www.finereporthelp.com/help/13/29/1/0-1.png" style="padding: 10px 0px 5px;"  alt="" /></div><a name="a:2." style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div class="doc_h1" style="font-weight: bold; font-size: 16px; color: #383838; line-height: 11px; margin-top: 20px; margin-bottom: 16px;">2.&nbsp;解决思路</div></a><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">这是因为FineReport在7.1版本中新增了一个双向导入的功能，即Excel双向导入，其处理逻辑发生了变化，并对模板中合并的单元格进行了处理，导致导入错乱的情况出现，那么此时只需要在模板中导出隐藏行列，并使在导入Excel的时候，不使用双向导入，即在配置文件中关闭双向导入（双向导入默认关闭的，如果开启了需要关闭）即可。</div><a name="a:3." style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div class="doc_h1" style="font-weight: bold; font-size: 16px; color: #383838; line-height: 11px; margin-top: 20px; margin-bottom: 16px;">3.&nbsp;操作步骤</div></a><a name="a:3.1" style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div class="doc_h2" style="font-weight: bold; font-size: 15px; color: #383838; margin-top: 11px; margin-bottom: 11px;">3.1&nbsp;模板准备</div></a><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">如上效果图所示，准备如下图所示的模板：</div><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><img src="http://www.finereporthelp.com/help/13/29/1/0-2.png" style="padding: 10px 0px 5px;"  alt="" /></div><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">参数面板中有2个参数：<span class="doc_formula" style="font-weight: bold; color: #0000ff;">starttime</span>和<span class="doc_formula" style="font-weight: bold; color: #0000ff;">endtime</span>，其中开始日期的默认值为：<span class="doc_formula" style="font-weight: bold; color: #0000ff;">DATEDELTA(today(), if(tointeger(WEEKDAY($Date)) == 0, -6, 1 - WEEKDAY($Date)))</span>，结束日期的默认值为：<span class="doc_formula" style="font-weight: bold; color: #0000ff;">DATEDELTA(today(), if(tointeger(WEEKDAY($Date)) == 0, 0, 7 - WEEKDAY($Date)))</span>。</div><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">DATEDELTA()等函数的具体含义请查看日期常用处理函数。</div><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">合并B3和C3单元格，其值为：<span class="doc_formula" style="font-weight: bold; color: #0000ff;">=range($starttime, $endtime)</span>，合并D3和E3单元格，其值为<span class="doc_formula" style="font-weight: bold; color: #0000ff;">WEEKDAY(B3)</span>，合并F3和G3单元格，设置其控件类型为文本控件。</div><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><span class="doc_warning" style="color: red;">注:模板中要出现合并的单元格。</span></div><a name="a:3.2" style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div class="doc_h2" style="font-weight: bold; font-size: 15px; color: #383838; margin-top: 11px; margin-bottom: 11px;">3.2&nbsp;导出Excel</div></a><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">保存模板，点击填报预览，在web端打开该模板，并输入值班人字段值，如下图，输入完成之后，点击工具栏上的<span class="doc_navigation" style="font-weight: bold; color: #008080;">输出&gt;Excel&gt;原样导出</span>，如下图：</div><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><img src="http://www.finereporthelp.com/help/13/29/1/0-3.png" style="padding: 10px 0px 5px;"  alt="" /></div><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">此时，就会导出如上图所示的Excel。</div><a name="a:3.3" style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div class="doc_h2" style="font-weight: bold; font-size: 15px; color: #383838; margin-top: 11px; margin-bottom: 11px;">3.3&nbsp;导入Excel</div></a><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">回到设计器界面，根据导入行式报表中的操作步骤，为该模板的工具栏添加<span class="doc_navigation" style="font-weight: bold; color: #008080;">导入Excel按钮</span>，添加完成之后，重新填报预览该模板，点击导入Excel，选择刚刚导出的Excel文件，即可看到如下图所示效果，位置错乱：</div><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><img src="http://www.finereporthelp.com/help/13/29/1/0-4.png" style="padding: 10px 0px 5px;"  alt="" /></div><a name="a:3.4" style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div class="doc_h2" style="font-weight: bold; font-size: 15px; color: #383838; margin-top: 11px; margin-bottom: 11px;">3.4&nbsp;导出隐藏行列</div></a><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">回到设计器，点击<span class="doc_navigation" style="font-weight: bold; color: #008080;">模板导出属性</span>，勾选<span class="doc_navigation" style="font-weight: bold; color: #008080;">导出隐藏行</span>和<span class="doc_navigation" style="font-weight: bold; color: #008080;">导出隐藏列</span>，如下图：</div><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><img src="http://www.finereporthelp.com/help/13/29/1/0-5.png" style="padding: 10px 0px 5px;"  alt="" /></div><a name="a:3.5" style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div class="doc_h2" style="font-weight: bold; font-size: 15px; color: #383838; margin-top: 11px; margin-bottom: 11px;">3.5&nbsp;结果查看</div></a><div class="doc_description" style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">此时再重新导出Excel，导入Excel，就可以看到位置不会发生错乱了。</div><strong style="font-size: 14pt;"><br /></strong></div><img src ="http://www.blogjava.net/fannie/aggbug/425018.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2015-05-12 14:06 <a href="http://www.blogjava.net/fannie/archive/2015/05/12/425018.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图表制作FineReport单元格间联动</title><link>http://www.blogjava.net/fannie/archive/2015/05/11/424997.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Mon, 11 May 2015 09:25:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2015/05/11/424997.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/424997.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2015/05/11/424997.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/424997.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/424997.html</trackback:ping><description><![CDATA[<span style="font-size: 12px;"><strong><a href="http://www.finereport.com/knowledge/chart">图表制作</a>FineReport单元格间联动<br /><br /></strong></span><a name="a:1." style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div style="font-weight: bold; font-size: 16px; color: #383838; line-height: 11px; margin-top: 20px; margin-bottom: 16px;">1.&nbsp;问题描述</div></a><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">在查看报表时，可能某列的数据比较重要或者内容比较多的情况下，希望点击该行的某个数据时让其详细信息单独显示在数据的下方，并且不希望查数据库，此时要如何处理呢？</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><img src="http://www.finereporthelp.com/help/13/16/2/6-1.png" style="padding: 10px 0px 5px;"  alt="" /></div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">如上图，我们点击订单号，下面的收货人地址显示对应订单号的货主城市+货主地址。</div><a name="a:2." style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div style="font-weight: bold; font-size: 16px; color: #383838; line-height: 11px; margin-top: 20px; margin-bottom: 16px;">2.&nbsp;实现思路</div></a><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">通过给单元格增加超级链接-JavaScript，在js中给下面对应的单元格赋值。</div><a name="a:3." style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div style="font-weight: bold; font-size: 16px; color: #383838; line-height: 11px; margin-top: 20px; margin-bottom: 16px;">3.&nbsp;示例</div></a><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">下面我们以一个例子为例来看下如何实现效果。</div><a name="a:3.1" style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div style="font-weight: bold; font-size: 15px; color: #383838; margin-top: 11px; margin-bottom: 11px;">3.1&nbsp;打开模板</div></a><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">打开模板：<span style="font-weight: bold; color: #8b008b;">%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Primary\DetailReport\Details_1.cpt</span></div><a name="a:3.2" style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div style="font-weight: bold; font-size: 15px; color: #383838; margin-top: 11px; margin-bottom: 11px;">3.2&nbsp;增加数据列</div></a><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><img src="http://www.finereporthelp.com/help/13/16/2/6-2.png" style="padding: 10px 0px 5px;"  alt="" /></div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">如上图所示将货主地址拖入到H2单元格中，然后点击<span style="font-weight: bold; color: #008080;">高级&gt;自定义显示</span>将其修改为：<span style="font-weight: bold; color: #0000ff;">货主城市+$$$</span>即让其显示为"货主城市+货主地区"，最后将该单元格的列宽设置为0。</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><span style="color: red;">注："货主城市+$$$"中的货主城市是数据列。</span></div><a name="a:3.3" style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div style="font-weight: bold; font-size: 15px; color: #383838; margin-top: 11px; margin-bottom: 11px;">3.3&nbsp;固定单元格设置</div></a><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">由于要给单元格赋值并且在扩展数据的下方，因此若要在固定位置显示值就要做如下几个设置。</div><ul style="color: #00008b; position: relative; left: 5px; font-family: Arial, Verdana, sans-serif; font-weight: bold; line-height: 0px;"><li>每页显示固定条数</li></ul><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">我们要让每一页固定显示的条数相同，因此要给单元格增加行后分页的条件属性。</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">给A2单元格增加行后分页的条件属性，公式条件类型选择公式，并在公式中输入：<span style="font-weight: bold; color: #0000ff;">(row()-1)%10 == 0&nbsp;</span>即每页显示10条扩展出的数据。</div><ul style="color: #00008b; position: relative; left: 5px; font-family: Arial, Verdana, sans-serif; font-weight: bold; line-height: 0px;"><li>重复标题行和结尾行设置</li></ul><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">重复标题行：右击行序号1，选择<span style="font-weight: bold; color: #008080;">设置重复标题行</span>。</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">重复结尾行：选中3、4行，右击选择<span style="font-weight: bold; color: #008080;">设置重复结尾行</span>。</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">最终的表样如下：</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><img src="http://www.finereporthelp.com/help/13/16/2/6-3.png" style="padding: 10px 0px 5px;"  alt="" /></div><a name="a:3.4" style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div style="font-weight: bold; font-size: 15px; color: #383838; margin-top: 11px; margin-bottom: 11px;">3.4&nbsp;超级链接设置</div></a><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">下面我们要做的就是给A2单元格设置超级链接，使点击A2单元格时，对应的隐藏的H2单元格的内容显示在B4单元格中。</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">右击A2单元格，选择超级链接，点击JavaScript，具体设置如下图：</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><img src="http://www.finereporthelp.com/help/13/16/2/6-4.png" style="padding: 10px 0px 5px;"  alt="" /></div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><span id="b0" style="position: relative;"><input type="button" value="代码复制" id="a0" style="border: 1px solid #1287ac; background-color: #e1eaf5;" /><div style="position: absolute; left: 0px; top: 2px; width: 66px; height: 20px; z-index: 99;"></div></span><div style="font-family: 'Courier New', Courier, mono; border: 1px solid #2b91af; background-color: #ffffff; width: 875.859375px; max-height: 200px; margin-top: 8px; margin-bottom: 8px; margin-left: 26px;"><div></div><ol start="1" style="margin-left: 40px; color: #2b91af;"><li style="border-left-width: 1px; border-left-color: #bbbbbb; background-color: #f8f8f8;">var&nbsp;display=$(<span style="color: #2a00ff;">"[id^='B13-0']"</span>);&nbsp;&nbsp;&nbsp;<span style="color: #3f7f5f;">//获取BS端的B13单元格</span>&nbsp;&nbsp;</li><li style="border-left-width: 1px; border-left-color: #bbbbbb;">display.text(address);&nbsp;&nbsp;&nbsp;<span style="color: #3f7f5f;">//给B13单元格赋值</span>&nbsp;&nbsp;</li></ol></div></div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;"><span style="color: red;">注：这边是给BS端对应的单元格赋值，由于A2单元格是扩展的并且固定显示10行数据，因此在模板中的B4单元格在BS端就是B13单元格了。</span></div><a name="a:3.5" style="font-family: 微软雅黑; font-size: medium; line-height: 22px;"><div style="font-weight: bold; font-size: 15px; color: #383838; margin-top: 11px; margin-bottom: 11px;">3.5&nbsp;分页预览</div></a><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">点击分页预览， 点击对应的订单ID可以看到下面的显示的是对应的详细收货人地址，如上效果图。</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">已完成的模板可参考：<span style="font-weight: bold; color: #8b008b;">%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\CellsRelate.cpt</span>。</div><img src ="http://www.blogjava.net/fannie/aggbug/424997.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2015-05-11 17:25 <a href="http://www.blogjava.net/fannie/archive/2015/05/11/424997.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Finereport常见的数据集报错错误代码和解释 </title><link>http://www.blogjava.net/fannie/archive/2014/12/22/421631.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Mon, 22 Dec 2014 08:45:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2014/12/22/421631.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/421631.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2014/12/22/421631.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/421631.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/421631.html</trackback:ping><description><![CDATA[<div>NS-war-remote=错误代码\:1117 压缩部署不支持远程设计</div><div>NS_LayerReport_MultiDs=错误代码\:1101 行式引擎不支持多数据源展示</div><div>NS_LayerReport_RowCol=错误代码\:1102 行式引擎不支持条件属性修改行高列宽</div><div>NS_LayerReport_adFormula=错误代码\:1106 行式引擎不支持层次坐标</div><div>NS_LayerReport_columns=错误代码\:1107 行式引擎不支持分栏</div><div>NS_LayerReport_expandAttr=错误代码\:1104 行式引擎只支持从上到下扩展属性，其它属性设置均不支持</div><div>NS_LayerReport_float=错误代码\:1105 行式引擎不支持悬浮元素</div><div>NS_LayerReport_present=错误代码\:1103 行式引擎不支持形态</div><div>NS_LayerReport_sheets=错误代码\:1108 行式引擎不支持Sheet间运算</div><div>NS_LayerReport_subreport=错误代码\:1109 行式引擎不支持子报表</div><div>NS_browser_lang=错误代码\:1119 未找到当前浏览器语言对应的国际化文件,将以中文作为默认语言</div><div>NS_cell_formula=错误代码\:1203 错误的公式参数</div><div>NS_excel_poi=错误代码\:1207 导入Excel2007需要在lib目录下放置poi包</div><div>NS_exception_deathCircle=错误代码\:1303 单元格计算死循环</div><div>NS_exception_noTemplate=错误代码\:1304 没有找到模板文件</div><div>NS_exception_ps=错误代码\:1302 行高列宽超出页面大小设置</div><div>NS_exception_readError=错误代码\:1305 模板文件解析出错</div><div>NS_exception_readExcelError=错误代码\:1306 文件解析出错</div><div>NS_exception_td=错误代码\:1301 数据集配置错误</div><div>NS_export_2007=错误代码\:1122 导出Excel2007需要jdk版本1.5以上</div><div>NS_export_excelCellBg=错误代码\:1112 导出Excel单元格背景只支持纯色</div><div>NS_export_excelFormula=错误代码\:1110 导出Exel不支持该公式</div><div>NS_export_excelHtml=错误代码\:1111 导出Excel不支持Html中部分标签</div><div>NS_export_wordPageSize=错误代码\:1114 导出Word不支持多Sheet下的不同页面设置</div><div>NS_mail_config=错误代码\:1204 邮件配置参数不正确</div><div>NS_print_flashPaperSetting=错误代码\:1118 Flash打印不支持将页面设置传递给打印机</div><div>NS_print_noApplet=错误代码\:1202 当前工程目录下未发现Applet包</div><div>NS_print_pdf=错误代码\:1121 PDF打印只支持IE内核浏览器,其他浏览器将导出PDF文件</div><div>NS_print_plugin=错误代码\:1201 当前浏览器未安装打印所需插件</div><div>NS_register_ipFull=错误代码\:1115 系统并发数已满</div><div>NS_register_lic=错误代码\:1206 当前配置目录下未发现注册文件</div><div>NS_register_sense=错误代码\:1205 加密狗读取失败</div><img src ="http://www.blogjava.net/fannie/aggbug/421631.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2014-12-22 16:45 <a href="http://www.blogjava.net/fannie/archive/2014/12/22/421631.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用FineReport报表工具实现字段拼接回填数据库</title><link>http://www.blogjava.net/fannie/archive/2013/04/01/397226.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Mon, 01 Apr 2013 05:35:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2013/04/01/397226.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/397226.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2013/04/01/397226.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/397226.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/397226.html</trackback:ping><description><![CDATA[<div><p style="margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; text-align:center; line-height:18.0000pt; "><br /></p><p style="text-indent:21.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; text-align:justify; line-height:15.0000pt; background:#ffffff; "><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">数据表中需要新建一个字段district，该字段内容需要由另两个字段country和city加上汉字拼接而成，手动添加数据非常麻烦，这时候用FineReport</span><a href="http://www.finereport.com/knowledge"><span style="color: #0000ff; font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">报表工具</span></a><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">的填报功能可以简单且快捷地实现字段拼接并回填至数据库，实现该字段内容的更新。</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">下面看一下</span><a href="http://www.finereport.com/javareport"><span style="color: #0000ff; font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">Java报表工具</span></a><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">FineReport实现这一效果的具体步骤。</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-weight: bold; font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">1.&nbsp;绑定数据列</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">在</span><a href="http://www.finereport.com/"><span style="color: #0000ff; font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">报表</span></a><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">表样中，A3单元格绑定country字段，B3单元格绑定city字段</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">C3单元格时对应district字段的，district字段由country字段和city字段拼接而成，因而在C3单元格中写入公式：</span><span style="font-weight: bold; font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">=&#8221;国家：&#8221;+A3+&#8221;城市：&#8221;+B3</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/数据库1.png" width="368" height="80" alt="" /><br /></span><span style="font-weight: bold; font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">2.&nbsp;设置填报属性</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">设置</span><a href="http://www.finereport.com/knowledge/write"><span style="color: #0000ff; font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">报表填报</span></a><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">属性，使得每个单元格的值能够回填至对应的数据表字段中，如下图</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/数据库2.png" width="662" height="601" alt="" /><br /></span><span style="font-weight: bold; font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">3.&nbsp;设置控件属性</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">设置报表控件属性，方便修改单元格的值，并进而实现各字段的更新，这里将3个单元格都设置为文本控件，如下图</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/数据库3.png" width="662" height="601" alt="" /><br /></span><span style="font-weight: bold; font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">4.&nbsp;填报预览</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">点击</span><a href="http://www.finereport.com/knowledge/design"><span style="color: #0000ff; font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">报表设计</span></a><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">器上的&#8220;填报预览&#8221;按钮，可以在浏览器中预览到C3单元格的值已经自动拼接了，如下图</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/数据库4.png" width="323" height="236" alt="" /><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">点击&#8220;提交&#8221;按钮，弹出提交成功对话框，表示更新的字段已经回填至数据库中</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/数据库5.png" width="117" height="109" alt="" /><br /></span><span style="font-weight: bold; font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">5.&nbsp;检查数据表中district字段</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;">查看数据表，发现原先为空的district字段已经更新</span><span style="font-size: 9pt; font-family: Tahoma; background-position: initial initial; background-repeat: initial initial;"><br /></span><img src="http://www.blogjava.net/images/blogjava_net/fannie/数据库6.jpg" width="499" height="389" alt="" /><br /></p><p style="margin-bottom:0pt; margin-top:0pt; "></p></div><img src ="http://www.blogjava.net/fannie/aggbug/397226.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2013-04-01 13:35 <a href="http://www.blogjava.net/fannie/archive/2013/04/01/397226.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> Finereport常见问题&amp;紧急处理方案</title><link>http://www.blogjava.net/fannie/archive/2012/11/15/391368.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Thu, 15 Nov 2012 03:32:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2012/11/15/391368.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/391368.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2012/11/15/391368.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/391368.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/391368.html</trackback:ping><description><![CDATA[<div><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: 宋体; ">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">出现问题先搜一下文档上有没有，再看看度娘有没有，再看看论坛有没有。有报错要看日志（6.5的日志在设计器的菜单栏有窗口视图日志）。下面简单罗列下常见的问题，大多文档上都有提到的。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">address&nbsp;pool&nbsp;is&nbsp;full：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">地址池满，连接数超过并发数上限。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">文档</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">使用了未注册的功能：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">未注册的版本是可以试用所有功能的。注册的lic是勾选过功能点的，如果制作的模板使用了未注册的功能就会报这个错误。一般容易分辨，有的客户可能禁掉报错界面，这样测试是好的，一放到服务器上就出不来，没有报错界面就不太容易发现了。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">文档</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">提示注册：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">注册常见问题处理方法：http://www.finereporthelp.com/help/9/4.html</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">文档</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">session&nbsp;timed&nbsp;out：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">session超时。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">文档</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">没有返回数据集：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">在存储过程中的操作语句之前加上set&nbsp;nocount&nbsp;on&nbsp;或者在数据集exec调用存储过程的前面加上这句。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">当SET&nbsp;NOCOUNT&nbsp;为&nbsp;ON&nbsp;时，不返回计数（表示受&nbsp;Transact-SQL&nbsp;语句影响的行数）。当&nbsp;SET&nbsp;NOCOUNT&nbsp;为&nbsp;OFF&nbsp;时，返回计数。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">如果存储过程中包含的一些语句并不返回许多实际的数据，则该设置由于大量减少了网络流量，因此可显著提高性能。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">文档</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">模板文件损坏，或者打开模板没有反应：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">FR的cpt模板由设计器做出源文件是一组组的标签括起来的语句。像HTML的结构那样，可以用文本编辑器打开。有些客户的模板可能做的比较BT，或者高低版本乱捣鼓，或者正操作着出现什么DT的情况导致模板不完整。一般报错会告诉出错的位置。655版本可以用bak文件还原下，7.0就不太好办，可以尝试填补部分语句主要是标签来抢救部分模板。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">找不到模板：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">找不到模板可能的原因看看是不是URL的问题，直接在模板中写中文的话，有些浏览器是会自动转码的（记得chrome、搜狗好像是），有些不会，比如IE。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">文档</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">java&nbsp;heap&nbsp;space、stack&nbsp;overflow：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">这个问度娘。常见的原因是模板做的很复杂，用了上百字段，上百行的sql语句，各种嵌套，尤其要注意有没有死循环。也有可能是服务器端的问题，比如tomcat最大内存太小了用了默认的64M。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">数据集定义中有下拉复选框参数出问题：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">下拉复选框控件返回值默认情况下是数组，参数取到的字符串是不带引号的（所以在数据集定义的sql语句中调用字符串类型的参数的话要手动加上单引号才行）。多个值用in，sql的in语句参数是字符串数组，每个都要求带单引号。所以要转化下，把控件的返回值改成字符串，间隔符用','。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">文档</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">本地预览的效果和服务器上的效果不一样：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">首先检查jar包等是不是有问题。也有可能是嵌入平台后出现的问题。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">文档</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">平台管理忘了密码或者登不进：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">报表平台管理只有一个账号，用户名和密码放在web-inf/resources/privilege.xml中。655密码没加密，7.0密码是加密的，密码在&lt;rootManagerPassword&gt;标签中，把里面改成&lt;![CDATA[___0022]]&gt;密码就是一个1.用这个密码登进去再重新设置。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">图表中文乱码（方框）：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">这个Linux环境下装了oracle后容易出现这样的情况，方框是缺少中文字体的缘故（常见英文字体各种环境应该都有的）。安装对应的中文字体即可解决。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">大块头的数据库搞坏字体环境并不少见，上次在win7里面装domino，好多软件的字体都被搞了，重装了系统的中文字体重启了计算机才恢复正常。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">数据集预览的时候中文乱码（全问号）：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">乱码有几种情况：一种是方框，这个是字体的原因，画不出来汉字。一种是问号，这个是编码的问题，比如mysql数据库默认的编码是latin1，库里面没有中文对应的编码，就解析不了中文，解决方法是改变编码，比如把mysql的编码改成utf8或者gbk。这里要注意下的是，数据库有服务器编码，客户端编码，具体的某一个数据库和具体的表也有编码，只有在建数据库建表的时候选对了编码才行（没选的话就用的默认的）。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">repeated&nbsp;column&nbsp;width&nbsp;is&nbsp;larger&nbsp;than&nbsp;paper&nbsp;width：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">这个看这段话应该是很好理解的。比如做的模板页面宽度只能放开5列，结果给6列做了重复和冻结，这个逻辑上肯定是说不过去的。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">文档</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">模板打不开，拒绝访问：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">可能是win7操作系统对文件有权限。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">安装设计器后无法预览报表（404报错）：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">文档</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">对象不支持此属性或者方法、XXX未定义：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">文档</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">THREE未定义:</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">自己没碰到过没解决过。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">日期比较导致出错：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">我测试用的是自己搭的sqlserver2005.2012/01/01这种格式的日期和FR上的2012-01-01这种格式的是不能比较的，直接从数据库中读取的日期格式都比较长，不光是年月日，而且读不出来，不知道是为什么，预览时可以看到的。然后我加了个在条件属性中加了个left(todate($$$),10)转化了一下就解决了，todate转化成了-连接，前10是年月日。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">由一个单元格扩展出来的行高不一致（填报预览）：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">但是分页预览却是没有问题的。最后发现时因为设置了数据字典。设置了数据字典的单元格其真实值一行显示不了的，就换行了，所以变宽了。难道是填报预览时计算需要空间的时候用的是真实值计算的？解决方法，注意点，拉宽点就好了。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">使用程序数据集出错：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">654和655都有个问题是加载了有问题的class文件作为程序数据集，下次就打不开了，655是设计面板单元格界面没有了。7.0版本没这个问题。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">程序数据集class文件必须放在class&nbsp;com&nbsp;fr&nbsp;data目录下。&nbsp;编译好了后的class名也是不能修改的。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">自定义数据字典显示等号问题：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">FR的像自定义数据字典这种地方，跟单元格还有提示定义框一定，如果不是&#8216;=&#8217;号开头是当做字符串处理，&#8216;=&#8217;号开头当做公式处理。所以单写一个等号就是空白的。显示等号的话用="="</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">一个单元格内容过多报错：</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:18.7500pt; background:#ffffff; "><span style="font-size: 10.5pt; font-family: Tahoma; ">临时解决方法，直接合并多个单元格可以增加输入内容。</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p></div><img src ="http://www.blogjava.net/fannie/aggbug/391368.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2012-11-15 11:32 <a href="http://www.blogjava.net/fannie/archive/2012/11/15/391368.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java报表软件中Oracle数据库厉行计划详解</title><link>http://www.blogjava.net/fannie/archive/2012/08/23/386146.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Thu, 23 Aug 2012 13:52:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2012/08/23/386146.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/386146.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2012/08/23/386146.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/386146.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/386146.html</trackback:ping><description><![CDATA[<div><p style="margin-bottom:0pt; margin-top:0pt; text-align:center; background:#ffffff; ">&nbsp; &nbsp;&nbsp;<span style="color: #333333; font-family: Tahoma; font-size: 10.5pt; line-height: 15.75pt; text-align: left; ">&nbsp;Oracle数据库厉行计划的相关知识是本文我们主要要介绍的内容，我们首先介绍了厉行计划的概念，然后给出了两个厉行计划的实例进行说明，最后介绍了Oracle优化器的形式以及厉行计划对我们的用途，接下来就让我们一起来了解一下这部分内容。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-weight:bold; font-size:12.0000pt; font-family:'宋体'; background:#ffffff; ">Q：</span><span style="mso-spacerun:'yes'; color:#333333; font-weight:bold; font-size:12.0000pt; font-family:'Tahoma'; background:#ffffff; ">什么是厉行计划</span><span style="mso-spacerun:'yes'; color:#333333; font-weight:bold; font-size:12.0000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;所谓厉行计划，望文生义，即便对一个查询任务，做出一份怎样去告终任务的翔实计划。举个生存中的例子，我从珠海要去英国，我能够抉择先去香港然后起色，也能够先去北京起色，可能去广州也能够。然而究竟怎样去英国划算，也即便我的开支起码，这是一件划算考究的事情。同样对于查询而言，我们提交的SQL仅仅是描写出了我们的目标地是英国，但至于怎么去，等闲我们的SQL中是未曾给出提醒消息的，是由数据库来定夺的。</span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们先容易的看一个厉行计划的比拟：SQL&gt;&nbsp;set&nbsp;autotrace&nbsp;traceonly</span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">厉行计划一：</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">SQL&gt;&nbsp;select&nbsp;count(*)&nbsp;from&nbsp;t;</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">COUNT(*)</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">----------</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">24815</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">Execution&nbsp;Plan</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">0　SELECT&nbsp;STATEMENT&nbsp;Optimizer=CHOOSE</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">10　&nbsp;SORT&nbsp;(AGGREGATE)</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">21&nbsp;TABLE&nbsp;Access&nbsp;(FULL)&nbsp;OF&nbsp;'T'</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">厉行计划二：</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">SQL&gt;&nbsp;select&nbsp;count(*)&nbsp;from&nbsp;t;</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">COUNT(*)</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">24815</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">Execution&nbsp;Plan</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">0　SELECT&nbsp;STATEMENT&nbsp;Optimizer=CHOOSE&nbsp;(Cost=26&nbsp;Card=1)</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">10　&nbsp;SORT&nbsp;(AGGREGATE)</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">21&nbsp;INDEX&nbsp;(FULL&nbsp;SCAN)&nbsp;OF&nbsp;'T_INDEX'&nbsp;(NON-UNIQUE)(Cost=26&nbsp;Card=28180)</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">这两个厉行计划中，第一个表示求和是穿越举行全表扫描来做的，把全副表中数据读入内存来逐条累加;第二个表示依据表中索引，把全副索引读进内存来逐条累加，而无须去读表中的数据。然而这两种措施究竟哪种快呢?等闲来说可能二比一快，但也不是绝对的。这是一个很容易的例子演示厉行计划的差异。对于混杂的SQL(表连接、嵌套子查询等)，厉行计划可能几十种甚至上百种，然而究竟那种良好呢?我们事前并不懂得，数据库本身也不懂得，然而数据库会依据定然的法定可能普查消息(statistics)去抉择一个厉行计划，等闲来说抉择的是比拟优的，但也有抉择失手的时候，这即便这次谈论的价值所在。</span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-weight:bold; font-size:12.0000pt; font-family:'宋体'; background:#ffffff; ">Q：</span><span style="mso-spacerun:'yes'; color:#333333; font-weight:bold; font-size:12.0000pt; font-family:'Tahoma'; background:#ffffff; ">Oracle优化器形式</span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Oracle优化器有两大类，基于法定的和基于代价的，在SQLPLUS中我们能够察看init文件中定义的缺省的优化器形式。</span></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">SQL&gt;&nbsp;show&nbsp;parameters&nbsp;optimizer_mode</span>&nbsp;<span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">NAME&nbsp;TYPEVALUE</span>&nbsp;<span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">optimizer_mode&nbsp;string　&nbsp;CHOOSE</span><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">SQL&gt;</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">这是Oracle8.1.7&nbsp;企业版，我们能够看出，默认安装后数据库优化器形式为CHOOSE,我们还能够设置为&nbsp;RULE、FIRST_ROWS,ALL_ROWS。能够在init文件中对全副instance的所有会话设置，也能够独自对某个会话设置：</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">SQL&gt;&nbsp;ALTER&nbsp;SESSION&nbsp;SET&nbsp;optimizer_mode　=&nbsp;RULE;</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">会话已改动。</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">SQL&gt;　ALTER&nbsp;SESSION&nbsp;SET&nbsp;optimizer_mode　=&nbsp;FIRST_ROWS;</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">会话已改动。</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">SQL&gt;　ALTER&nbsp;SESSION&nbsp;SET&nbsp;optimizer_mode　=&nbsp;ALL_ROWS;</span></p><p style="margin-left:34.5000pt; margin-bottom:0pt; margin-top:0pt; text-align:left; line-height:15.7500pt; "><span style="mso-spacerun:'yes'; color:#666666; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">会话已改动。</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="text-indent:28.3500pt; margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">基于法定的查询，数据库依据表和索引等定义消息，按照定然的法定来发生厉行计划;基于代价的查询，数据库依据搜集的表和索引的数据的普查消息(穿越analyze&nbsp;号召可能利用dbms_stats包来搜集)归纳来定夺拨取一个数据库感受最优的厉行计划(切实上无须定最优)。RULE是基于法定的，CHOOSE表示万一查询的表存在搜集的普查消息则基于代价来厉行(在CHOOSE形式下Oracle批准的是&nbsp;FIRST_ROWS)，否则基于法定来厉行。在基于代价的两种措施中，FIRST_ROWS指厉行计划批准起码资源尽快的归来局部收获给客户端，对于排序分页页揭示这种查询尤其实用，ALL_ROWS指以大局花费资源起码的措施归来收获给客户端。</span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;基于法定的形式下，数据库的厉行计划等闲比拟安宁。但在基于代价的形式下，我们才有更大的时机抉择最优的厉行计划。也由于Oracle的许多查询方面的个性定然在基于代价的形式下能力揭示出来，因而我们等闲不抉择RULE(并且Oracle号称从&nbsp;Oracle&nbsp;10i版本数据库开始将不再扶持&nbsp;RULE)。既然是基于代价的形式，也即便说厉行计划的抉择是依据表、索引等定义和数据的普查消息来定夺的，这个普查消息是依据&nbsp;analyze&nbsp;号召可能dbms_stats包来定期搜集的。率先存在着一种可能，即便由于搜集消息是一个很花费资源和工夫的动作，尤其当表数据量很大的时候，因为搜集消息是对全副表数据举行重新的全面普查，因而这是我们定然端庄琢磨的问题。我们只能在服务器安逸的时候定期的举行消息搜集。这解释我们在一段日期内，普查消息可能和数据库本身的数据并不合乎;另外即便Oracle的普查数据本身也存在着不准确局部(翔实参看Oracle&nbsp;DOCUMENT)，更重要的一个问题即便及时普查数据相对曾经比拟准确，然而Oracle的优化器的抉择也并不是始终是最优的计划。这也攀附于Oracle对不同厉行计划的代价的计算法定(我们等闲是无法懂得翔实的计算法定的)。这好像我们定夺从香港还是从北京去英国，车票、机票等切实价格究竟是怎么核算出来的我们并不懂得，可能说我们目前打听的价格消息，在我们乘车前往的时候，恳挚价格跟我们的核算曾经发生了改变。所有的因素，都将波及我们的全副开支。</span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-weight:bold; font-size:12.0000pt; font-family:'宋体'; background:#ffffff; ">Q：</span><span style="mso-spacerun:'yes'; color:#333333; font-weight:bold; font-size:12.0000pt; font-family:'Tahoma'; background:#ffffff; ">厉行计划安宁功能带给我们什么</span><span style="mso-spacerun:'yes'; color:#333333; font-weight:bold; font-size:12.0000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Oracle存在着厉行计划抉择失手的可能。这也是我们经常碰见的一些假象，例如总有人说我的过程在测验数据库中跑的很好，但在产品数据库上即便跑的很差，甚至后者硬件条件比前者还好，这究竟是为什么?硬件资源、普查消息、参数设置都可能对厉行计划发生波及。由于因素太多，我们总是对未来怀着一种莫名的生怕，我的产品数据库上线后究竟跑的好不好?于是Oracle供给了一种安宁厉行计划的力气，也即便把在测验环境中的运行良好的厉行计划所发生的OUTLINES移植到产品数据库，使得厉行计划不会随着其他因素的改变而改变。</span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">那么OUTLINES是什么呢?先要推荐一个内容，Oracle供给了在SQL中利用HINTS来领导优化器发生我们想要的厉行计划的力气。这在多表连接、混杂查询中尤其管用。HINTS的种类许多，能够设置优化器目标(RULE、CHOOSE、FIRST_ROWS、ALL_ROWS)，能够指定表连接的次序，能够指定利用哪个表的哪个索引等等，能够对SQL举行许多精细的扼制。穿越这种措施发生我们想要的厉行计划的这些HINTS,Oracle能够存储这些HINTS，我们称之为OUTLINES。穿越STORE&nbsp;OUTLINES能够使得我们具有尔后发生雷同厉行计划的力气，也即便使我们具有了安宁厉行计划的力气。</span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这里想给出一个附带的解释即便，切实上，我们穿越工具修改SQL，例如利用SQL　EXPERT修改后的SQL，这些不但仅是加了HINTS而且文本都曾经发生了改变的SQL，也能够存储OUTLINES，并可被利用到利用中。但这不是定然见效，我们定然测验察看是否见效。但由于就算给了讹谬的OUTLINES,数据库在厉行的时候，揖　智疏忽过去重新生成厉行计划而不会归来讹谬，因而我们才敢塌心的这么利用。当然在Oracle文档中并未曾指明能够这么做，文档中只是解释，万一存在OUTLINES的同时又在SQL中加了HINTS，则会利用OUTLINES而疏忽HINTS。这秉功能在LECCO将公布的产品中会利用这一功能，这么能够将SQL&nbsp;EXPERT的修改SQL的力气和安宁厉行计划的力气联合起来，那么我们就对不能改动源代码的利用具有了相当壮大的SQL优化力气。</span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可能我们会有疑问，假定安宁了厉行计划，那还搜集普查消息干吗?这是因为几个起因构成的，率先，目前的厉行计划对于未来发生了改变的数据未必即便轻便的，存在着目前的厉行计划不中意未来数据的改变后的效率，而新的普查消息的情形下所发生的厉行计划也并不是全副都科学的。那这个时候，我们能够批准新搜集的普查消息，然而却对新普查消息下不良的厉行计划批准Oracle供给的厉行计划安宁性这个力气安宁厉行计划，这么联合起来我们能够发生顺心的高效的数据库运行环境。</span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; "><br /></span><span style="mso-spacerun:'yes'; color:#333333; font-size:10.5000pt; font-family:'Tahoma'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;</span>&nbsp;<span style="color: #333333; font-size: 10.5pt; font-family: Tahoma; background-color: #ffffff; background-position: initial initial; background-repeat: initial initial; ">我们还必需关怀的一个东西，Oracle供给的dbms_stats包除非具有搜集普查消息的力气，还具有把数据库中普查消息(statistics)export/import的力气，还具有只搜集普查消息而使得普查消息不利用于数据库的力气(把普查消息搜集到一个特定的表中而不是即刻见效)，在这个基础上我们就能够把普查消息export出来再import到一个测验环境中，再运行我们的利用，在测验环境中我们考察最新的普查消息会导致哪些厉行计划发生改变(DB&nbsp;EXPERT的Plan&nbsp;Version&nbsp;Tracer是模仿不同环境并积极察看不同环境中厉行计划改变的工具)，是变好了还是变差了。我们能够把变差的这一局部在测验环境中利用hints可能利用工具(SQL&nbsp;EXPERT是在重写SQL这一领土现在最强有力的工具)发生良好的厉行计划的SQL，利用这些SQL能够发生OUTLINES,然后在产品数据库利用最新的普查消息的同时移植进这些OUTLINES。<br /><br /><span style="text-indent: -18pt; font-size: 10.5pt; font-family: 'Times New Roman'; ">&nbsp;</span><span style="text-indent: -18pt; font-size: 10.5pt; color: #ff0000; font-family: 宋体; "><a title="Java报表软件" href="http://www.finereport.com/products/advantages" >Java报表软件</a>：</span><br /><p style="margin-bottom:0pt; margin-top:0pt; "><a href="http://www.finereport.com/products/advantages"><span style="color: #ff0000; font-size: 10pt; font-family: 'Times New Roman'; ">http://www.finereport.com/products/advantages</span></a></p><br /></span></p></div><img src ="http://www.blogjava.net/fannie/aggbug/386146.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2012-08-23 21:52 <a href="http://www.blogjava.net/fannie/archive/2012/08/23/386146.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>程序数据集传参使用解决方案</title><link>http://www.blogjava.net/fannie/archive/2011/12/01/365269.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Thu, 01 Dec 2011 03:28:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2011/12/01/365269.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/365269.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2011/12/01/365269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/365269.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/365269.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 通过TableData接口可以读取任何形式的数据源，java报表FineReport报表的数据来源可以是数据库数据或是文本数据，并且还可以是其它任何类型的数据，因为这些所有的数据来源都实现了TableData接口，所以用户只要实现了TableData接口，也就可以用自定义类型的数据源了。对于传参，我们可以在程序数据集中写入传入的参数，此方案传入的参数为 tableName 和 columnName...&nbsp;&nbsp;<a href='http://www.blogjava.net/fannie/archive/2011/12/01/365269.html'>阅读全文</a><img src ="http://www.blogjava.net/fannie/aggbug/365269.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2011-12-01 11:28 <a href="http://www.blogjava.net/fannie/archive/2011/12/01/365269.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FineReport报表工具关于Linux下字体乱码终极解决方案</title><link>http://www.blogjava.net/fannie/archive/2011/11/10/363383.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Thu, 10 Nov 2011 02:11:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2011/11/10/363383.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/363383.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2011/11/10/363383.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/363383.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/363383.html</trackback:ping><description><![CDATA[<span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 13px/20px verdana, Arial, helvetica, sans-seriff; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"> 
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">1</font></span><span style="box-sizing: border-box; font-family: 宋体">：在</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">windows</font></span><span style="box-sizing: border-box; font-family: 宋体">下找到系统使用到的字体，这里以楷体举例</span><span style="box-sizing: border-box" lang="EN-US"><o:p style="box-sizing: border-box"></o:p></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box; font-family: 宋体">&#183;到</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">c</font></span><span style="box-sizing: border-box; font-family: 宋体">盘的</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman"><span class="Apple-converted-space">&nbsp;</span>windows</font></span><span style="box-sizing: border-box; font-family: 宋体">文件夹的</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman"><span class="Apple-converted-space">&nbsp;</span>Fonts</font></span><span style="box-sizing: border-box; font-family: 宋体">文件夹里面存放了</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">windows</font></span><span style="box-sizing: border-box; font-family: 宋体">中用到的所有字体，具体路径</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">C:\WINDOWS\Fonts<o:p style="box-sizing: border-box"></o:p></font></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box; font-family: 宋体">&#183;找到楷体字体</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">SIMKAI.TTF<o:p style="box-sizing: border-box"></o:p></font></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box" lang="EN-US"><v:shapetype style="box-sizing: border-box" id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><v:stroke style="box-sizing: border-box" joinstyle="miter"></v:stroke><v:formulas style="box-sizing: border-box"><v:f style="box-sizing: border-box" eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f style="box-sizing: border-box" eqn="sum @0 1 0"></v:f><v:f style="box-sizing: border-box" eqn="sum 0 0 @1"></v:f><v:f style="box-sizing: border-box" eqn="prod @2 1 2"></v:f><v:f style="box-sizing: border-box" eqn="prod @3 21600 pixelWidth"></v:f><v:f style="box-sizing: border-box" eqn="prod @3 21600 pixelHeight"></v:f><v:f style="box-sizing: border-box" eqn="sum @0 0 1"></v:f><v:f style="box-sizing: border-box" eqn="prod @6 1 2"></v:f><v:f style="box-sizing: border-box" eqn="prod @7 21600 pixelWidth"></v:f><v:f style="box-sizing: border-box" eqn="sum @8 21600 0"></v:f><v:f style="box-sizing: border-box" eqn="prod @7 21600 pixelHeight"></v:f><v:f style="box-sizing: border-box" eqn="sum @10 21600 0"></v:f></v:formulas><v:path style="box-sizing: border-box" o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></v:path><o:lock style="box-sizing: border-box" aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape style="box-sizing: border-box; width: 63pt; height: 60.75pt" id="_x0000_i1025" type="#_x0000_t75"><v:imagedata style="box-sizing: border-box" o:title="楷体" src="file:///C:\Users\Sophia\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"><font style="box-sizing: border-box" face="Times New Roman"><img style="box-sizing: border-box" border="0" alt="" src="http://www.finereport.com/forumimages/font.png" /></font></v:imagedata></v:shape><o:p style="box-sizing: border-box"></o:p></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box" lang="EN-US"><a style="box-sizing: border-box; color: rgb(52,104,164)" href="http://www.finereport.com/forumimages/font.png"><font style="box-sizing: border-box" color="#0000ff" face="Times New Roman">http://www.finereport.com/forumimages/font.png</font></a><font style="box-sizing: border-box" face="Times New Roman"><o:p style="box-sizing: border-box"></o:p></font></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">2</font></span><span style="box-sizing: border-box; font-family: 宋体">：将楷体字体拷贝到</span><u style="box-sizing: border-box"><span style="box-sizing: border-box; color: rgb(0,176,240)" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">Linux</font></span></u><u style="box-sizing: border-box"><span style="box-sizing: border-box; font-family: 宋体; color: rgb(0,176,240)">操作系统</span></u><span style="box-sizing: border-box; font-family: 宋体">下</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">JRE</font></span><span style="box-sizing: border-box; font-family: 宋体">下的</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">\lib\fonts</font></span><span style="box-sizing: border-box; font-family: 宋体">文件夹</span><span style="box-sizing: border-box" lang="EN-US"><o:p style="box-sizing: border-box"></o:p></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box; font-family: 宋体">&#183;注意这个</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">JRE</font></span><span style="box-sizing: border-box; font-family: 宋体">必须是服务器用到的</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">JDK</font></span><span style="box-sizing: border-box; font-family: 宋体">下的</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">JRE<o:p style="box-sizing: border-box"></o:p></font></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box; font-family: 宋体">例如服务器为</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">tomcat<o:p style="box-sizing: border-box"></o:p></font></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box; font-family: 宋体">使用的</span><span style="box-sizing: border-box"><font style="box-sizing: border-box" face="Times New Roman"><span class="Apple-converted-space">&nbsp;</span><span style="box-sizing: border-box" lang="EN-US">jdk</span></font></span><span style="box-sizing: border-box; font-family: 宋体">是</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">usr</font></span><span style="box-sizing: border-box; font-family: 宋体">下</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman"><span class="Apple-converted-space">&nbsp;</span>/java/jdk1.5.0_13<o:p style="box-sizing: border-box"></o:p></font></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box; font-family: 宋体">登陆到</span><u style="box-sizing: border-box"><span style="box-sizing: border-box; color: rgb(0,176,240)" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">linux</font></span></u><u style="box-sizing: border-box"><span style="box-sizing: border-box; font-family: 宋体; color: rgb(0,176,240)">操作系统</span></u><span style="box-sizing: border-box" lang="EN-US"><o:p style="box-sizing: border-box"></o:p></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">Cd</font></span><span style="box-sizing: border-box; font-family: 宋体">到</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">usr/java/jdk1.5.0_13/jre/lib/fonts<o:p style="box-sizing: border-box"></o:p></font></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box; font-family: 宋体">&#183;登陆到</span><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">ftp<span class="Apple-converted-space">&nbsp;</span></font></span><span style="box-sizing: border-box; font-family: 宋体">将之前准备好的楷体拷贝到当前目录下</span><span style="box-sizing: border-box" lang="EN-US"><o:p style="box-sizing: border-box"></o:p></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">ftp id<o:p style="box-sizing: border-box"></o:p></font></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box; font-family: 宋体">转到字体所在位置<span style="box-sizing: border-box" lang="EN-US"><o:p style="box-sizing: border-box"></o:p></span></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box; font-family: 宋体" lang="EN-US">get SIMKAL.TTF<span class="Apple-converted-space">&nbsp;</span></span><span style="box-sizing: border-box; font-family: 宋体">到当前目录下<span style="box-sizing: border-box" lang="EN-US"><o:p style="box-sizing: border-box"></o:p></span></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box; font-family: 宋体" lang="EN-US">exit<span class="Apple-converted-space">&nbsp;</span></span><span style="box-sizing: border-box; font-family: 宋体">退出<span style="box-sizing: border-box; color: rgb(0,176,240)" lang="EN-US">ftp</span><span style="box-sizing: border-box; color: rgb(0,176,240)">工具就可以了</span><span style="box-sizing: border-box" lang="EN-US"><o:p style="box-sizing: border-box"></o:p></span></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box; font-family: 宋体" lang="EN-US"><o:p style="box-sizing: border-box">&nbsp;</o:p></span></p>
<p style="box-sizing: border-box; margin: 0cm 0cm 0pt" class="MsoNormal"><span style="box-sizing: border-box" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">3</font></span><span style="box-sizing: border-box; font-family: 宋体">：重启服务器</span><span style="box-sizing: border-box"><font style="box-sizing: border-box" face="Times New Roman"><span class="Apple-converted-space">&nbsp;</span></font></span><span style="box-sizing: border-box; font-family: 宋体">解决<u style="box-sizing: border-box"><span style="box-sizing: border-box; color: rgb(0,176,240)">操作系统</span></u></span><u style="box-sizing: border-box"><span style="box-sizing: border-box; color: rgb(0,176,240)" lang="EN-US"><font style="box-sizing: border-box" face="Times New Roman">linux</font></span></u><span style="box-sizing: border-box; font-family: 宋体">下字体乱码问题<br style="box-sizing: border-box" />文章转自：<span style="box-sizing: border-box; font-family: 'Times New Roman', serif; font-size: 10.5pt" lang="EN-US"><a style="box-sizing: border-box; color: rgb(52,104,164)" href="http://blog.vsharing.com/fanfanzheng/A1443212.html"><font style="box-sizing: border-box" color="#0000ff">http://blog.vsharing.com/fanfanzheng/A1443212.html</font></a></span></span></p></span><br class="Apple-interchange-newline" /><img src ="http://www.blogjava.net/fannie/aggbug/363383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2011-11-10 10:11 <a href="http://www.blogjava.net/fannie/archive/2011/11/10/363383.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQLServer2005获取大数据集时内存不足FineReport报表软件的解决办法</title><link>http://www.blogjava.net/fannie/archive/2010/06/22/324208.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Tue, 22 Jun 2010 12:35:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2010/06/22/324208.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/324208.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2010/06/22/324208.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/324208.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/324208.html</trackback:ping><description><![CDATA[&nbsp;
<p class="MsoNormal" style="text-indent: 28.1pt; text-align: center; mso-char-indent-count: 2.0" align="center"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="font-size: 14pt; color: black">SQLServer2005</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">获取大数据集时内存不足</span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="font-size: 14pt; color: black"><a href="http://www.finereport.com/cn/functions.html">FineReport<span lang="EN-US" style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><span lang="EN-US">报表</span></span></a></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt; color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">软件的解决办法</span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="font-size: 14pt; color: red"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style="mso-bidi-font-weight: normal"><span style="color: black; font-family: 宋体; mso-bidi-font-size: 10.5pt">一<span lang="EN-US">. </span>问题描述：<span lang="EN-US"><o:p></o:p></span></span></strong></p>
<p class="MsoNormal"><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp; </span></span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用</span><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp; </span>SQL Server<span style="mso-spacerun: yes">&nbsp; </span>jdbc</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">读取</span><span lang="EN-US">SQLServer2005</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中的大数据量表时，如数据量达到</span><span lang="EN-US">20</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">万时，发生如下类似错误：</span></p>
<p class="MsoNormal"><img height="172" alt="" src="http://www.finereport.com/forumimages/e82.png" width="552" border="0" /><br />
</p>
<p class="MsoNormal"><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">二</span><span lang="EN-US">. </span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">原因：</span><span lang="EN-US"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><span lang="EN-US" style="color: black; mso-bidi-font-size: 10.5pt"><span style="mso-spacerun: yes">&nbsp;&nbsp; </span></span><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-size: 10.5pt">发生该情况与</span><span lang="EN-US">sqlserver jdbc</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">驱动的</span><span lang="EN-US">select Method</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">有关。</span><span lang="EN-US">selectMethod</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">分为</span><span lang="EN-US">direct</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang="EN-US">cursor</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。当使用</span><span lang="EN-US">direct</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时，驱动会一次性载入所有结果集到</span><span lang="EN-US">jvm</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">内存中，因此造成了</span><span lang="EN-US">out of memory</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">；而使用</span><span lang="EN-US">cursor</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">时，会在服务器端创建一个</span><span lang="EN-US">cursor</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">，因此不会占据客户端的大量内存。</span></p>
<p class="MsoNormal" style="line-height: 21.6pt; mso-layout-grid-align: none"><span lang="EN-US"><span style="mso-spacerun: yes">&nbsp; </span></span><span style="font-size: 10pt; color: red; font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">注意：</span><span style="font-size: 10pt; color: black; font-family: 宋体; mso-hansi-font-family: 'Times New Roman'; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">此问题只存在于<span lang="EN-US">MS SQLSERVER</span>，其它关系型数据库无此问题<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">三</span><span lang="EN-US">. </span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">解决办法：</span><span lang="EN-US"><o:p></o:p></span></strong></p>
<p class="MsoNormal"><strong style="mso-bidi-font-weight: normal"><span lang="DA" style="color: black; mso-bidi-font-size: 10.5pt; mso-ansi-language: DA"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span></span></strong><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">修改</span><span lang="DA" style="mso-ansi-language: DA">SQLServer2005 jdbc</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的</span><span lang="DA" style="mso-ansi-language: DA">URL: <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="DA" style="mso-ansi-language: DA">jdbc:sqlserver://192.168.100.118:1433;databaseName=test;<span style="color: red">selectMethod=cursor<o:p></o:p></span></span></p>
<p class="MsoNormal"><span style="color: black; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: DA">如下图：</span><span lang="DA" style="color: black; mso-ansi-language: DA"><o:p></o:p></span></p>
<p class="MsoNormal"><img height="334" alt="" src="http://www.finereport.com/forumimages/e83.png" width="555" border="0" /></p>
<p class="MsoNormal"><span lang="DA" style="mso-ansi-language: DA"><span style="mso-spacerun: yes">&nbsp;</span><br />
</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: DA">但</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">这种方式会影响整个应用程序</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: DA">，</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可能引起其他普通情况的读取性能下降。</span><strong style="mso-bidi-font-weight: normal"><span lang="DA" style="color: black; mso-bidi-font-size: 10.5pt; mso-ansi-language: DA"><o:p></o:p></span></strong></p><img src ="http://www.blogjava.net/fannie/aggbug/324208.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2010-06-22 20:35 <a href="http://www.blogjava.net/fannie/archive/2010/06/22/324208.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FineReport关于Linux下字体乱码终极解决方案</title><link>http://www.blogjava.net/fannie/archive/2010/04/13/318121.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Tue, 13 Apr 2010 02:18:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2010/04/13/318121.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/318121.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2010/04/13/318121.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/318121.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/318121.html</trackback:ping><description><![CDATA[&nbsp;
<p class="MsoNormal">&nbsp;</p>
<p class="MsoNormal"><span lang="EN-US"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9pt">1</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：在</span><span lang="EN-US" style="font-size: 9pt">windows</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下找到系统使用到的字体，这里以楷体举例</span><span lang="EN-US" style="font-size: 9pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&#183;到</span><span lang="EN-US" style="font-size: 9pt">c</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">盘的</span><span lang="EN-US" style="font-size: 9pt"> windows</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件夹的</span><span lang="EN-US" style="font-size: 9pt"> Fonts</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件夹里面存放了</span><span lang="EN-US" style="font-size: 9pt">windows</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">中用到的所有字体，具体路径</span><span lang="EN-US" style="font-size: 9pt">C:\WINDOWS\Fonts<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&#183;找到楷体字体</span><span lang="EN-US" style="font-size: 9pt">SIMKAI.TTF<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9pt"><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"></v:path><o:lock v:ext="edit" aspectratio="t"></o:lock></v:shapetype><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;<img height="124" alt="" src="http://www.finereport.com/forumimages/e1.png" width="128" border="0" /></span><span lang="EN-US" style="font-size: 9pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9pt">2</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：将楷体字体拷贝到</span><span lang="EN-US" style="font-size: 9pt">Linux</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下</span><span lang="EN-US" style="font-size: 9pt">JRE</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的</span><span lang="EN-US" style="font-size: 9pt">\lib\fonts</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">文件夹</span><span lang="EN-US" style="font-size: 9pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&#183;注意这个</span><span lang="EN-US" style="font-size: 9pt">JRE</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">必须是服务器用到的</span><span lang="EN-US" style="font-size: 9pt">JDK</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下的</span><span lang="EN-US" style="font-size: 9pt">JRE<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">例如服务器为</span><span lang="EN-US" style="font-size: 9pt"><a href="http://www.finereport.com/"><span lang="EN-US" style="font-size: 9pt"><u>tomcat </u></span></a></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用的</span><span lang="EN-US" style="font-size: 9pt"> jdk</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">是</span><span lang="EN-US" style="font-size: 9pt">usr</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下</span><span lang="EN-US" style="font-size: 9pt"> /java/jdk1.5.0_13<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">登陆到</span><span lang="EN-US" style="font-size: 9pt">linux</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">系统</span><span lang="EN-US" style="font-size: 9pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9pt">Cd</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">到</span><span lang="EN-US" style="font-size: 9pt">usr/java/jdk1.5.0_13/jre/lib/fonts<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">&#183;登陆到</span><span lang="EN-US" style="font-size: 9pt">ftp </span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">将之前准备好的楷体拷贝到当前目录下</span><span lang="EN-US" style="font-size: 9pt"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9pt">ftp id<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size: 9pt; font-family: 宋体">转到字体所在位置<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9pt; font-family: 宋体">get SIMKAL.TTF </span><span style="font-size: 9pt; font-family: 宋体">到当前目录下<span lang="EN-US"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9pt; font-family: 宋体">exit </span><span style="font-size: 9pt; font-family: 宋体">退出<span lang="EN-US">ftp<o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9pt; font-family: 宋体"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size: 9pt">3</span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">：重启服务器</span><span style="font-size: 9pt"> </span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">解决</span><span lang="EN-US" style="font-size: 9pt"><a href="http://www.finereport.com/"><span lang="EN-US" style="font-size: 9pt"><u>linux</u></span></a></span><span style="font-size: 9pt; font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下字体乱码问题</span><span lang="EN-US" style="font-size: 9pt"><o:p></o:p></span></p><img src ="http://www.blogjava.net/fannie/aggbug/318121.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2010-04-13 10:18 <a href="http://www.blogjava.net/fannie/archive/2010/04/13/318121.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FineReport客户端打印的解决方案</title><link>http://www.blogjava.net/fannie/archive/2009/12/04/304737.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Fri, 04 Dec 2009 02:18:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2009/12/04/304737.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/304737.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2009/12/04/304737.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/304737.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/304737.html</trackback:ping><description><![CDATA[今天看了下FineReport关于客户端打印的解决方案，正好跟大家分享下： <br />
FineReport的打印服务提供了简单而高效的客户端及服务器端打印解决方案。<br />
在实际的应用中，往往服务器和实际访问报表的客户端不在同一台机器中。 <br />
FineReport提供了两种不同的打印解决方案以解决不同的需求。<br />
客户端打印：在本机客户端浏览报表时，选择客户端打印，即执行打印操作的为本机连接的打印机。 <br />
服务器端打印：在本机客户端浏览报表时，选择服务器端打印，即执行打印操作的为服务器所在机器所连接的打印机。&nbsp;<br />
<img border="0" alt="" src="http://www.finereport.com/forumimages/a30.png" /> <br />
例: 如图所示，服务器在日本，我们在北京访问服务器上的报表。 <br />
当我调用客户端打印的时候，打印操作即在北京被执行，那么我就可以在北京拿到这一份打印内容 <br />
当我调用服务器端打印的时候，打印操作即在日本被执行，那么打印出的内容即在日本。<img src ="http://www.blogjava.net/fannie/aggbug/304737.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2009-12-04 10:18 <a href="http://www.blogjava.net/fannie/archive/2009/12/04/304737.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>发票打印方向解决方案</title><link>http://www.blogjava.net/fannie/archive/2009/07/17/287174.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Fri, 17 Jul 2009 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2009/07/17/287174.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/287174.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2009/07/17/287174.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/287174.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/287174.html</trackback:ping><description><![CDATA[<span style="font-family: 宋体; color: #666666; font-size: 9pt">解决问题：打印票据类文件的方向横向纵向设置问题</span>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">解决方案：在打印机设置中添加相应的纸张类型</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">解决步棸：</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">１、在以往的Windows 98操作系统中，打印机属性里的&#8220;纸张大小&#8221;中有&#8220;自定义&#8221;一项。而Windows 2000和Windows XP中自定义的位置是不同于Windows 98的。</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">这里用一个示例来表述。假定用户使用了一款15cm宽，20cm高的自制纸张，想分别在Windows XP和Windows 2000操作系统中添加这款纸张类型，以便使用时可以方便选择。</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">由于在Window XP和Windows 2000操作系统中添加自定义纸张的步骤完全相同，这里只用一个在windowsXP下的示例作为代表。</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">在Windows XP操作系统中，步骤如下：</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">１.１、调出&#8220;服务器属性&#8221;界面。</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">在&#8220;控制面板&#8221;中选择&#8220;打印机和传真机&#8221;双击打开。然后点击&#8220;文件&#8221;，在下拉菜单中选择&#8220;服务器属性&#8221;。如</span><span style="font-family: 宋体; color: #285ab4; font-size: 9pt">图（１）</span><span style="font-family: 宋体; color: #666666; font-size: 9pt">：</span>&nbsp;</p>
<table class="MsoNormalTable" border="0" cellpadding="0">
    <tbody>
    </tbody>
</table>
<p><img border="0" alt="" src="http://www.finereport.com/forumimages/06.png " /></p>
<p style="text-align: left; line-height: 12.75pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #285ab4; font-size: 9pt">图（１）</span><span style="font-family: 宋体; color: black; font-size: 9pt">：打开&#8220;服务器属性&#8221;</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">１.２、创建，并且保存自定义的纸张。</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">在&#8220;服务器属性&#8221;中，勾选&#8220;创建新格式&#8221;。然后在&#8220;表格名&#8221;中为自己新定义的纸张起一个名字，比如：创建新格式。在&#8220;宽度&#8221;，&#8220;高度&#8221;中分别键入15，和20。&#8220;打印机区域边距&#8221;可根据需要自行制定。最后点击&#8220;保存&#8221;。</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">一个名叫&#8220;创建新格式&#8221;的格式就产生了。其代表一种宽度15cm高度20cm的纸张大小。如</span><span style="font-family: 宋体; color: #285ab4; font-size: 9pt">图（２）</span><span style="font-family: 宋体; color: #666666; font-size: 9pt">。</span>&nbsp;</p>
<table class="MsoNormalTable" border="0" cellpadding="0">
    <tbody>
    </tbody>
</table>
<p><img border="0" alt="" src="http://www.finereport.com/forumimages/07.png " /></p>
<p style="text-align: left; line-height: 12.75pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #285ab4; font-size: 9pt">图（２）</span><span style="font-family: 宋体; color: #000007; font-size: 9pt">：</span><span style="font-family: 宋体; color: black; font-size: 9pt">创建新格式</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">１.３、在打印机属性中选用这款新定义的纸张。(下面以LQ-1600K4打印机为例进行说明）&nbsp;</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">打开打印机属性，点击&#8220;打印首选项&#8221;，点击&#8220;高级&#8221;，点击&#8220;纸张大小&#8221;下拉菜单。在其中选择&#8220;创新建格式&#8221;纸张类型。即可。如</span><span style="font-family: 宋体; color: #285ab4; font-size: 9pt">图（３）</span><span style="font-family: 宋体; color: #666666; font-size: 9pt">：</span>&nbsp;</p>
<table class="MsoNormalTable" border="0" cellpadding="0">
    <tbody>
    </tbody>
</table>
<p><img border="0" alt="" src="http://www.finereport.com/forumimages/08.png " /></p>
<p style="text-align: left; line-height: 12.75pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #285ab4; font-size: 9pt">图（３）</span><span style="font-family: 宋体; color: black; font-size: 9pt">：调用该格式</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">２、所有的打印机限于它的机械结构（走纸系统、纸张感应系统）等原因，都有自己的对纸张大小的最基本的要求。并不是所有的纸张大小都可以支持到。</span></p>
<p style="text-align: left; line-height: 15pt" class="MsoNormal" align="left"><span style="font-family: 宋体; color: #666666; font-size: 9pt">比如有的用户希望打印10cm以下宽度的纸张，比如7cm宽的卡片铭牌，自定义好纸张之后，却发现在自己的1600K4打印机的属性中没有这款纸型。这是因为1600K4打印机默许的最小纸宽为9.91cm，小于这个宽的的纸张由于打印机不能保证顺利进纸、正确走纸而不支持用户设定。因而用户看不到自己设定的7cm纸宽。</span></p><img src ="http://www.blogjava.net/fannie/aggbug/287174.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2009-07-17 15:45 <a href="http://www.blogjava.net/fannie/archive/2009/07/17/287174.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java报表中AIX字体丢失解决方案</title><link>http://www.blogjava.net/fannie/archive/2009/06/19/283234.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Fri, 19 Jun 2009 07:13:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2009/06/19/283234.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/283234.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2009/06/19/283234.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/283234.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/283234.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 问题：图标中文显示为方框<br><br>工具：FineReport<br><br><br>解决方案：<br><br>解决办法：拷贝中文字体到操作系统<br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/fannie/archive/2009/06/19/283234.html'>阅读全文</a><img src ="http://www.blogjava.net/fannie/aggbug/283234.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2009-06-19 15:13 <a href="http://www.blogjava.net/fannie/archive/2009/06/19/283234.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>