﻿<?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/echoseason/category/47449.html</link><description>关注java报表工具 报表制作 </description><language>zh-cn</language><lastBuildDate>Mon, 25 May 2015 22:18:40 GMT</lastBuildDate><pubDate>Mon, 25 May 2015 22:18:40 GMT</pubDate><ttl>60</ttl><item><title>统计图表FineReport聚合报表</title><link>http://www.blogjava.net/echoseason/archive/2015/05/18/425136.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Mon, 18 May 2015 06:24:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2015/05/18/425136.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/425136.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2015/05/18/425136.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/425136.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/425136.html</trackback:ping><description><![CDATA[<div><a href="http://www.finereport.com/knowledge/chart">统计图表</a>FineReport聚合报表<br /><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/9/3-1.gif" style="padding: 10px 0px 5px;"  alt="" /></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><a name="a:2.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;">2.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/9/3-2.gif" 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><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/9/3-3.gif" style="padding: 10px 0px 5px;"  alt="" /></div><a name="a:2.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;">2.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;">设置固定格式表头，不需要受到扩展数据的影响，这时就两个聚合块，一个设表头格式，另一个就是展示扩展数据，两个聚合块相互独立，如下图设置效果：</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/9/3-4.gif" style="padding: 10px 0px 5px;"  alt="" /></div><a name="a:2.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;">2.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;">已完成模板可参照<span style="font-weight: bold; color: #8b008b;">%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Advanced\polybook.cpt</span>。模板效果在线查看请点击polybook.cpt</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: #0000ff;">&amp;op=view</span>，则可看到文档中第一张图的效果。</div></div><img src ="http://www.blogjava.net/echoseason/aggbug/425136.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2015-05-18 14:24 <a href="http://www.blogjava.net/echoseason/archive/2015/05/18/425136.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图表制作FineReport 连接池原理</title><link>http://www.blogjava.net/echoseason/archive/2015/05/18/425133.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Mon, 18 May 2015 02:40:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2015/05/18/425133.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/425133.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2015/05/18/425133.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/425133.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/425133.html</trackback:ping><description><![CDATA[<div style="text-align: center; "><a href="http://www.finereport.com/knowledge/chart">图表制作</a>FineReport 连接池原理<br /><div style="text-align: left;"><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: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;">另外，由于对JDBC中的原始连接进行了封装，从而方便了数据库应用对于连接的使用（特别是对于事务处理），提高了开发效率，也正是因为这个封装层的存在，隔离了应用的本身的处理逻辑和具体数据库访问逻辑，使应用本身的复用成为可能。</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:1.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;">1.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;">应用程序中建立的连接池其实是一个静态的。所谓静态连接池是指连接池中的连接在系统初始化时就已分配好，且不能随意关闭连接。Java中提供了很多容器类可以方便的构建连接池，如：Vector、Stack、Servlet、Bean等，通过读取连接属性文件Connections.properties与数据库实例建立连接。在系统初始化时，根据相应的配置创建连接并放置在连接池中，以便需要使用时能从连接池中获取，这样就可以避免连接随意的建立、关闭造成的开销。</div><a name="a:1.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;">1.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;">连接池治理策略是连接池机制的核心。当连接池建立后，如何对连接池中的连接进行治理，解决好连接池内连接的分配和释放，对系统的性能有很大的影响。连接的合理分配、释放可提高连接的复用，降低了系统建立新连接的开销，同时也加速了用户的访问速度。下面介绍连接池中连接的分配、释放策略。</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">连接池的分配、释放策略对于有效复用连接非常重要，我们采用的方法是一个很有名的设计模式：Reference Counting（引用记数）。该模式在复用资源方面应用的非常广泛，把该方法运用到对于连接的分配释放上，为每一个数据库连接，保留一个引用记数，用来记录该连接的使用者的个数。</div><a name="a:1.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;">1.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><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">连接池分配一个连接后如定义一个数据集，点击预览，执行完对应的sql语句会将所占用的连接归还连接池。</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;">数据库连接池中到底要放置多少个连接，才能使系统的性能更佳，用minConn和maxConn来限制。</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">minConn是当应用启动的时候连接池所创建的连接数，假如过大启动将变慢，但是启动后响应更快；假如过小启动加快，但是最初使用的用户将因为连接池中没有足够的连接不可避免的延缓了执行速度。因此应该在开发的过程中设定较小minConn，而在实际应用的中设定较大minConn。maxConn是连接池中的最大连接数，可以通过反复试验来确定此饱和点。</div><div style="color: #383838; text-indent: 22px; text-align: justify; margin-top: 5px; margin-bottom: 5px; font-family: 微软雅黑; line-height: 22px;">为此在连接池类ConnectionPool中加入两个方法getActiveSize（）和getOpenSize（），ActiveSize 表示某一时间有多少连接正被使用，OpenSize表示连接池中有多少连接被打开，反映了连接池使用的峰值。将这两个值在日志信息中反应出来， minConn的值应该小于平均ActiveSize，而maxConn的值应该在activeSize和OpenSize之间。</div></div></div><img src ="http://www.blogjava.net/echoseason/aggbug/425133.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2015-05-18 10:40 <a href="http://www.blogjava.net/echoseason/archive/2015/05/18/425133.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>实用的大数据安全工具与技巧合集</title><link>http://www.blogjava.net/echoseason/archive/2015/01/04/422022.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Sun, 04 Jan 2015 06:26:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2015/01/04/422022.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/422022.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2015/01/04/422022.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/422022.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/422022.html</trackback:ping><description><![CDATA[<div>&nbsp; &nbsp; &nbsp; 大数据应用的安全性方面往往被忽视或者被视为次要的需求。但是，数据的安全性在数据处理过程有着十分巨大的影响。本文将介绍一些保护大数据应用的步骤和工具。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;随着大数据在不同的领域蔓延，安全方面受到越来越多的关注。以前，我们使用具有中心控制的安全系统，但这并不足以保护你的应用程序免受入侵。大数据带来了另外一些安全关切问题，与正常的应用程序有很大不同。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;在当今世界，安全性相关的探索非常困难,前进方向也难以界定。整个软件系统中实现合适的端至端安全系统是非常昂贵的。总有一个突破安全防护的可能性存在， 无论你遵循什么样的政策或制度都是一样。企业进行大数据项目时应制定相应的计划，根据自己的预算和政策，采用最现代化新式安全措施。</div><div></div><div><strong>&nbsp; &nbsp; &nbsp; &nbsp;在大数据环境中的安全风险</strong></div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;大数据时代出现了数据量，数据速率和数据种类的显著增长，另外云计算模式下，移动应用程序和其他应用程序接连增长。通过不同的系统、应用和环境，数据从一 端流向另一端。这种数据爆炸对业务发展洞察力提供了有意义帮助，但它也把商业数据暴露给了各种系统，流程和相关人员。由于庞大的数据量在不同的协作系统进 行存储，处理，分析，总会存在安全漏洞。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;大数据从不同的源和不同类型的商业智能工具采集出来以用于分析，并获得有意义的信息。该信息被决策者访问和使用。有时候数据也可用于协作。用于协作和处理 的工具也有安全性限制。所以，总有暴露敏感数据/内容的概率。一旦大数据的值元素被确定，它就可以被访问，更新或甚至由用户改变。这可能会导致对企业造成 严重的安全问题和威胁。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;先进的安全措施，可以确保在协作环境中的信息安全。涉及大数据的企业需要在控制和平衡业务需求与数据安全防护之间做到更加精确。以下是关于保护数据的一些建议：</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;将大数据分割成小数据：以这种方式，系统将能够更好地处理数据的数量，速度和种类。其结果，企业也将能够更快和更准确进行商业决策。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;识别信息的适用范围：企业需要识别参与此次合作的员工，合作伙伴，供应商，或任何其他第三方，另外也要识别沟通渠道。这有助于给出关于合作环境和利益相关者的详细思路。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;部署数据控制：数据<a href="http://www.finereport.com/knowledge/professional/activex.html">报表控件</a>都部署在非常重要战略位置。这将确保数据的保护与协作。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;在云计算和移动环境的控制部署：云和移动合作是任何应用程序及其部署的重要组成部分，也是风险最高的区域之一。企业需要了解和识别数据是如何在云计算和移动环境中实现共享。</div><div></div><div><strong>&nbsp; &nbsp; &nbsp; &nbsp;大数据安全工具</strong></div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;在过去几年中，大多数企业采用单一的软件供应商和单个数据库(SAP，Oracle ，PeopleSoft等)为整个企业服务。其结果是，安全性问题更加明显并易于管理。但在目前情况下，我们有大数据，云计算，移动设备等等，系统中的安 全漏洞的数量是未知的，并且安全漏洞的可能性要高得多。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;在最近的信息安全发展中，也有许多软件包和供应商可用于加强信息安全实践。对于大数据边界安全策略与其他系统类似，所以在这部分中，我们将只讨论'处于网络内部&#8220; 的工具。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;监控和记录：监视和记录一切是检测未授权活动的最佳策略。一些日志系统，如系统日志(Linux)，事件日志(Windows)可以被有效地利用。 SNMP对记录网络事件非常有用。也有可供日志汇总不同的软件包，并将其存储在一个中央位置进行分析。这些被称为安全信息和事件管理软件(SIEM)包。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;分析和审计：SIEM包的主要功能是自动检测未经授权的活动，并产生警告。但是，所有SIEM软件需要配置才能正常工作。建议使用预配置SIEM包并时常 更新他们，这样能够通过日志分析，找出安全漏洞。最新的SIEM包LogRhythm，Q1实验室(IBM)，McAfee的Splunk等。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;身份管理：身份和访问管理(IAM)对于大数据保护来说是非常重要的，。因为数据是通过使用不同的信道被员工/承包商访问，这些信道包括移动设 备，SAAS模式，或其他服务。身份可以确定是谁正在对敏感数据进行访问，考虑&#8220;身份&#8221;作为新的安全尺度是非常重要的，不应只是专注于敏感数据的物理位 置。身份管理是绝对有必要考虑的工具集合，将有助于我们应对周边发生的故障。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;掩蔽数据：数据掩蔽是保护数据安全的另一种方式。这些数据可以通过加密或断词被屏蔽。一些厂商还要求他们的数据屏蔽工具不遵循加密和标记化，但能够动态地执行整个屏蔽。</div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;应用安全：最后一步是确保访问敏感信息的大数据应用安全性。这是非常关键的，因为大部分流行工具构建时并没有考虑安全因素。最近，大多数的大数据工具在安 全方面有了显著改善。最重要的两个因素是&#8220;权限粒度级别'和'数据加密&#8221;。Hadoop的最新版本将支持新的安全功能，可能解决这些新出现的问题。</div><div></div><div><strong>&nbsp; &nbsp; &nbsp; &nbsp;总结</strong></div><div></div><div>&nbsp; &nbsp; &nbsp; &nbsp;在当今世界，大数据安全是个大问题。正如我们所知道的大数据系统并不像普通单一的供应商系统，因此安全问题的处理更加复杂。没有单一的解决方案/工具/供 应商可以保护您的数据，但是你可能需要使用不同的安全工具，这取决于需要保护的区域所处位置。因此，最终的解决办法是继续使用多种有效的工具，随着时间的 推移。最后，你应该会具有一个良好的，全面的安全系统。</div><img src ="http://www.blogjava.net/echoseason/aggbug/422022.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2015-01-04 14:26 <a href="http://www.blogjava.net/echoseason/archive/2015/01/04/422022.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我们还需要开源报表工具吗?</title><link>http://www.blogjava.net/echoseason/archive/2014/12/11/421272.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Thu, 11 Dec 2014 05:32:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2014/12/11/421272.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/421272.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2014/12/11/421272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/421272.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/421272.html</trackback:ping><description><![CDATA[曾几何时，中国大地上报表工具群雄并起，为了挣得一席之地，各报表厂商使出浑身解数，广告到处是，价格各种低，拼的血肉横飞。但奇怪的是，受市场欢迎的竟然是Jasperreport+ireport、birt报表这样开源的java报表工具。究其原因，无非是这两个词&#8220;开源&#8221;、&#8220;免费&#8221;。<p>	时间转到2014年第4季度，当年炙手可热的开源报表软件是否还那么受欢迎，是否还拥有那么多的粉丝？经典的、较知名的开源报表工具有&#8220;JasperReports&#8221;、&#8220;ireport&#8221;、&#8220;JFreeReport&#8221;、&#8220;BIRT&#8221;、 &#8220;Openreports&#8221;、&#8220;DataVision&#8221;、&#8220;Fourfive&#8221;和&#8220;Jmagallanes&#8221;这几款，下面我们一一述说他们的境况。</p><h3>JasperReports</h3><p><a title="jasperReports+Ireport和FineReport报表的对比" href="http://blog.chinaunix.net/knowledge/acquire/jasperreportsireport.html" target="_blank">JasperReports</a>是程序员最受欢迎、最常用的开源报表工具，常和ireport一起搭配使用。JasperReports可以在Java环境下制作报表，支持PDF、HTML、XLS、CSV和XML文件输出格式。<br />百度搜索&#8220;JasperReports&#8221;，结果有988000条，但内容多是2012年以前的，排名第一位的官网，更新时间竟然是2008年，可以看出jasperreports的关注度、搜索量已经不比往年。<br /><img class="centered" title="JasperReports百度搜索结果" alt="JasperReports" src="http://www.finereport.com/wp-content/uploads/2014/10/open1.jpg" width="500" data-bd-imgshare-binded="1" /></p><h3>Ireport</h3><p><a title="jasperReports+Ireport和FineReport报表的对比" href="http://blog.chinaunix.net/knowledge/acquire/jasperreportsireport.html" target="_blank">Ireport</a>和jasperreports是天生一对，是转为后者开发的纯java的可视化报表设计器。Ireport允许用户可视化编辑包含charts、图片、子报表等的复杂报表。iReport 还集成了JFreeChart图表制作包。允许用户可视化地编辑XML JasperDesign文件。<br />百度搜索ireport，返回2240000条结果，内容同样没有多少更新，毋庸置疑，ireport也丧失掉了人们的宠爱。<br /><img class="centered" title="Ireport百度搜索结果" alt="Ireport" src="http://www.finereport.com/wp-content/uploads/2014/10/open2.jpg" width="500" data-bd-imgshare-binded="1" /></p><h3>JFreeReport</h3><p>	JFreeReport是一个用来生成报表的Java类库，现在改名为Pentaho Reporting。作为开源报表工具的它为Java应用程序提供一个灵活的打印功能并支持输出到打印机和PDF, Excel, HTML和XHTML, PlainText, XML和CSV文件中。<br />百度搜索JfreeReport返回了19100条结果，搜索Pentaho Reporting返回了35600条结果，相比ireport更加寒碜，而且可悲的是，笔者试图找到最新的源码包和使用教程，竟然没有找到，资源还都是2009年以前的。<br /><img class="centered" title="Ireport软件下载" alt="JFreeReport" src="http://www.finereport.com/wp-content/uploads/2014/10/open3.jpg" width="500" data-bd-imgshare-binded="1" /></p><h3>BIRT</h3><p>	BIRT是一个Eclipse-based开源报表系统。它主要是用在基于Java与J2EE的Web应用程序上。BIRT主要由两部分组成：一个是基于Eclipse的报表设计和一个可以加到你应用服务的运行期组件。BIRT同时也提供一个图形报表制作引擎。<br />BIRT报表由数据连接、数据转换、业务逻辑设计、表现四个组成逻辑构成，可以设计制作简单的列表报表、交叉报表和文本报表，也支持饼图、折线图、柱形图等基础图表。<br /><img class="centered" title="BIRT报表贴吧留言" alt="BIRT报表" src="http://www.finereport.com/wp-content/uploads/2014/10/open4.jpg" width="500" data-bd-imgshare-binded="1" /><br />BIRT报表的搜索结果还是很多的，达到了163万，这得益于与Eclipse强大的支持。但是网络舆论是怎么样的呢？大家是热捧还是棒杀？经过一番资料收集加上个人经验，BIRT的优劣大概有这么几点。优点是免费，操作界面清晰直观，布局比较科学，图表还是比较漂亮的，而且本地化做的还好，安装之后操作界面是中文的（最新版是4.4.1，可以下载测试下），这些优点在开源报表工具中也算是比较突出的。同样，缺点也很明显，条带状的报表模型，很多中国式复杂报表做不了，没有填报，若项目中遇到填报需要花费大量时间开发，最麻烦的就是问题找不到技术支持，学习资料也是很少。下图是一个网友对Birt报表的心声和态度。</p><h3>Openreports</h3><p>	OpenReports提供基于web的开源报表解决方案，通过浏览器自动生成动态PDF,XLS,HTMLCSV和Chart报表。利用到的开源技术有Hibernate,Veloctiy,Webwork。<br />百度搜索Openreports返回了78400条数据，打开其官网，发现真是简陋至极， 不愧是开源报表工具！请问帮助文档在哪？请问可以交流的人在哪？请问可以在那里交流问题。<br /><img class="centered" title="Openreports帮助文档" alt="Openreports报表" src="http://www.finereport.com/wp-content/uploads/2014/10/open5.jpg" width="500" data-bd-imgshare-binded="1" /></p><h3>DataVision</h3><p>	DataVison 是一个类似于 Crystal Reports 的开源报表工具。通过它可以使用一个拖放的 GUI 设计报告并从应用程序中运行、查看和打印报告，或者将报告导出为 HTML、XML、PDF、LaTeX2e、DocBook 或以制表符或逗号分隔的文本文件，这些文件又可以用于生成 PDF、文本、HTML、PostScript 格式的报告。<br /><img class="centered" title="DataVison软件版本" alt="DataVison开源报表" src="http://www.finereport.com/wp-content/uploads/2014/10/open6.jpg" width="500" data-bd-imgshare-binded="1" /><br />DataVison的热度似乎要好一些，百度搜索结果达到70多万，但版本一直停留在2008年的V1.2.0，这就是一个致命缺陷了。翻遍各大IT论坛和问答网，也不见DataVison的讨论，可以判断，DataVison就是昨日辉煌。</p><h3>Fourfive、Jmagallanes等</h3><p>	之所以把他们放在一起，是因为这些开源报表工具实在是人气太低了，没有必要去单独介绍分析。笔者只能说，fourfive和jmagallanes已经over了。</p><p>	经过上面的分析，可以看出开源报表工具风光大不如以前，日薄西山了，形成前后如此巨大差异的原因是是什么？</p><p>	数年前，人力成本低，所开发的系统难度也不高，相对于昂贵的商业报表工具，开源的报表工具成了最好的选择，虽然开源报表工具都很难，但投入人力研究是可行的。而现在，一方面人力成本成了项目的主要成本，另一方面系统难度逐渐升级，要求的稳定性、功能、美观度和交互效果已远非开源工具能解决的，对整个项目而言，商业报表工具带来的效益以远高于投入。简单总结一下，开源报表工具的致命缺点有：</p><p>1、功能整体比较弱，若是项目需求有变更，项目开发者将陷于进退两难境地，此外开源报表功能薄弱，所实现的效果、展现的功能较收费软件差距较大。</p><p>2、技术服务没有保障，若是项目中遇到难题或出现bug，开发者只能叹息了，总之项目风险很大。</p><p>3、对人员能力要求高，一般是程序员才能胜任使用开源报表，但须知这类人员的人力成本。</p><p>4、学习成本高，全英文的帮助文档、产品说明书和产品使用界面，让多少英雄泪流满面。当然也有学习资料好的，但那收费！</p><p>	那么，社会潮流已经抛弃开源报表软件，需要什么样的商业报表软件呢？</p><p>	对应开源报表软件的4大致命缺点，需要的商业报表需要满足如下条件：</p><p>1、功能强大，可以解决中国式复杂报表，支持多数据源报表、html5图表、移动端、填报功能。</p><p>2、强大的技术支持团队，覆盖到全国的服务体系，多种多样的服务渠道和服务响应策略。</p><p>3、报表产品易学易用易集成，0编码即可制作报表，最好支持业务人员自己DIY报表并分析。</p><p>4、事实证明类excel设计模式是最适合中国的报表设计模式，需要类excel的设计界面，多种多样的学习资料，如帮助文档、视频教程、线下线上培训课程。</p><p>	当然满足这一条件的国产报表软件并不多（国外报表软件水土不服，这里直接pass掉），而FineReport便是翘楚，是中国报表软件第一品牌！<br />原文转载自：FineReport官网:<a href="http://www.finereport.com/knowledge/acquire/opensourcereport.html">http://www.finereport.com/knowledge/acquire/opensourcereport.html</a></p><img src ="http://www.blogjava.net/echoseason/aggbug/421272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2014-12-11 13:32 <a href="http://www.blogjava.net/echoseason/archive/2014/12/11/421272.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>保险行业信息化建设之报表项目实施案例（一）</title><link>http://www.blogjava.net/echoseason/archive/2014/04/30/413089.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Wed, 30 Apr 2014 06:09:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2014/04/30/413089.html</guid><description><![CDATA[<p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">作为我国金融体系的三大支柱之一，与人民群众的生产生活息息相关的保险行业是国家社会保障体系的重要组成部分。随着WTO的不断深入，国内保险业已面向国际市场逐步开放，要想在发展上与国际市场同步，首先就要在信息化方面与国际同步发展。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">在一个行业的信息化建设中，最让人头疼的莫过于前端展现层面的<a title="帆软报表项目" href="http://www.finereport.com/company" target="_blank" data-mce-href="http://www.finereport.com/company">报表项目</a>。首先需要选择合适的报表平台，然后是项目的实施，找外包团队还是自己做？报表项目需求本身也非常难确定，一个报表项目实施到一半，需求扩大，预算不够这样的例子比比皆是。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">我们这里以<a title="帆软报表FineReport" href="http://www.finereport.com/" target="_blank" data-mce-href="http://www.finereport.com">帆软公司FineReport</a>项目部门在某保险公司报表项目上成功实施的<a title="报表项目" href="http://www.finereport.com/company" target="_blank" data-mce-href="http://www.finereport.com/company">报表项目</a>为案例，分三个篇幅分享一下保险行业信息化建设之报表项目案例经验。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">项目实施周期：3个月</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">项目实施工程师：2人</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">报表工具选择：帆软报表FineReport</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">背景及具体需求如下：</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">一．XX保险公司增值应用现状</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">&#8230;&#8230;在多年的信息化过程中，积累了大量的客户，销售人员和保单数据以及交易数据，但是数据未能充分利用，对数据深层的关联和所蕴含的价值挖掘不深。&#8230;&#8230;如何结合我公司实际，挖掘现有数据价值，用活数据，将数据转化为生产力，从而辅助领导进行决策，促进提高工作效率，提升公司效益，是我们现在亟需解决的一个问题。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">现阶段，省公司基于数据服平台(DSP)的增值应用主要包含：xx统计查询系统（xxqrydb）、业务查询系统（YG-QRY）、销售管理平台、个险简易查询平台、销售人员业绩统计管理系统（SIMS）、xx省短信发送系统（xxsmsdb）、xx省监控系统（xxmsdb），续期查询等。还有并非数据服务的系统，只是为了满足相关部门需求的应用系统，如xx需求查询系统（xxrims），以及xx人力考勤系统，财务邮寄登记查询系统等。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">二．XX保险公司增值应用架构</p><div mceiecenter"="" style="text-align: center; font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;"><dl><dt><img src="http://www.finebi.com/reportblog/wordpress/wp-content/uploads/2014/04/jiagou.jpg" alt="报表项目架构" width="396" height="484" data-mce-src="http://www.finebi.com/reportblog/wordpress/wp-content/uploads/2014/04/jiagou.jpg" style="border: 0px;" /></dt><dd></dd></dl></div><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">三．XX保险公司增值应用特点</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">1．应用系统多，入口不统一，权限不统一，规范不统一，数据不统一，开发工具不统一。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">2．数据应用代码重复利用率低。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">3．应用范围广，使用人员多。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">4．报表展现形式单一，以数据展现为主，数据分析类较少。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">5．数据来源不仅仅基于数据服务平台，越来越多的应用需要手工录入、手工导入和手工填报。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">6．应用需求驱动多，数据驱动少。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">7．应用服务于公司内部多，服务于外部少。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">&nbsp;</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">四．XX增值应用统一平台规划</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">基于以上XX增值应用特点，因此计划搭建&#8220;XX增值应用统一平台&#8221;，主要需求如下：</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">1．建立XX数据仓库</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">&#8230;&#8230;近期目标：设计基本主题，如：保费主题、保单主题（新单受理-承保-核保-理赔-退保-撤单）、渠道主题（个险、团险、银保、电销）、客户主题等，基本涵盖现有应用，形成主题丰富，易用高效，性能优良，便于扩展的基础架构。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">未来目标：设计更多主题，如运营主题，公司绩效考核主题等，使用先进技术，对数据仓库不断改进，持续优化，从&#8220;产品为中心&#8221;逐步发展到&#8220;以客户为中心&#8221;，使其不断适应公司发展需要。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">2．搭建XX统一登录系统。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">3．建设XX商业智能(BI)系统</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">&#8230;&#8230;近期目标：</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">1)&nbsp;原有系统整合和迁移，测试和试运行。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">2)&nbsp;丰富报表展现形式。不仅仅包含固定格式报表，还包括动态报表，交互式报表，自定义报表（定制报表），以及数据、图形、趋势分析，趋势预测等多样化的图形分析。制式报表、动态报表，交互式报表，自定义报表（定制报表），图形化展现等，提高用户体验和感受。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">3)&nbsp;使用OLAP技术，对数据进行分析</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">4)&nbsp;使用数据挖掘技术，可针对一些主题进行深度挖掘，形成一些基本的数据挖掘模型，为领导决策提供更有价值的决策信息。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">未来目标：不断完善和丰富数据挖掘模型，能对未来趋势进行预测，从而指导公司的经营活动和领导决策。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">&nbsp;</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">五．XX增值应用统一平台建设目标</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">1．既结合当前应用需要，又能满足未来应用发展需要。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">&#8230;&#8230;考虑到未来各业务部门和管理部门需求会越来越多，业务逻辑越来越复杂，数据仓库的数据量也越来越大，因此，系统的可扩展性是必须考虑的重要因素。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">2．系统具有良好的性能，具有对大量数据的并行处理能力</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">&#8230;&#8230;如何对大数据进行有效出题，提高系统对大量数据的并行处理能力，使系统具有更高的性能，是我们必须考虑的另外一个重要因素。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">3．应用层的最终展现手段丰富多样，能满足用户的个性化需求。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">4．合理严格的权限管理，能满足公司各级用户的需要。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">5．系统用户并发性能适应公司需要，不能由于用户过多导致系统太慢或者崩溃，切实提升用户体验。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">我公司全省有近xx名员工，近x万名销售人员和xx多万的客户，此次建设的XX增值应用统一平台，计划将内部员工和销售人员纳入系统中&#8230;&#8230;在用户并发性和大数据量操作的情况下，能有效减少用户等待时间，提高系统响应速度。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">6．友好的个性化首页，信息丰富，界面美观</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">&nbsp;</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">六．XX增值应用统一平台实施步骤</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">1．整理我公司现有的各类统计、查询应用，通过统一规划，分成不同主题，统一数据来源，统一规范，统一计算口径和数据逻辑，形成数据的统一出口，保证数据的准确性和一致性。此阶段主要是结合现有应用从技术角度对数据进行整合。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">2．征集省市县各相关部门的需求，对现有各类统计、查询应用意见和建议，抽取需求共性，结合第一步中的需求，形成数据仓库的基础框架和相关主题建设目标。此阶段主要是从应用的角度对数据进行整合，主要是业务驱动。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">3．选择外包公司，合作开发。根据现状和需求特点，外包公司结合自身实际和优势，针对xx增值应用统一平台建设，形成项目解决方案。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">根据外包公司<a title="帆软报表项目" href="http://www.finereport.com/company" target="_blank" data-mce-href="http://www.finereport.com/company">报表项目</a>解决方案，结合我公司技术人员对业务及业务流程熟悉的优势，选择具有先进技术和符合我省实际的外包公司进行合作，实施XX增值应用统一平台<a title="报表项目" href="http://www.finereport.com/company" target="_blank" data-mce-href="http://www.finereport.com/company">报表项目</a>建设。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">4．完成xx增值应用统一平台开发，进行测试和试运行。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">5．平台推广和培训。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">不仅包含对省市县各级公司的用户使用培训，也包含对增值应用统一平台的运维培训及后续继续开发和完善培训，以及对有需求地市的信息技术部人员的技术培训，便于其使用数据仓库系统进行数据挖掘和数据分析。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">6．正式上线运行。</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">&nbsp;</p><p style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; font-size: 13px; line-height: 19px;">备注：项目所采用报表产品及外包厂商为帆软公司，算是报表行业的领头角色，报表产品或者项目需求，将帆软(<a title="帆软finereport报表项目" href="http://www.finereport.com/" target="_blank" data-mce-href="http://www.finereport.com">http://www.finereport.com</a>)列入选择之一，是比较靠谱的。<br />文章转自：<a href="http://blog.vsharing.com/fanfanzheng/A1754391.html">http://blog.vsharing.com/fanfanzheng/A1754391.html</a><br /><br /><br /><br /></p><img src ="http://www.blogjava.net/echoseason/aggbug/413089.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2014-04-30 14:09 <a href="http://www.blogjava.net/echoseason/archive/2014/04/30/413089.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>报表finereport根据参数将数据存入不同的数据库</title><link>http://www.blogjava.net/echoseason/archive/2013/06/15/400584.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Sat, 15 Jun 2013 15:09:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2013/06/15/400584.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/400584.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2013/06/15/400584.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/400584.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/400584.html</trackback:ping><description><![CDATA[<div class="Section0" style="layout-grid:  15.6pt none">
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt"><span style="font-size: 18pt; font-family: '微软雅黑'; color: rgb(51,51,51); mso-spacerun: 'yes'"></span><span style="font-size: 18pt; font-family: '微软雅黑'; color: rgb(51,51,51); mso-spacerun: 'yes'"><o:p></o:p></span>&nbsp;</p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; mso-line-height-alt: 12pt"><span style="font-size: 12pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">1.&nbsp;问题描述</span><span style="font-size: 12pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">客户的用户群体很大，涵盖范围很广，为了数据安全，所以将不同区域的数据存在不同的数据库中。同时考虑到开发工作和后期的维护等，将这些数据的业务在同一张表里显示（这些业务关系一样，在数据库中表的字段都一样）。所以在数据录入时，需要根据用户所在的区域，将用户录入的数据存入不同的数据库表中。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; mso-line-height-alt: 12pt"><span style="font-size: 12pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">2.&nbsp;解决思路</span><span style="font-size: 12pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">在模板中建几个隐藏的按钮控件，分别设置提交事件，触发提交入库，再在工具栏上或者模板中设置自定义按钮，编写js，根据不同的参数触发不同的按钮，实现根据不同的参数提交到对应的数据库功能。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; mso-line-height-alt: 12pt"><span style="font-size: 12pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">3.&nbsp;示例</span><span style="font-size: 12pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">我们的FRDemo数据库中有2张表S订单和订单，这两张表的数据结构一模一样，选择华东，华中，华北地区的数据时，数据填入数据库</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(0,128,128); mso-spacerun: 'yes'">S订单</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">，选择其他地区时，数据填入数据库</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(0,128,128); mso-spacerun: 'yes'">订单</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; line-height: 16.5pt"><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">3.1&nbsp;数据准备</span><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">新建模板，新建数据集ds1：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(95,158,160); mso-spacerun: 'yes'">SELECT&nbsp;*&nbsp;FROM&nbsp;[订单]&nbsp;where&nbsp;货主地区='${地区}'</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; line-height: 16.5pt"><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">3.2&nbsp;参数界面设置</span><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">切换到参数设计界面，将地区参数的控件添加到面板中，数据字典设置如下：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; line-height: 16.5pt"><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/web1.png" /><br />3.3&nbsp;报表主体设计</span><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">这里为了简洁方便，只添加了几个控件，并没有将所有数据列都添加一个控件，如下图：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/web2.png" /><br />其中第5行中为填报控件，控件设置如下表：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<table style="border-collapse: collapse; padding-bottom: 0.75pt; padding-top: 0.75pt; padding-left: 0.75pt; margin-left: 24.15pt; padding-right: 0.75pt; mso-table-layout-alt: fixed">
<tbody>
<tr>
<td style="border-top: rgb(255,255,255) 31.875pt; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: rgb(255,255,255) 31.875pt; padding-right: 3.75pt; width: 36.4pt; mso-border-left-alt: 31.8750pt none rgb(255,255,255); mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="48">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">控件类型</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td>
<td style="border-top: rgb(255,255,255) 31.875pt; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: medium none; padding-right: 3.75pt; width: 34.7pt; mso-border-left-alt: none; mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="46">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">数据字典</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td></tr>
<tr>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: rgb(255,255,255) 31.875pt; padding-right: 3.75pt; width: 36.4pt; mso-border-left-alt: 31.8750pt none rgb(255,255,255); mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="48">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">B5</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: medium none; padding-right: 3.75pt; width: 34.7pt; mso-border-left-alt: none; mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="46">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">文本框</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td>
<td style="border-top: rgb(255,255,255) 31.875pt; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: medium none; padding-right: 3.75pt; width: 267.15pt; mso-border-left-alt: none; mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="356">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)">无</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td></tr>
<tr>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: rgb(255,255,255) 31.875pt; padding-right: 3.75pt; width: 36.4pt; mso-border-left-alt: 31.8750pt none rgb(255,255,255); mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="48">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">C5</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: medium none; padding-right: 3.75pt; width: 34.7pt; mso-border-left-alt: none; mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="46">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">下拉框</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: medium none; padding-right: 3.75pt; width: 267.15pt; mso-border-left-alt: none; mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="356">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">来源于客户表，实际值客户ID，显示值公司名称</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td></tr>
<tr>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: rgb(255,255,255) 31.875pt; padding-right: 3.75pt; width: 36.4pt; mso-border-left-alt: 31.8750pt none rgb(255,255,255); mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="48">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">D5</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: medium none; padding-right: 3.75pt; width: 34.7pt; mso-border-left-alt: none; mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="46">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">下拉框</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: medium none; padding-right: 3.75pt; width: 267.15pt; mso-border-left-alt: none; mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="356">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">来源于雇员表，实际值雇员ID，显示值姓名</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td></tr>
<tr>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: rgb(255,255,255) 31.875pt; padding-right: 3.75pt; width: 36.4pt; mso-border-left-alt: 31.8750pt none rgb(255,255,255); mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="48">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">E5</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: medium none; padding-right: 3.75pt; width: 34.7pt; mso-border-left-alt: none; mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="46">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">文本框</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: medium none; padding-right: 3.75pt; width: 267.15pt; mso-border-left-alt: none; mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="356">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">wu</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td></tr>
<tr>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: rgb(255,255,255) 31.875pt; padding-right: 3.75pt; width: 36.4pt; mso-border-left-alt: 31.8750pt none rgb(255,255,255); mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="48">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">F5</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: medium none; padding-right: 3.75pt; width: 34.7pt; mso-border-left-alt: none; mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="46">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">下拉框</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td>
<td style="border-top: medium none; border-right: rgb(255,255,255) 31.875pt; border-bottom: rgb(255,255,255) 31.875pt; padding-bottom: 3pt; padding-top: 3.75pt; padding-left: 3.75pt; border-left: medium none; padding-right: 3.75pt; width: 267.15pt; mso-border-left-alt: none; mso-border-right-alt: 31.8750pt none rgb(255,255,255); mso-border-top-alt: 31.8750pt none rgb(255,255,255); mso-border-bottom-alt: 31.8750pt none rgb(255,255,255)" valign="middle" width="356">
<p class="p0" style="margin-bottom: 6pt; text-align: left; margin-top: 6pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105); mso-spacerun: 'yes'">公式：sql("FRDemo",&nbsp;"select&nbsp;货主城市&nbsp;from&nbsp;订单&nbsp;where&nbsp;货主地区='"&nbsp;+&nbsp;$地区&nbsp;+&nbsp;"'",&nbsp;1)</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(105,105,105)"><o:p></o:p></span></p></td></tr></tbody></table>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; line-height: 16.5pt"><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">3.4&nbsp;按钮设置</span><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">如上图，第2行中的三个按钮分别为进行提交入库操作的2个隐藏按钮和一个进行点击操作的可见按钮。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt; text-align: left; margin-left: 36pt; margin-top: 5pt; line-height: 12pt; text-indent: -18pt"><span style="font-size: 10pt; font-family: 'Symbol'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'">&#183;&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Arial'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'">E2<font face="宋体">单元格</font></span><span style="font-size: 10.5pt; font-family: '宋体'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">控件名为&#8220;s&#8221;，该控件控制S订单表的填报，添加一个点击事件，事件类型选择</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(0,128,128); mso-spacerun: 'yes'">提交入库</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">，如下图：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt; text-align: left; margin-left: 36pt; margin-top: 5pt; line-height: 12pt; text-indent: -18pt"><span style="font-size: 10pt; font-family: 'Symbol'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/web3.png" /><br />&#183;&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Arial'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'">F2<font face="宋体">单元格</font></span><span style="font-size: 10.5pt; font-family: '宋体'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">控件名为&#8220;S1&#8221;，该控件控制订单表的填报，添加一个点击事件，事件类型选择</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(0,128,128); mso-spacerun: 'yes'">提交入库</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">，如下图：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/web4.png" /><br />将E2单元格和F2单元格中的按钮都设置为不可见。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt; text-align: left; margin-left: 36pt; margin-top: 5pt; line-height: 12pt; text-indent: -18pt"><span style="font-size: 10pt; font-family: 'Symbol'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'">&#183;&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Arial'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'">H2<font face="宋体">单元格</font></span><span style="font-size: 10.5pt; font-family: '宋体'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">给该按钮添加一个点击事件，如下图：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/web5.png" /><br />完整js如下：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt;background: rgb(248,248,248); padding-bottom: 0pt; padding-top: 0pt; padding-left: 8pt; margin-left: 49.5pt; border-left: rgb(187,187,187) 0.75pt solid; margin-top: 5pt; padding-right: 0pt; text-indent: -18pt; mso-line-height-alt: 12pt; mso-border-left-alt: 0.7500pt solid rgb(187,187,187)"><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">1.&nbsp;</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">var&nbsp;s=contentPane.getWidgetByName(</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(42,0,255); mso-spacerun: 'yes'">"s"</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">);&nbsp;&nbsp;</span><span style="font-size: 9pt; font-family: '微软雅黑'; color: rgb(43,145,175); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt;background: rgb(255,255,255); padding-bottom: 0pt; padding-top: 0pt; padding-left: 8pt; margin-left: 49.5pt; border-left: rgb(187,187,187) 0.75pt solid; margin-top: 5pt; padding-right: 0pt; text-indent: -18pt; mso-line-height-alt: 12pt; mso-border-left-alt: 0.7500pt solid rgb(187,187,187)"><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">2.&nbsp;</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">var&nbsp;s1=contentPane.getWidgetByName(</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(42,0,255); mso-spacerun: 'yes'">"s1"</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">);&nbsp;&nbsp;</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(43,145,175); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt;background: rgb(248,248,248); padding-bottom: 0pt; padding-top: 0pt; padding-left: 8pt; margin-left: 49.5pt; border-left: rgb(187,187,187) 0.75pt solid; margin-top: 5pt; padding-right: 0pt; text-indent: -18pt; mso-line-height-alt: 12pt; mso-border-left-alt: 0.7500pt solid rgb(187,187,187)"><span style="font-size: 9pt; font-family: 'Courier New'; font-weight: bold; color: rgb(127,0,85); mso-spacerun: 'yes'">3.&nbsp;</span><span style="font-size: 9pt; font-family: 'Courier New'; font-weight: bold; color: rgb(127,0,85); mso-spacerun: 'yes'">if</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">(area==</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(42,0,255); mso-spacerun: 'yes'">'<font face="微软雅黑">华东</font><font face="Courier New">'</font></span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">||area==</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(42,0,255); mso-spacerun: 'yes'">'<font face="微软雅黑">华北</font><font face="Courier New">'</font></span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">||area==</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(42,0,255); mso-spacerun: 'yes'">'<font face="微软雅黑">华中</font><font face="Courier New">'</font></span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">)&nbsp;&nbsp;</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(43,145,175); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt;background: rgb(255,255,255); padding-bottom: 0pt; padding-top: 0pt; padding-left: 8pt; margin-left: 49.5pt; border-left: rgb(187,187,187) 0.75pt solid; margin-top: 5pt; padding-right: 0pt; text-indent: -18pt; mso-line-height-alt: 12pt; mso-border-left-alt: 0.7500pt solid rgb(187,187,187)"><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">4.&nbsp;</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">s.fireEvent(</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(42,0,255); mso-spacerun: 'yes'">"click"</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">);&nbsp;&nbsp;</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(43,145,175); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt;background: rgb(248,248,248); padding-bottom: 0pt; padding-top: 0pt; padding-left: 8pt; margin-left: 49.5pt; border-left: rgb(187,187,187) 0.75pt solid; margin-top: 5pt; padding-right: 0pt; text-indent: -18pt; mso-line-height-alt: 12pt; mso-border-left-alt: 0.7500pt solid rgb(187,187,187)"><span style="font-size: 9pt; font-family: 'Courier New'; font-weight: bold; color: rgb(127,0,85); mso-spacerun: 'yes'">5.&nbsp;</span><span style="font-size: 9pt; font-family: 'Courier New'; font-weight: bold; color: rgb(127,0,85); mso-spacerun: 'yes'">else</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">&nbsp;&nbsp;</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(43,145,175); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt;background: rgb(255,255,255); padding-bottom: 0pt; padding-top: 0pt; padding-left: 8pt; margin-left: 49.5pt; border-left: rgb(187,187,187) 0.75pt solid; margin-top: 5pt; padding-right: 0pt; text-indent: -18pt; mso-line-height-alt: 12pt; mso-border-left-alt: 0.7500pt solid rgb(187,187,187)"><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">6.&nbsp;</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">s1.fireEvent(</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(42,0,255); mso-spacerun: 'yes'">"click"</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(0,0,0); mso-spacerun: 'yes'">);&nbsp;&nbsp;</span><span style="font-size: 9pt; font-family: 'Courier New'; color: rgb(43,145,175); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">该提交按钮也可自定在工具栏中，设置过程一样。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; line-height: 16.5pt"><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">3.5&nbsp;效果查看</span><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">点击填报预览，参数选择华东，效果如下图：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">参数选择西南，效果如下图：<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/web6.png" /><br /></span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(255,0,0); mso-spacerun: 'yes'"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/web7.gif" /><br />注：此例中由于数据的限制，只用了2张数据表进行填报，如果有多张表，则需要设置多个隐藏按钮。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt"><span style="font-size: 18pt; font-family: '微软雅黑'; color: rgb(51,51,51); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt"><span style="font-size: 10.5pt; font-family: 'Calibri'; mso-spacerun: 'yes'"><o:p></o:p></span></p></div><!--EndFragment--><img src ="http://www.blogjava.net/echoseason/aggbug/400584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2013-06-15 23:09 <a href="http://www.blogjava.net/echoseason/archive/2013/06/15/400584.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>图表联动——三个图表的联动</title><link>http://www.blogjava.net/echoseason/archive/2013/06/15/400583.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Sat, 15 Jun 2013 15:04:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2013/06/15/400583.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/400583.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2013/06/15/400583.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/400583.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/400583.html</trackback:ping><description><![CDATA[<div class="Section0" style="layout-grid:  15.6pt none">
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt"><span style="font-size: 12pt; font-family: '宋体'; visibility: hidden; mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; mso-line-height-alt: 12pt"><a name="a:1."></a><span style="font-size: 12pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">1.&nbsp;问题描述</span><span style="font-size: 12pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">如何实现点击图表1，图表2显示图表1的关联数据，接着点击图表2，图表3显示图表2的关联数据又该如何实现呢，如下图，下面详细介绍该功能的实现步骤。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; mso-line-height-alt: 12pt"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/联动1.gif" /><br /><a name="a:2."></a><span style="font-size: 12pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">2.&nbsp;示例</span><span style="font-size: 12pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; line-height: 16.5pt"><a name="a:2.1"></a><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">2.1&nbsp;数据准备</span><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">新建3个数据集作为3张图表的数据源。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">ds1：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(95,158,160); mso-spacerun: 'yes'">SELECT&nbsp;*&nbsp;FROM&nbsp;[销量]&nbsp;where&nbsp;1=1&nbsp;${if(len(地区)==0,"","and&nbsp;地区='"+地区+"'")}</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">ds2：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(95,158,160); mso-spacerun: 'yes'">SELECT&nbsp;*&nbsp;FROM&nbsp;[销量]&nbsp;where&nbsp;1=1&nbsp;${if(len(地区)==0,"","and&nbsp;地区='"+地区+"'")}&nbsp;${if(len(销售员)==0,"","and&nbsp;销售员='"+销售员+"'")}</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">ds3：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(95,158,160); mso-spacerun: 'yes'">SELECT&nbsp;*&nbsp;FROM&nbsp;[销量]&nbsp;where&nbsp;1=1&nbsp;${if(len(地区)==0,"","and&nbsp;地区='"+地区+"'")}&nbsp;${if(len(销售员)==0,"","and&nbsp;销售员='"+销售员+"'")}&nbsp;${if(len(产品类型)==0,"","and&nbsp;产品类型='"+产品类型+"'")}</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; line-height: 16.5pt"><a name="a:2.2"></a><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">2.2&nbsp;图表设置</span><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt; text-align: left; margin-left: 36pt; margin-top: 5pt; line-height: 12pt; text-indent: -18pt"><span style="font-size: 10pt; font-family: 'Symbol'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'">&#183;&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Arial'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'">数据源设置</span><span style="font-size: 10.5pt; font-family: '宋体'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">新建3张图表，柱形图、饼图、折线图，其数据源分别为ds1，ds2和ds3，具体数据源设置如下图：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt; text-align: left; margin-left: 36pt; margin-top: 5pt; line-height: 12pt; text-indent: -18pt"><span style="font-size: 10pt; font-family: 'Symbol'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/联动2.png" /><br />&#183;&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Arial'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'">交互属性设置</span><span style="font-size: 10.5pt; font-family: '宋体'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">点击柱形图时，需要将柱形图的分类轴传递给饼图，作为饼图数据源和折线图数据源的一个参数值，点击饼图时，需要将饼图的系列名传递给折线图作为折线图数据源的参数值，如果类似</span><span><a href="http://www.finereporthelp.com/help/1/5/6/0/0/0.html"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(0,0,255); text-decoration: underline; mso-spacerun: 'yes'">图表联动</span></a></span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">中的是两个图表之间的相互关联，则直接使用</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(0,128,128); mso-spacerun: 'yes'">超级链接-联动单元格</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">，但是此处折线图需要接收来自柱形图的分类轴值，而折线图却不是和柱形图联动，所以无法直接使用</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(0,128,128); mso-spacerun: 'yes'">超级链接-联动单元格</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">，我们可以使用超级链接中的</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(0,128,128); mso-spacerun: 'yes'">动态参数</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">，点击柱形图或饼图的时候，动态的给参数赋值，并且参数值一直存在，设置如下图：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(139,0,139); mso-spacerun: 'yes'">柱形图<br /><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/联动3.png" /><br /></span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(139,0,139); mso-spacerun: 'yes'">饼图<br /></span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 5pt; text-align: left; margin-left: 36pt; margin-top: 5pt; line-height: 12pt; text-indent: -18pt"><span style="font-size: 10pt; font-family: 'Symbol'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/联动4.png" /><br />&#183;&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Arial'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'">参数界面设置</span><span style="font-size: 10.5pt; font-family: '宋体'; font-weight: bold; color: rgb(0,0,139); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">如最上面的效果图，切换到参数设计界面，点击右侧下方面板的</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(0,128,128); mso-spacerun: 'yes'">全部添加</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">，将参数全部添加到参数面板中，如下图：</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/联动5.png" /><br />地区参数的控件类型选择下拉框，数据字典设置如下图<img border="0" alt="" src="http://www.blogjava.net/images/blogjava_net/echoseason/联动6.png" />：<br /></span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">将销售员和产品类型的控件以及标签设置为</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(0,128,128); mso-spacerun: 'yes'">不可见</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">，将销售员和产品类型两个参数的控件添加上去主要是为了在预览一次报表之后，重新选择地区时，可以重置销售员和产品类型两个参数。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; text-align: left; margin-top: 0pt; line-height: 16.5pt"><a name="a:2.3"></a><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'">2.3&nbsp;效果查看</span><span style="font-size: 11.5pt; font-family: '微软雅黑'; font-weight: bold; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt; line-height: 16.5pt; text-indent: 16.5pt"><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'">点击分页预览，效果如上图。</span><span style="font-size: 10.5pt; font-family: '微软雅黑'; color: rgb(56,56,56); mso-spacerun: 'yes'"><o:p></o:p></span></p>
<p class="p0" style="margin-bottom: 0pt; margin-top: 0pt"><span style="font-size: 10.5pt; font-family: 'Calibri'; mso-spacerun: 'yes'"><o:p></o:p></span></p></div><!--EndFragment--><img src ="http://www.blogjava.net/echoseason/aggbug/400583.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2013-06-15 23:04 <a href="http://www.blogjava.net/echoseason/archive/2013/06/15/400583.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>报表工具finereport的pad端使用教程</title><link>http://www.blogjava.net/echoseason/archive/2013/05/08/398990.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Wed, 08 May 2013 06:47:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2013/05/08/398990.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/398990.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2013/05/08/398990.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/398990.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/398990.html</trackback:ping><description><![CDATA[<p><br /></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">同手机端一样，需要在pad端安装客户端，下载地址为：Android，在google play 里面搜索finereport或数据分析，然后下载安装。iphone、ipad，在app store里面搜索：finereport或数据分析，然后下载安装。</span></p>  <p align="left"><a name="a:2."><strong><span style="font-size:12.0pt;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">1.&nbsp;</span></strong></a><strong><span style="font-size:12.0pt;font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">操作步骤</span></strong></p>    <p align="left" style="line-height: 16.5pt;"><a name="a:2.1"><strong><span style="font-size:11.5pt;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">1.1&nbsp;</span></strong></a><strong><span style="font-size:11.5pt;font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">连接服务器</span></strong></p>    <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">需要在客户端查看报表，首先需要配置服务器，如果pad端没有连接服务器，则打开软件就会进入服务器连接配置页面，点击</span><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:teal;">点击添加连接至服务器</span></strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">，如下图</span></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/pad1.png" width="675" height="505" alt="" /><br /></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">点击完成之后，则会进入到用户名密码输入界面，如下图：</span></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/pad2.png" width="678" height="510" alt="" /><br /></p>  <p align="left" style="line-height: 16.5pt;"><a name="a:2.2"><strong><span style="font-size:11.5pt;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">1.2&nbsp;</span></strong></a><strong><span style="font-size:11.5pt;font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">客户端主界面</span></strong></p>    <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">输入用户名密码之后即可进入到移动端的决策系统，可在该界面上查看报表，填报报表等等一系列操作，界面如下：</span></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/pad3.png" width="676" height="508" alt="" /><br /></p>  <p align="left" style="line-height: 16.5pt;"><a name="a:2.3"><strong><span style="font-size:11.5pt;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">1.3&nbsp;</span></strong></a><strong><span style="font-size:11.5pt;font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">报表查看</span></strong></p>    <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">打开报表目录树，点击报表即可，如我们展示</span><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:teal;">报表展示</span></strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">目录下的</span><strong><span style=" font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:teal;">数据钻取</span></strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">报表，如下图：</span></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/pad4.png" width="677" height="505" alt="" /><br /></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">其它特殊操作同手机端的报表查看，这里不再赘述。</span></p>  <p>&nbsp;</p><img src ="http://www.blogjava.net/echoseason/aggbug/398990.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2013-05-08 14:47 <a href="http://www.blogjava.net/echoseason/archive/2013/05/08/398990.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FineReport报表和J2EE应用的集成</title><link>http://www.blogjava.net/echoseason/archive/2013/05/08/398989.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Wed, 08 May 2013 06:45:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2013/05/08/398989.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/398989.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2013/05/08/398989.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/398989.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/398989.html</trackback:ping><description><![CDATA[<br />  <p style="text-indent:21.0pt;line-height:150%">FineReport<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">是一个纯</span>Java<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">软件，因此对于</span>J2EE<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">的项目，可以做到无缝集成。</span></p>  <p style="text-indent:21.0pt; line-height:150%"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">报表服务器并非物理概念的服务器，而是以一个标准的</span>J2EE<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">应用的形式或者</span>jar<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">包的形式提交给程序。应用程序通过</span>url<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">来调用报表，或者通过开放的</span>API<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">来调用报表的各种功能，来实现更加灵活的控制。报表集成到应用程序后，即可作为一个统一完整的程序来进行发布。</span></p>  <p style="text-indent:21.0pt; line-height:150%"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">同时无缝集成还能够使报表与应用程序使用同一个数据库连接池，或进行集群，负载均衡等，提高报表的运行效率，原理图如图</span>1<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">所示：</span></p>  <p style="margin-left:20.25pt;text-indent:1.5pt;line-height: 150%"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/集成1.png" width="928" height="591" alt="" /><br /></p>  <p align="center" style="text-align:center;text-indent:21.75pt; line-height:150%"><span style="font-size:9.0pt;line-height:150%;font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;; color:gray">图</span><span style="font-size:9.0pt;line-height:150%; color:gray">1 Java</span><span style="font-size:9.0pt;line-height:150%; font-family:宋体;Times New Roman&quot;;Times New Roman&quot;;color:gray">项目集成原理图</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-size:12.0pt;font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">报表工程目录结构</span></strong><strong></strong></p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-size:12.0pt; font-family:宋体;">在说明配置FineReport服务器之前，我们先了解一下FineReport应用服务的目录结构：</span></p>  <p align="left" style="margin-left: 21pt; text-indent: 21pt;"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/集成2.png" width="457" height="133" alt="" /><br /></p>  <p align="left" style="text-indent: 21pt;"><span style="font-size:12.0pt;font-family:宋体;">对上图的目录层次结构我们做一些说明：</span></p>  <p align="left" style="text-indent: 21pt;"><span style="font-size:12.0pt; font-family:宋体;color:blue;">WebReport</span><span style="font-size:12.0pt;font-family:宋体;">：可以看到所有的相关文件都包含在WebReport这个服务器应用工程中，也就是说WebReport是我们默认的工程名，此项名字可以修改。</span></p>  <p align="left" style="text-indent: 21pt;"><span style="font-size:12.0pt; font-family:宋体;color:blue;">WEB-INF</span><span style="font-size:12.0pt;font-family:宋体;">：WEB-INF目录是J2EE服务器中默认规定的，全称是Web Information。</span></p>  <p align="left" style="text-indent: 21pt;"><span style="font-size:12.0pt; font-family:宋体;color:blue;">classes</span><span style="font-size:12.0pt;font-family:宋体;">：classes 文件夹也是应用服务器默认规定的。主要作用是存放.class文件，例如在FineReport中，如果要使用"自定义函数"，"程序数据源"和"程序网 络报表"等功能，必需先使用我们提供的接口来编写.java文件，然后将编译后产生的.class文件存放到该目录下。</span></p>  <p align="left" style="text-indent: 21pt;"><span style="font-size:12.0pt; font-family:宋体;color:blue;">lib</span><span style="font-size:12.0pt;font-family:宋体;">：lib 也是应用服务器规定的目录结构。FineReport该目录下主要包括fr-server-6.5.jar，第三方类的jar文件和一些常用数据库 JDBC驱动，比如ojdbc14.jar就是Oracle数据库的驱动，应用服务器在启动的时候会自动将lib目录下所有的.jar文件加载到系统的 classpath中；fr-server-6.5.jar包含了FineReport服务器的所有功能，它是由FineReport源文件编译后产生 的.class类文件。例如：Servlet类com.fr.web.ReportServlet便位于fr-server-6.5.jar中。</span></p>  <p align="left" style="text-indent: 21pt;"><span style="font-size:12.0pt; font-family:宋体;color:blue;">reportlets</span><span style="font-size:12.0pt;font-family:宋体;">：reportlets是FineReport服务器默认规定的，不能修改。可以在这个目录下面建立子目录文件夹，FineReport设计器设计的模板一般都保存在这个目录或者它的子目录下面，以便FineReport服务器调用。</span></p>  <p align="left" style="text-indent: 21pt;"><span style="font-size:12.0pt; font-family:宋体;color:blue;">resources</span><span style="font-size:12.0pt;font-family:宋体;">：resources 是FineReport服务器默认规定的，不能修改。下面保存了一些.xml文件，这些.xml文件里面保存着FineReport服务器的配置等信 息，FineReport服务器启动的时候，会自动加载这些.xml文件（有些xml文件不是运行必需的）。</span></p>  <p align="left" style="text-indent: 21pt;"><span style="font-size:12.0pt; font-family:宋体;color:blue;">web.xml</span><span style="font-size:12.0pt;font-family:宋体;">：这个文件也是J2EE服务器所规定必须建立的，我们在此文件中定义了FineReport的SERVLET的解析路径方式，权限加载等一些内容，此文件初始配置内容如下：</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">1.&nbsp;</span><span style="font-size:12.0pt; font-family:宋体;">&lt;?xml&nbsp;version="1.0"&nbsp;encoding="UTF-8"?&gt;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">2.&nbsp;</span><span style="font-size:12.0pt; font-family:宋体;">&lt;web-app&nbsp;xmlns="http://java.sun.com/xml/ns/j2ee"&nbsp;xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&nbsp;&nbsp;&nbsp;&nbsp;xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee&nbsp;http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"&nbsp;&nbsp;&nbsp;&nbsp;version="2.4"&gt;&nbsp;&nbsp;&nbsp;</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">3.&nbsp;</span><span style="font-size:12.0pt; font-family:宋体;">&lt;servlet&gt;&nbsp;&nbsp;</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">4.&nbsp;</span><span style="font-size:12.0pt; font-family:宋体;">&lt;servlet-name&gt;ReportServer&lt;/servlet-name&gt;&nbsp;&nbsp;</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">5.&nbsp;</span><span style="font-size:12.0pt; font-family:宋体;">&lt;servlet-class&gt;com.fr.web.ReportServlet&lt;/servlet-class&gt;&nbsp;&nbsp;</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">6.&nbsp;</span><span style="font-size:12.0pt; font-family:宋体;">&lt;load-on-startup&gt;0&lt;/load-on-startup&gt;&nbsp;&nbsp;</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">7.&nbsp;</span><span style="font-size:12.0pt; font-family:宋体;">&lt;/servlet&gt;&nbsp;&nbsp;&nbsp;</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">8.&nbsp;</span><span style="font-size:12.0pt; font-family:宋体;">&lt;servlet-mapping&gt;&nbsp;&nbsp;</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">9.&nbsp;</span><span style="font-size:12.0pt; font-family:宋体;">&lt;servlet-name&gt;ReportServer&lt;/servlet-name&gt;&nbsp;&nbsp;&nbsp;</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">10.</span><span style="font-size:12.0pt;font-family:宋体;">&lt;url-pattern&gt;/ReportServer&lt;/url-pattern&gt;&nbsp;&nbsp;</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">11.</span><span style="font-size:12.0pt;font-family:宋体;">&lt;/servlet-mapping&gt;&nbsp;&nbsp;</span></p>  <p align="left" style="margin-left: 45pt; text-indent: -18pt;"><span style="font-size:12.0pt;font-family:宋体;">12.</span><span style="font-size:12.0pt;font-family:宋体;">&lt;/web-app&gt;&nbsp;&nbsp;</span></p>  <p><strong><span style="font-size:12.0pt;font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">报表集成步骤</span></strong><strong></strong></p>  <p style="margin-left:39.0pt;text-indent:-18.0pt;">1、&nbsp;<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">服务器部署</span></p>  <p align="left" style="margin-left: 21pt; text-indent: 21pt;"><span style="font-size:12.0pt;font-family:宋体;">FineReport</span><span style="font-size:12.0pt;font-family:宋体;">报表是一个Servlet应用。大 家知道，Servlet是一种服务器端的Java应用程序，具有独立于平台和协议的特性，可以生成动态的Web页面。 它担当客户请求（Web浏览器或其他HTTP客户程序）与服务器响应（HTTP服务器上的数据库或应用程序）的中间层。 Servlet是位于Web 服务器内部的服务器端的Java应用程序，由Web服务器进行加载，该Web服务器必须包含支持Servlet的Java虚拟机。</span></p>  <p align="left" style="margin-left: 21pt; text-indent: 21pt;"><span style="font-size:12.0pt; font-family:宋体;">因此FineReport报表必须部署在Web应用服务器如Tomcat、Weblogic、Websphere等下面，启动Web应用服务器时就会加载FineReport报表这个Servlet，从而交互式地浏览和修改数据，整个过程如下：</span></p>  <p align="left" style="margin-left: 21pt; text-indent: 21pt;"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/集成3.png" width="474" height="352" alt="" /><br /></p>  <p align="left" style="margin-left: 21pt; text-indent: 21pt;">&nbsp;</p>  <p align="left" style="margin-left: 21pt; text-indent: 21pt;"><span style="font-size:12.0pt; font-family:宋体;">报表部署分为两种，一是报表作为一个独立的应用独立部署；或者是集成到现有应用即嵌入式部署。不管哪种部署方式，他们的目录结构都是类似的。</span></p>  <p align="left" style="margin-left: 21pt; text-indent: 21pt;"><span style="font-size:12.0pt; font-family:宋体;">如下图我们对未包含报表的应用及包含报表的应用目录作一个比较：</span></p>  <p align="left" style="margin-left: 42pt; text-indent: 21pt;"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/集成4.png" width="743" height="396" alt="" /><br /></p>  <p align="left"><span style="font-size:12.0pt;font-family:宋体;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.1</span><span style="font-size:12.0pt;font-family:宋体;">独立部署</span></p>  <p style="margin-left:42.0pt;text-indent:21.0pt"><span style="font-size:12.0pt;font-family:宋体;">FineReport</span><span style="font-size:12.0pt; font-family:宋体;">安装目录下的WebReport目录就是一个标准的应用，因此，若用户希望将报表作为一个独立的应用进行部署的话，可以直接使用WebReport目录进行发布。</span></p>  <p>&nbsp;</p>  <p align="left"><span style="font-size:12.0pt;font-family:宋体;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.2</span><span style="font-size:12.0pt;font-family:宋体;">嵌入式部署</span></p>  <p align="left" style="margin-left: 39pt; text-indent: 21pt;"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">若用户希望将报表集成到自己的应用中的话，则可以对应上图</span>&#8220;<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">部署报表后的应用</span>&#8221;<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">目录结构，将对应的报表文件拷贝到相应目录即可。</span></p>  <p style="margin-left:21.0pt">&nbsp;</p>  <p style="margin-left:39.0pt;text-indent:-18.0pt;">2、&nbsp;<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">页面集成</span></p>  <p align="left" style="margin-left: 21pt; text-indent: 21pt;"><span style="font-size:12.0pt; font-family:宋体;">用户系统的网页可能由不同的语言开发，如HTML、ASP、JSP、PHP等。FineRepor报表可以通过Frame框架集成到Web<a name="a:2.">页面中，</a>指定Frame的src即可。</span></p>  <p align="left" style="margin-left: 39pt;"><span style="font-size:12.0pt;font-family:宋体;">例：&lt;iframe&nbsp;id="reportFrame"&nbsp;width="900"&nbsp;height="400"&nbsp;src="/WebReport/ReportServer?reportlet=/doc/Primary/Parameter/Parameter.cpt"&gt;&lt;/iframe&gt;&nbsp;&nbsp;</span></p>  <p style="margin-left:21.0pt;text-indent:21.0pt"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">另外页面集成中的一些常见应用：动态传参、自定义参数界面、自定义工具栏、页面布局等；可以参考</span>FR<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">在线帮助手册。</span></p>  <p style="margin-left:39.0pt;text-indent:-18.0pt;">3、&nbsp;<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">权限集成</span></p>  <p style="margin-left:39.0pt">3.1<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">、</span>FR<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">权限流程图</span></p>  <p style="margin-left:39.0pt"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/集成5.png" width="644" height="567" alt="" /><br /></p>  <p style="margin-left:39.0pt">&nbsp;</p>  <p style="margin-left:39.0pt">3.2<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">、丰富的权限认证方式</span></p>  <p style="margin-left:39.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FineReport<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">为了保证权限功能的通用性，提供了多种认证方式，其总体架构图如图</span></p>  <p style="text-indent:53.25pt; line-height:150%">&nbsp;&nbsp;&nbsp;<img src="http://www.blogjava.net/images/blogjava_net/echoseason/集成6.png" width="883" height="488" alt="" /></p>  <p style="text-indent:174.7pt; line-height:150%"><span style="font-size:9.0pt;line-height:150%;font-family: 宋体;color:gray">图2 FineReport权限总体架构图</span></p>  <p style="margin-left:39.0pt">&nbsp;</p>  <p style="margin-left:39.0pt">3.3<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">、权限粒度</span></p>  <p style="margin-left:39.0pt">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">很多系统的权限认证只是限制模块的使用，使得合法用户能够行使自己的权利。</span>FineReport<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">在满足这种整体权限认证的同时，权限的控制力度可以达到同一张报表的内容在不同权限下展示的效果不一样，这样就免除了制作大量的报表来实现同样效果，尤其是在企业内部业务繁杂，审批麻烦时，一张报表就可以解决所有问题。</span></p>  <p style="margin-left:39.0pt">&nbsp;</p>  <p style="margin-left:39.0pt">3.4<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">、灵活的权限集成</span></p>  <p style="margin-left:39.0pt;text-indent:21.0pt;line-height: 150%"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">伴随着国内信息技术的高速发展，越来越多的政府和企事业单位使用信息管理系统来管理日常的工作生产，但是每个系统应用都有自己的权限体系模型，经常会出现一个用户在好几个系统应用里面都有设置，这样就产生了两个问题：</span>1<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">：用户每访问一个系统，都要登录一次，既繁琐又要用户记忆很多的用户名和密码；</span>2<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">：加大了对日常的组织分配和人员变更的维护的复杂性和高成本性。</span></p>  <p style="margin-left:41.25pt;text-indent:21.75pt;line-height: 150%">FineReport<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">提供的权限认证，可以灵活的与其它系统进行统一认证，实现单点登录。</span></p>  <p style="margin-left:41.25pt;text-indent:21.75pt;line-height: 150%"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">当我们按照上面的三种类型的身份验证方式配置好相应权限后，需要将报表和相应的系统进行集成，我们采取的方式是：</span></p>  <p style="margin-left:19.4pt; text-indent:63.75pt;line-height:150%">1<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">：当客户登录时通过</span>FR<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">登录接口传递相应的用户名和密码给我们报表系统；</span></p>  <p style="margin-left:19.3pt; text-indent:63.75pt;line-height:150%">2<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">：报表系统会匹配报表用户数据集中的用户名和传递过来的用户名，然后识别登录用户的角色，并根据角色绑定相应的权限；</span></p>  <p style="margin-left:19.2pt; text-indent:63.75pt;line-height:150%">3<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">：把角色存储在</span>session<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">里面，这样用户访问每张报表时，报表权限都会先和</span>session<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">进行验证，满足的话就直接进行相应权限的操作，不满足的话则会提示没有权限。</span></p>  <p style="margin-left:19.1pt; text-indent:42.75pt;line-height:150%"><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">具体的实现过程如图</span>3<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">所示：</span></p>  <p style="margin-left:20.15pt; text-indent:79.5pt;line-height:150%"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/集成7.png" width="676" height="488" alt="" /><br /></p>  <p style="margin-left:23.2pt; text-indent:212.15pt;line-height:150%"><span style="font-size:9.0pt;line-height:150%;font-family:宋体;Times New Roman&quot;;Times New Roman&quot;;color:gray">图</span><span style="font-size:9.0pt;line-height:150%;color:gray">3 </span><span style="font-size:9.0pt;line-height:150%;font-family:宋体;Times New Roman&quot;;Times New Roman&quot;;color:gray">权限集成示意图</span></p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">注：</span>FR<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">报表登录接口：</span><a href="http://../ReportServer?op=auth_login">http://../ReportServer?op=auth_login</a><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span></p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FR<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">报表登出接口：</span><a href="http://../ReportServer?op=auth_logout">http://../ReportServer?op=auth_logout</a><span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">；</span></p>  <p>&nbsp;</p>  <p><strong><span style="font-size:14.0pt;font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">总结</span></strong><strong></strong></p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FineReport<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">同样作为</span>J2EE<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">的一个应用，可以跟任何</span>J2EE<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">架构的工程进行完美的无缝集成。</span></p>  <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">如有任何疑惑，</span>FR<span style="font-family:宋体;Times New Roman&quot;;Times New Roman&quot;">竭诚为您服务。</span></p>  <p>&nbsp;</p><img src ="http://www.blogjava.net/echoseason/aggbug/398989.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2013-05-08 14:45 <a href="http://www.blogjava.net/echoseason/archive/2013/05/08/398989.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java 报表软件finereport手机端使用教程</title><link>http://www.blogjava.net/echoseason/archive/2013/05/08/398988.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Wed, 08 May 2013 06:43:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2013/05/08/398988.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/398988.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2013/05/08/398988.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/398988.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/398988.html</trackback:ping><description><![CDATA[<p><br /></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">在手机端查看finereport报表之前，需要下载我们的移动端app。下载地址为：Android，在google play 里面搜索finereport或数据分析，然后下载安装。iphone、ipad，在app store里面搜索：finereport或数据分析，然后下载安装。</span></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">下载完成之后，按照提示安装。</span></p>  <p align="left"><a name="a:2."><strong><span style="font-size:12.0pt;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">1.&nbsp;</span></strong></a><strong><span style="font-size:12.0pt;font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">操作步骤</span></strong></p>    <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">首先在PC端搭建好数据决策系统，然后再在手机端连接该决策系统。</span></p>  <p align="left" style="line-height: 16.5pt;"><a name="a:2.1"><strong><span style="font-size:11.5pt;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">1.1&nbsp;</span></strong></a><strong><span style="font-size:11.5pt;font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">配置服务器连接</span></strong></p>    <ul type="disc">  <li style="color:darkblue;text-align:left;"><strong><span style="font-family:宋体;">进入配置界面</span></strong><strong></strong></li> </ul>  <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">打开软件，首先需要连接服务器，点击菜单键，选择</span><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:teal;">服务器</span></strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">，进入服务器连接配置界面，如下图：</span></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/手机端1.png" width="477" height="284" alt="" /><br /></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">服务器界面：</span></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/手机端2.png" width="479" height="286" alt="" /><br /></p>  <ul type="disc">  <li style="color:darkblue;text-align:left;"><strong><span style="font-family:宋体;">添加服务器</span></strong><strong></strong></li> </ul>  <p align="left" style="line-height: 16.5pt;"><a name="a:2.2"><strong><span style="font-size:11.5pt;font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">1.2&nbsp;</span></strong></a><strong><span style="font-size:11.5pt;font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">点击添加服务器，如下图：</span></strong></p>    <p style="text-indent:16.5pt;line-height:16.5pt;"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/手机端3.png" width="476" height="515" alt="" /><br /></p>  <p style="text-indent:16.5pt;line-height:16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838;">点击完成，服务器连接则配置好了，接下来可以查看报表。</span></p>  <p>&nbsp;</p><img src ="http://www.blogjava.net/echoseason/aggbug/398988.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2013-05-08 14:43 <a href="http://www.blogjava.net/echoseason/archive/2013/05/08/398988.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FineReport中调用Oracle存储过程</title><link>http://www.blogjava.net/echoseason/archive/2013/04/13/397806.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Sat, 13 Apr 2013 13:51:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2013/04/13/397806.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/397806.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2013/04/13/397806.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/397806.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/397806.html</trackback:ping><description><![CDATA[<p align="center" style="text-align:center"><br /></p>  <p><strong><span style="font-size:12.0pt;font-family:宋体">方案：</span></strong><span style="font-family: 宋体">在报表中通过ajax在后台执行jsp，jsp获取参数并调用数据库存储过程，下面以一个实际例子来看。</span></p>  <p><strong><span style="font-size:12.0pt;font-family:宋体">环境：</span></strong><span style="font-family:宋体">Tomcat6.0</span><span style="font-family:宋体">，FineReport7.0.2，jdk1.6，oracle</span></p>  <p><strong><span style="font-size:12.0pt;font-family:宋体">步骤:</span></strong></p>  <p><span style="font-family:宋体">1:</span><span style="font-family:宋体">所有环境安装完毕，同时在oracle中创建一个删除数据的存储过程，如下图所示：</span></p>  <p align="center" style="text-align:center"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/存储1.png" width="252" height="152" alt="" /><br /></p>  <p><span style="font-family:宋体">2</span><span style="font-family:宋体">：编写一个jsp页面，用以获取对应存储过程，如下所示：</span></p>  <p><img src="http://www.blogjava.net/images/blogjava_net/echoseason/存储2.png" width="730" height="452" alt="" /><br /></p>  <p><span style="font-family:宋体">3</span><span style="font-family:宋体">：新建报表模板，并在模板中建立按钮，书写对应js如下：</span></p>  <p><img src="http://www.blogjava.net/images/blogjava_net/echoseason/存储3.png" width="1102" height="449" alt="" /><br /></p>  <p><span style="font-family:宋体">4</span><span style="font-family:宋体">：实际运行测试，结果如下所示：</span></p>  <p><strong><span style="font-family:宋体">点击前：</span></strong></p>  <p align="center" style="text-align:center"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/存储4.png" width="545" height="405" alt="" /><br /></p>  <p><strong><span style="font-family:宋体">点击后：</span></strong></p>  <p><img src="http://www.blogjava.net/images/blogjava_net/echoseason/存储5.png" width="524" height="392" alt="" /><br /></p>  <p><strong><span style="font-size:12.0pt;font-family:宋体">结束语：</span></strong></p>  <p><span style="font-family:宋体">例子比较简单，但是实际的时候一些编码等问题还是需要考虑的，如果传入数组参数另说了。</span></p><img src ="http://www.blogjava.net/echoseason/aggbug/397806.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2013-04-13 21:51 <a href="http://www.blogjava.net/echoseason/archive/2013/04/13/397806.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>报表FineReport7.0优化功能之下拉树</title><link>http://www.blogjava.net/echoseason/archive/2013/04/13/397805.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Sat, 13 Apr 2013 13:49:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2013/04/13/397805.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/397805.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2013/04/13/397805.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/397805.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/397805.html</trackback:ping><description><![CDATA[<p><br /></p>  <p style="margin-top:15.0pt;margin-right:0cm;margin-bottom: 12.0pt;margin-left:0cm;text-autospace:ideograph-other"><a name="a:1." style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><strong><span style="font-size:12.0pt;color:#383838">1. </span></strong><strong><span style="font-size:12.0pt;font-family:宋体;Times New Roman&quot;;Times New Roman&quot;;color:#383838">控件效果</span></strong><strong></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/下拉1.png" width="330" height="241" alt="" /><br /></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:red">注：6.5.5版本会在输入框中显示选择值的完整路径。</span></p>  <p style="margin-top:15.0pt;margin-right:0cm;margin-bottom: 12.0pt;margin-left:0cm;text-autospace:ideograph-other"><a name="a:2." style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><strong><span style="font-size:12.0pt;color:#383838">2. </span></strong><strong><span style="font-size:12.0pt;font-family:宋体;Times New Roman&quot;;Times New Roman&quot;;color:#383838">基本属性</span></strong><strong></strong></p>  <p style="margin-top:8.25pt;margin-right:0cm;margin-bottom: 8.25pt;margin-left:0cm;text-autospace:ideograph-other"><a name="a:2.1" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><strong><span style="font-size:11.0pt;color:#383838">2.1 </span></strong><strong><span style="font-size:11.0pt;font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;; color:#383838">控件名</span></strong><strong></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">如</span><u><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:blue"><a href="http://www.finereporthelp.com/help/6/4/0.html"><span style="color:blue">文本控件</span></a></span></u><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">。</span></p>  <p style="margin-top:8.25pt;margin-right:0cm;margin-bottom: 8.25pt;margin-left:0cm;text-autospace:ideograph-other"><a name="a:2.2" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><strong><span style="font-size:11.0pt;color:#383838">2.2 </span></strong><strong><span style="font-size:11.0pt;font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;; color:#383838">可用</span></strong><strong></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">如</span><u><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:blue"><a href="http://www.finereporthelp.com/help/6/4/0.html"><span style="color:blue">文本控件</span></a></span></u><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">。</span></p>  <p style="margin-top:8.25pt;margin-right:0cm;margin-bottom: 8.25pt;margin-left:0cm;text-autospace:ideograph-other"><a name="a:2.3" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><strong><span style="font-size:11.0pt;color:#383838">2.3 </span></strong><strong><span style="font-size:11.0pt;font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;; color:#383838">可见</span></strong><strong></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">如</span><u><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:blue"><a href="http://www.finereporthelp.com/help/6/4/0.html"><span style="color:blue">文本控件</span></a></span></u><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">。</span></p>  <p style="margin-top:8.25pt;margin-right:0cm;margin-bottom: 8.25pt;margin-left:0cm;text-autospace:ideograph-other"><a name="a:2.4" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><strong><span style="font-size:11.0pt;color:#383838">2.4 </span></strong><strong><span style="font-size:11.0pt;font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;; color:#383838">控件值</span></strong><strong></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">给下拉树赋默认值，根据下拉树返回值的不同，默认值的输入格式不相同，必须与返回值的格式保持一致。</span></p>  <p style="margin-top:8.25pt;margin-right:0cm;margin-bottom: 8.25pt;margin-left:0cm;text-autospace:ideograph-other"><a name="a:2.5" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><strong><span style="font-size:11.0pt;color:#383838">2.5 </span></strong><strong><span style="font-size:11.0pt;font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;; color:#383838">数据</span></strong><strong></strong></p>  <p style="margin-left:18.0pt;text-indent:0cm;line-height:12.0pt;text-autospace:ideograph-other"><span style="font-family:Symbol;color:darkblue">&#183;<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong><span style="font-family:宋体;Times New Roman&quot;; color:darkblue">自动构建</span></strong><strong></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">自动构建树能够根据数据自动构建出下拉树，无需一层一层定义数据，但是其必须使用树数据集来构建。</span></p>  <p style="margin-left:18.0pt;text-indent:0cm;line-height:12.0pt;text-autospace:ideograph-other"><span style="font-family:Symbol;color:darkblue">&#183;<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><strong><span style="font-family:宋体;Times New Roman&quot;; color:darkblue">分层构建</span></strong><strong></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">不是所有的数据都能自动构建出下拉树，因此需要分层构建。</span></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:teal">层次1</span></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">层次1通过</span><u><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;; color:blue"><a href="http://www.finereporthelp.com/help/6/0/3/0/1.html"><span style="color:blue">数据字典</span></a></span></u><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">来定义下拉框的实际值与显示值。</span></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><strong><span style="font-family: &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:teal">层次2</span></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">层次2的数据一般会根据层次1的数据进行过滤，因此需要定义成数据集，然后通过数据查询返回数据集定义的列。一般数据集定义成：</span><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;; color:cadetblue">SELECT </span></strong><strong><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:cadetblue">字段 FROM 表名 WHERE 层次1的字段 = '${layer1}'</span></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:red">注：layer1表示取层次1节点的值，若在层次3中调用，则是SELECT 字段 FROM 表名 WHERE 层次2的字段 = '${layer2}'依次类推。</span></p>  <p style="margin-top:15.0pt;margin-right:0cm;margin-bottom: 12.0pt;margin-left:0cm;text-autospace:ideograph-other"><a name="a:3." style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><strong><span style="font-size:12.0pt;color:#383838">3. </span></strong><strong><span style="font-size:12.0pt;font-family:宋体;Times New Roman&quot;;Times New Roman&quot;;color:#383838">高级属性</span></strong><strong></strong></p>  <p style="margin-top:8.25pt;margin-right:0cm;margin-bottom: 8.25pt;margin-left:0cm;text-autospace:ideograph-other"><a name="a:3.1" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><strong><span style="font-size:11.0pt;color:#383838">3.1 </span></strong><strong><span style="font-size:11.0pt;font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;; color:#383838">多选</span></strong><strong></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">即确定下拉树类型，勾选多选即为多选下拉树，去掉勾选即为单选下拉树。</span></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/下拉2.png" width="706" height="261" alt="" /><br /></p>  <p style="margin-top:8.25pt;margin-right:0cm;margin-bottom: 8.25pt;margin-left:0cm;text-autospace:ideograph-other"><a name="a:3.2" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><strong><span style="font-size:11.0pt;color:#383838">3.2 </span></strong><strong><span style="font-size:11.0pt;font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;; color:#383838">异步加载</span></strong><strong></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">勾选即为使用异步加载，下拉树中首次只加载父节点的数据，当点击父节点前面的加号后才会重新与数据库交互取出对应的子节点数据，适用于数据量大的情况。</span></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">去掉勾选表示下拉树中的数据是一次性全部取出，适用于数据量小的情况。</span></p>  <p style="margin-top:8.25pt;margin-right:0cm;margin-bottom: 8.25pt;margin-left:0cm;text-autospace:ideograph-other"><a name="a:3.3" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><strong><span style="font-size:11.0pt;color:#383838">3.3 </span></strong><strong><span style="font-size:11.0pt;font-family: 宋体;Times New Roman&quot;;Times New Roman&quot;; color:#383838">只返回叶子节点</span></strong><strong></strong></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:#383838">勾选只返回叶子节点，即下拉树文本框中只返回该节点的最后一层数据，不勾选即表示选中什么则返回什么，如下表：</span></p>  <table border="0" cellspacing="0" cellpadding="0" style="margin-left:23.25pt;border-collapse:collapse;">  <tbody><tr>   <td width="109" style="width: 81.75pt; border: 1pt solid black; padding: 3.75pt 3.75pt 3pt;">   <p align="left" style="text-indent: 16.5pt; line-height: 16.5pt;"><span style="font-family:   &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:dimgray">勾选叶子节点</span></p>   </td>   <td width="467" colspan="2" style="width: 350.6pt; border-style: solid solid solid none; border-top-color: black; border-right-color: black; border-bottom-color: black; border-top-width: 1pt; border-right-width: 1pt; border-bottom-width: 1pt; padding: 3.75pt 3.75pt 3pt;">   <p align="left" style="text-indent: 16.5pt; line-height: 16.5pt;"><span style="font-family:   &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:dimgray">不勾选叶子节点</span></p>   </td>  </tr>  <tr>   <td width="109" style="width: 81.75pt; border-style: none solid solid; border-right-color: black; border-bottom-color: black; border-left-color: black; border-right-width: 1pt; border-bottom-width: 1pt; border-left-width: 1pt; padding: 3.75pt 3.75pt 3pt;">   <p align="left" style="text-indent: 16.5pt; line-height: 16.5pt;"><span style="font-family:   &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:dimgray">选中a</span></p>   </td>   <td width="179" style="width:134.4pt;border-top:none;border-left:none;   border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;   padding:3.75pt 3.75pt 3.0pt 3.75pt">   <p align="left" style="text-indent: 16.5pt; line-height: 16.5pt;"><span style="font-family:   &quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:dimgray">返回值：a1,a2,a3</span></p>   </td>   <td width="288" style="width:216.15pt;border-top:none;border-left:none;   border-bottom:solid black 1.0pt;border-right:solid black 1.0pt;   padding:3.75pt 3.75pt 3.0pt 3.75pt">   <p align="left" style="text-indent: 16.5pt; line-height: 16.5pt;"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:dimgray">a</span></p>   </td>  </tr> </tbody></table>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/下拉3.png" width="803" height="268" alt="" /><br /></p>  <p style="margin-top:3.75pt;margin-right:0cm;margin-bottom: 3.75pt;margin-left:0cm;text-indent:16.5pt;line-height:16.5pt;text-autospace: ideograph-other"><span style="font-family:&quot;微软雅黑&quot;,&quot;sans-serif&quot;;color:red">注：只返回叶子节点只对多选下拉树起作用。</span></p>  <p>&nbsp;</p> <div id="haloword-lookup" class="ui-widget-content ui-draggable"><div id="haloword-title"><span id="haloword-word"></span><a herf="#" id="haloword-pron" class="haloword-button" title="发音"></a><audio id="haloword-audio"></audio><div id="haloword-control-container"><a herf="#" id="haloword-add" class="haloword-button" title="加入单词表"></a><a herf="#" id="haloword-remove" class="haloword-button" title="移出单词表"></a><a href="#" id="haloword-open" class="haloword-button" title="查看单词详细释义" target="_blank"></a><a herf="#" id="haloword-close" class="haloword-button" title="关闭查询窗"></a></div></div><div id="haloword-content"></div></div><img src ="http://www.blogjava.net/echoseason/aggbug/397805.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2013-04-13 21:49 <a href="http://www.blogjava.net/echoseason/archive/2013/04/13/397805.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用FineReport报表工具实现字段拼接回填数据库</title><link>http://www.blogjava.net/echoseason/archive/2013/04/01/397228.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Mon, 01 Apr 2013 05:46:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2013/04/01/397228.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/397228.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2013/04/01/397228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/397228.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/397228.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/echoseason/数据库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/echoseason/数据库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/echoseason/数据库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; background-position: initial initial; background-repeat: initial initial;"><img src="http://www.blogjava.net/images/blogjava_net/echoseason/数据库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/echoseason/数据库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/echoseason/数据库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/echoseason/aggbug/397228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2013-04-01 13:46 <a href="http://www.blogjava.net/echoseason/archive/2013/04/01/397228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java报表finereport使用心得之数据地图联动</title><link>http://www.blogjava.net/echoseason/archive/2013/04/01/397227.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Mon, 01 Apr 2013 05:44:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2013/04/01/397227.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/397227.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2013/04/01/397227.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/397227.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/397227.html</trackback:ping><description><![CDATA[<div><p style="margin-bottom:0pt; margin-top:0pt; "><br /></p><p style="margin-bottom:12.0000pt; margin-top:15.0000pt; text-autospace:ideograph-other; "><a name="a:1." style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><span style="mso-spacerun:'yes'; color:#383838; font-weight:bold; font-size:12.0000pt; font-family:'Times New Roman'; ">1.&nbsp;问题描述</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">地图的钻取功能，如下图，首次访问显示全中国各省份数据。点击山东省，进入山东省省地图，显示山东省数据，并在右侧的柱形图上显示展现该数据，实现联动效果。</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><img src="http://www.blogjava.net/images/blogjava_net/echoseason/联动1.png" width="592" height="274" alt="" /><br /></p><p style="margin-bottom:12.0000pt; margin-top:15.0000pt; text-autospace:ideograph-other; "><a name="a:2." style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><span style="mso-spacerun:'yes'; color:#383838; font-weight:bold; font-size:12.0000pt; font-family:'Times New Roman'; ">2.&nbsp;实现步骤</span></p><p style="margin-bottom:8.2500pt; margin-top:8.2500pt; text-autospace:ideograph-other; "><a name="a:2.1" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><span style="mso-spacerun:'yes'; color:#383838; font-weight:bold; font-size:11.0000pt; font-family:'Times New Roman'; ">2.1&nbsp;数据准备</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">新建2个数据查询ds1和ds2,：</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">ds1：SQL为</span><span style="color: #5f9ea0; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">SELECT&nbsp;*&nbsp;FROM&nbsp;[地图]</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">。</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">ds2：SQL为</span><span style="color: #5f9ea0; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">SELECT&nbsp;*&nbsp;FROM&nbsp;[地图]&nbsp;where&nbsp;省份='${provience}'</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">。</span></p><p style="margin-bottom:8.2500pt; margin-top:8.2500pt; text-autospace:ideograph-other; "><a name="a:2.2" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><span style="mso-spacerun:'yes'; color:#383838; font-weight:bold; font-size:11.0000pt; font-family:'Times New Roman'; ">2.2&nbsp;地图制作</span></p><p style="margin-left:18.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; line-height:12.0000pt; "><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Symbol;">&#183;&nbsp;</span><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Arial;">添加地图</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">合并一片单元格，点击菜单栏中的</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">插入&gt;单元格元素&gt;插入图表</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">，选择</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">地图</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">，然后点击确定，如下图：</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "></p><p style="margin-left:18.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; line-height:12.0000pt; "><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Symbol;">&#183;&nbsp;</span><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Arial;">地图类型</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">选中地图，在设计器右侧的图表属性面板</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">图表属性表-类型</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">选择地图类型，默认选择为</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">国家地图&gt;中国</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">。</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #ff0000; font-size: 10.5pt; font-family: 微软雅黑;">注：设计器内置有三种地图，世界地图，国家地图以及省市地图，其中国家地图有两个，中国和美国，省市地图为中国的各省市地图，如需自定义地图，则可导入自己准备好的地图图片进行设计，详细请查看</span><a href="http://www.finereporthelp.com/help/1/5/0/7/2.html"><span style="color: #0000ff; font-size: 10.5pt; font-family: 微软雅黑;">自定义地图钻取与联动</span></a><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">。</span></p><p style="margin-left:18.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; line-height:12.0000pt; "><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Symbol;">&#183;&nbsp;</span><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Arial;">区域对应</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">在FineReport的内置数据库中存有区域对应字段，即表示地图的区域名跟数据库中存有的区域名的对应关系，比如说：中国地图，在地图类型处选中中国，点击设置按钮，选择区域对应字段，默认的区域对应字段为各省市的全称，如下图：</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><img src="http://www.blogjava.net/images/blogjava_net/echoseason/联动2.png" width="835" height="398" alt="" /><br /></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">如果数据中的区域名称跟内置的区域名称不一致，即要重新配置区域名称对应，如上图所示，进入定义区域名对话框，可直接在右侧的数据库区域名中手动输入，也可选择数据集之后，直接通过下拉框输入。</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">本</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #ff0000; font-size: 10.5pt; font-family: 微软雅黑;">注：如果数据库中的区域名称跟设计器中内置的地图区域名称对应不上，在使用过程中就会使用默认的区域对应关系。</span></p><p style="margin-left:18.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; line-height:12.0000pt; "><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Symbol;">&#183;&nbsp;</span><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Arial;">地图数据</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">定义好地图的类型之后，就可以为地图定义数据来源了，选中地图，点击</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">图表属性表-数据</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">，进入数据设置面板，</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">地图展现方式</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">选择</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">多层钻取</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">，如下图：</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><img src="http://www.blogjava.net/images/blogjava_net/echoseason/联动3.png" width="230" height="304" alt="" /><br /></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #8b008b; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">钻取层级设置</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">从上图可以看到，钻取层级下有个中国的文件夹，选中中国文件夹，右击，则会跳出层级设置对话框，如下图：</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><img src="http://www.blogjava.net/images/blogjava_net/echoseason/联动4.png" width="307" height="313" alt="" /><br /></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">图中的钻取对应地图表示该区域在钻取完成之后显示的地图，可手动输入，也可下拉框选择，但是该地图必须是定义好的，即必须是内置的地图或者是自定义好的。</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #ff0000; font-size: 10.5pt; font-family: 微软雅黑;">注：如果钻取层次不止两级，比如说钻取到福建省之后，还需要钻取到福建省下面的县级市，但是我们内置地图只到省市，没有内置县级市的地图，这是时候就需要</span><a href="http://www.finereporthelp.com/help/1/5/0/7/2.html"><span style="color: #0000ff; font-size: 10.5pt; font-family: 微软雅黑;">自定义地图</span></a><span style="color: #ff0000; font-size: 10.5pt; font-family: 微软雅黑;">，即自定义县级市地图，然后选中福建省，右击，进入下层钻取设置，在钻取对应地图中选择自定义的地图。比如，自定义了一张泉州市地图，如下图设置即可钻取至泉州市：</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><img src="http://www.blogjava.net/images/blogjava_net/echoseason/联动5.png" width="543" height="311" alt="" /><br /></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #8b008b; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">钻取数据设置</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">点击</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">钻取数据</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">，为每个层次的地图添加数据，层次1即中国地图的数据来源为ds1，区域名为省份，区域值为销售额，层次2即省市地图的数据来源也为ds1，区域名为地名，区域值为利润额，如下图所示设置：</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><img src="http://www.blogjava.net/images/blogjava_net/echoseason/联动6.png" width="232" height="329" alt="" /><br /></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #ff0000; font-size: 10.5pt; font-family: 微软雅黑;">注：支持地图层级钻取的数据表的数据必须全部在一张表中。如果用户数据在多张表，需要用户自己写sql合成一张表。</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #ff0000; font-size: 10.5pt; font-family: 微软雅黑;">在设置钻取层次时，数据设置了几层就显示几层，空白层次不显示。</span></p><p style="margin-left:18.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; line-height:12.0000pt; "><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Symbol;">&#183;&nbsp;</span><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Arial;">地图样式设计</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">选中地图，点击</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">图表属性表-样式&gt;系列</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">可修改值区间以及配色方案。如下图：</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><img src="http://www.blogjava.net/images/blogjava_net/echoseason/联动7.png" width="232" height="435" alt="" /><br /></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #ff0000; font-size: 10.5pt; font-family: 微软雅黑;">注：</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #8b008b; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">数据区间配置</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">数据区间配置如果选择自动，&nbsp;即设计器会根据数据的最大值最小值自动划分区。</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">我们这里选择自定义，主题颜色改为深绿色，划分阶段使用默认值5，区间段设置如上图所示，如果需要修改区间段的颜色，点击色块即可修改。</span></p><p style="margin-bottom:8.2500pt; margin-top:8.2500pt; text-autospace:ideograph-other; "><a name="a:2.3" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><span style="mso-spacerun:'yes'; color:#383838; font-weight:bold; font-size:11.0000pt; font-family:'Times New Roman'; ">2.3&nbsp;柱形图</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">合并一片单元格，点击</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">插入&gt;单元格元素&gt;插入图表</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">，选择柱形图，点击确定即可添加一张柱形图。</span></p><p style="margin-left:18.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; line-height:12.0000pt; "><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Symbol;">&#183;&nbsp;</span><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Arial;">柱形图数据来源</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><img src="http://www.blogjava.net/images/blogjava_net/echoseason/联动8.png" width="232" height="242" alt="" /><br /></p><p style="margin-left:18.0000pt; margin-bottom:0pt; margin-top:0pt; text-autospace:ideograph-other; line-height:12.0000pt; "><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Symbol;">&#183;&nbsp;</span><span style="color: #00008b; font-weight: bold; font-size: 10.5pt; font-family: Arial;">柱形图样式设计</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">给柱形图添加标题</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">各地区利润额排名</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">，如下图：</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><img src="http://www.blogjava.net/images/blogjava_net/echoseason/联动9.png" width="231" height="286" alt="" /><br /></p><p style="margin-bottom:8.2500pt; margin-top:8.2500pt; text-autospace:ideograph-other; "><a name="a:2.4" style="width: 20px; height: 20px; text-indent: 20px; background-image: url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=image&amp;file=anchor.gif); background-repeat: no-repeat no-repeat;"></a><span style="mso-spacerun:'yes'; color:#383838; font-weight:bold; font-size:11.0000pt; font-family:'Times New Roman'; ">2.4&nbsp;联动设置</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">如上所述，地图和柱形图都已经设置好了，如果要实现联动，则需要在设置交互属性。</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">选中地图，在图表属性表中选择</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">特效</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">，点击交互属性，添加一个超级链接，即点击<img src="http://www.blogjava.net/images/blogjava_net/echoseason/联动10.png" width="175" height="20" alt="" /></span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">，添加一个</span><span style="color: #008080; font-weight: bold; font-size: 10.5pt; font-family: 微软雅黑;">图表超链-联动单元格</span><span style="color: #383838; font-size: 10.5pt; font-family: 微软雅黑;">，设置如下图：</span></p><p style="text-indent:16.5000pt; margin-bottom:3.7500pt; margin-top:3.7500pt; text-autospace:ideograph-other; text-align:justify; line-height:16.5000pt; "><img src="http://www.blogjava.net/images/blogjava_net/echoseason/联动11.png" width="511" height="608" alt="" /><br /></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "></p></div><img src ="http://www.blogjava.net/echoseason/aggbug/397227.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2013-04-01 13:44 <a href="http://www.blogjava.net/echoseason/archive/2013/04/01/397227.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Finereport常见问题&amp;紧急处理方案</title><link>http://www.blogjava.net/echoseason/archive/2012/11/15/391370.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Thu, 15 Nov 2012 03:39:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2012/11/15/391370.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/391370.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2012/11/15/391370.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/391370.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/391370.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;&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/echoseason/aggbug/391370.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2012-11-15 11:39 <a href="http://www.blogjava.net/echoseason/archive/2012/11/15/391370.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>finereport爱好者论坛出品--大数据处理</title><link>http://www.blogjava.net/echoseason/archive/2012/10/18/389803.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Thu, 18 Oct 2012 03:17:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2012/10/18/389803.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/389803.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2012/10/18/389803.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/389803.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/389803.html</trackback:ping><description><![CDATA[<div><p style="margin-bottom:0pt; margin-top:0pt; "><br /></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">下面的方法是我对海量数据的处理方法进行了一个一般性的总结，当然这些方法可能并不能完全覆盖所有的问题，但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目，方法不一定最优，如果你有更好的处理方法，欢迎与我讨论。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Calibri'; ">1.Bloom&nbsp;filter&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">适用范围：可以用来实现数据字典，进行数据的判重，或者集合求交集&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">基本原理及要点：&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">对&nbsp;于原理来说很简单，位数组+k个独立hash函数。将hash函数对应的值的位数组置1，查找时如果发现所有hash函数对应位都是1说明存在，很明显这&nbsp;个过程并不保证查找的结果是100%正确的。同时也不支持删除一个已经插入的关键字，因为该关键字对应的位会牵动到其他的关键字。所以一个简单的改进就是&nbsp;counting&nbsp;Bloom&nbsp;filter，用一个counter数组代替位数组，就可以支持删除了。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">还有一个比较重要的问题，如&nbsp;何根据输入元素个数n，确定位数组m的大小及hash函数个数。当hash函数个数k=(ln2)*(m/n)时错误率最小。在错误率不大于E的情况&nbsp;下，m至少要等于n*lg(1/E)才能表示任意n个元素的集合。但m还应该更大些，因为还要保证bit数组里至少一半为0，则m应&nbsp;该&gt;=nlg(1/E)*lge&nbsp;大概就是nlg(1/E)1.44倍(lg表示以2为底的对数)。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">举个例子我们假设错误率为0.01，则此时m应大概是n的13倍。这样k大概是8个。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">注意这里m与n的单位不同，m是bit为单位，而n则是以元素个数为单位(准确的说是不同元素的个数)。通常单个元素的长度都是有很多bit的。所以使用bloom&nbsp;filter内存上通常都是节省的。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">扩展：&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">Bloom&nbsp;filter将集合中的元素映射到位数组中，用k（k为哈希函数个数）个映射位是否全1表示元素在不在这个集合中。Counting&nbsp;bloom&nbsp;filter（CBF）将位数组中的每一位扩展为一个counter，从而支持了元素的删除操作。Spectral&nbsp;Bloom&nbsp;Filter（SBF）将其与集合元素的出现次数关联。SBF采用counter中的最小值来近似表示元素的出现频率。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">问题实例：给你A,B两个文件，各存放50亿条URL，每条URL占用64字节，内存限制是4G，让你找出A,B文件共同的URL。如果是三个乃至n个文件呢？&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">根&nbsp;据这个问题我们来计算下内存的占用，4G=2^32大概是40亿*8大概是340亿，n=50亿，如果按出错率0.01算需要的大概是650亿个bit。&nbsp;现在可用的是340亿，相差并不多，这样可能会使出错率上升些。另外如果这些urlip是一一对应的，就可以转换成ip，则大大简单了。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Calibri'; ">2.Hashing&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">适用范围：快速查找，删除的基本数据结构，通常需要总数据量可以放入内存&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">基本原理及要点：&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">hash函数选择，针对字符串，整数，排列，具体相应的hash方法。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">碰撞处理，一种是open&nbsp;hashing，也称为拉链法；另一种就是closed&nbsp;hashing，也称开地址法，opened&nbsp;addressing。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">扩展：&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">d-left&nbsp;hashing中的d是多个的意思，我们先简化这个问题，看一看2-left&nbsp;hashing。2-left&nbsp;hashing指的是将一个哈希表分成长度相等的两半，分别叫做T1和T2，给T1和T2分别配备一个哈希函数，h1和h2。在存储一个新的key时，同&nbsp;时用两个哈希函数进行计算，得出两个地址h1[key]和h2[key]。这时需要检查T1中的h1[key]位置和T2中的h2[key]位置，哪一个&nbsp;位置已经存储的（有碰撞的）key比较多，然后将新key存储在负载少的位置。如果两边一样多，比如两个位置都为空或者都存储了一个key，就把新key&nbsp;存储在左边的T1子表中，2-left也由此而来。在查找一个key时，必须进行两次hash，同时查找两个位置。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">问题实例：&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">1).海量日志数据，提取出某日访问百度次数最多的那个IP。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">IP的数目还是有限的，最多2^32个，所以可以考虑使用hash将ip直接存入内存，然后进行统计。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'Calibri'; ">3.bit-map&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">适用范围：可进行数据的快速查找，判重，删除，一般来说数据范围是int的10倍以下&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">基本原理及要点：使用bit数组来表示某些元素是否存在，比如8位电话号码&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">扩展：bloom&nbsp;filter可以看做是对bit-map的扩展&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">问题实例：&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">1)已知某个文件内包含一些电话号码，每个号码为8位数字，统计不同号码的个数。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">8位最多99&nbsp;999&nbsp;999，大概需要99m个bit，大概10几m字节的内存即可。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">2)2.5亿个整数中找出不重复的整数的个数，内存空间不足以容纳这2.5亿个整数。&nbsp;</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">将bit-map扩展一下，用2bit表示一个数即可，0表示未出现，1表示出现一次，2表示出现2次及以上。或者我们不用2bit来进行表示，我们用两个bit-map即可模拟实现这个2bit-map。</span></p><p style="margin-bottom:0pt; margin-top:0pt; "></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; font-size:10.5000pt; font-family:'宋体'; ">转载自：<a href="http://bbs.finereport.com/thread-17610-1-1.html">finereport爱好者论坛</a></span></p></div><img src ="http://www.blogjava.net/echoseason/aggbug/389803.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2012-10-18 11:17 <a href="http://www.blogjava.net/echoseason/archive/2012/10/18/389803.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java报表工具中本地效果与服务器效果不一致问题处理经验分享</title><link>http://www.blogjava.net/echoseason/archive/2012/08/23/386156.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Thu, 23 Aug 2012 15:14:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2012/08/23/386156.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/386156.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2012/08/23/386156.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/386156.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/386156.html</trackback:ping><description><![CDATA[<div><p style="margin-bottom:0pt; margin-top:0pt; text-align:center; background:#ffffff; "><span style="color: #444444; font-family: 宋体; font-size: 10.5pt; ">我们做报表通常情况下都是在本地PC机上调试没问题后再发布到服务器上，这个时候经常会出现本地明明调的很好的模板发布后就不对了！！！这边将我遇到过的所有本地效果与服务器效果不一致的问题及解决思路整理下来~~~~</span></p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">当你发现同一张报表在本地环境中访问正常，但是发布到服务器后就不正常了，不管是哪边不正常，首先要做的一定是</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#ff0000; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">A.&nbsp;检查一下是不是同一张模板，最好是重新部署一下</span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#ff0000; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">B.&nbsp;检查一下服务器的jar包与本地的jar包版本是否相同，一定要保证jar版本相同，同步后要重启服务器</span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">检查方法</span><a href="http://www.finereporthelp.com/help/4/0/6/8.html"><span style="color: #336699; font-size: 10.5pt; font-family: 宋体; background-color: #ffffff; background-position: initial initial; background-repeat: initial initial; ">http://www.finereporthelp.com/help/4/0/6/8.html</span></a><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">在确保上面两点都已经检查的情况下，若还有问题，再具体分析。</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#0000ff; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">问题1.&nbsp;部署后报表报错如nullpointer，或者其他非数据相关的错误</span>&nbsp;</p><p style="margin-bottom:0pt; margin-top:0pt; "><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">原因</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：最常见的原因是服务器jar与本地jar版本不同；其次是模板没有同步</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">纠错思路</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A、B两步</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果还有问题，则可能是bug，联系FR技术</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#0000ff; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">问题2.&nbsp;部署后报找不到数据连接</span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">原因</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：服务器数据连接定义有问题，比如本地定义的数据连接名字用的test，报表数据集那边选择的数据库是test，而服务器为了规范，把数据连接名字改了如db，模板中数据集那边没改，还是用的test，就错了</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">纠错思路</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A、B两步</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;然后确认本地数据连接定义与服务器数据连接定义是否正确</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;再确认模板数据集那边使用的数据库是否正确</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;这里最好是测试环境与正式环境尽可能的相同，发布报表的时候数据相关的配置文件datasource.xml也要上传</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#0000ff; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">问题3.&nbsp;部署后报表空的，没有数据/下拉控件中没有数据等</span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">原因</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：和上面一个问题类似，都是数据问题，往往都是本地环境中定义的数据连接、数据表与服务器名字等不一致导致，比如模板数据集被误删了，被传到了服务器上，数据没了</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">纠错思路</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A、B两步</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;确认数据连接定义对不对</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;确认模板中的数据集定义对不对</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#0000ff; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">问题4.&nbsp;部署后报表可以访问，但是与本地有差异</span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">原因</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：通常都是模板不同步导致，比如改了一个小地方，以为自己覆盖服务器上的模板了，实际上还没传</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">纠错思路</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A、B&nbsp;两步</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#0000ff; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">问题5.&nbsp;部署后报表工具栏不见了</span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">原因</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：模板工具栏设置用的是服务器设置，而服务器上的没设置全局工具栏</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">纠错思路</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A、B两步</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打开模板看一下工具栏用的为该模板单独设置还是采用的服务器设置</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果用的是服务器设置，则设计器远程登陆到服务器环境，看一下服务器设置工具栏有没有</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;部署的时候注意要把服务器配置config.xml也要传到服务器上</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#0000ff; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">问题6.&nbsp;部署后报表原来居中显示的变成居左显示了或相反情况</span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">原因</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：和上面的问题类似，用的是服务器配置，而服务器配置中设置不正确</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">纠错思路</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A、B两步</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;打开模板看一下预览配置用的是单独配置还是采用服务器设置</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;一般可以直接改为单独设置，把显示位置改为如居中，再重新上传一下模板</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果还是不行，则可能是bug，联系FR技术</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#0000ff; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">问题7.&nbsp;部署后报表边框缺失了</span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">原因</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：这个一般是服务器jar与本地jar版本不同导致</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">纠错思路</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A、B两步</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jar同步后本地好的，服务器上还是有问题，则可能是bug，联系FR技术</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;边框问题FR这边处理的不完美，通常遇到这样的情况，和FR反馈后，自己也通过一些变通的方法解决，比如在临近的单元格加上边框</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#0000ff; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">问题8.&nbsp;部署后报表单元格自动调整行高效果不对</span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">原因</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：这个一般是服务器jar与本地jar版本不同导致</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">纠错思路</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A、B两步</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;jar同步后本地好的，服务器上还是有问题，则可能是bug，联系FR技术</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#0000ff; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">问题9.&nbsp;部署报表后地图显示不出来</span></p><p style="margin-bottom: 0pt; margin-top: 0pt; "><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">原因</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：部署的时候没把地图用到的内置数据库拷贝到服务器</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-weight:bold; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">纠错思路</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">：</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A、B两步</span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; "><br /></span><span style="mso-spacerun:'yes'; color:#444444; font-size:10.5000pt; font-family:'宋体'; background:#ffffff; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;确认WEB-INF\resources\chartdb有没有拷贝到服务器<br /><br /><br /><span style="color: #ff0000; font-size: 10.5pt; text-indent: -18pt; ">java报表工具：</span><br /><p style="margin-left:18.0000pt; margin-bottom:0pt; margin-top:0pt; "><a href="http://www.finereport.com/javareport"><span style="color: #ff0000; font-size: 10pt; font-family: 'Times New Roman'; ">http://www.finereport.com/javareport</span></a>&nbsp;</p></span></p></div><img src ="http://www.blogjava.net/echoseason/aggbug/386156.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2012-08-23 23:14 <a href="http://www.blogjava.net/echoseason/archive/2012/08/23/386156.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java报表工具图例展示之FineReport报表功能图</title><link>http://www.blogjava.net/echoseason/archive/2011/04/17/348450.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Sun, 17 Apr 2011 12:44:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2011/04/17/348450.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/348450.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2011/04/17/348450.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/348450.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/348450.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 之前几期的报表图例展示中，我们先后为大家展示了使用FineReport报表制作出来的几种重要的报表类型，诸如分组报表、汇总报表、带参数报表、填报表等等。今天作为图例展示的最后一期文章，我们着重介绍FineReport报表的功能演示图。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/echoseason/archive/2011/04/17/348450.html'>阅读全文</a><img src ="http://www.blogjava.net/echoseason/aggbug/348450.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2011-04-17 20:44 <a href="http://www.blogjava.net/echoseason/archive/2011/04/17/348450.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java报表工具图例展示之其他类型报表</title><link>http://www.blogjava.net/echoseason/archive/2011/04/08/347912.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Fri, 08 Apr 2011 13:50:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2011/04/08/347912.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/347912.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2011/04/08/347912.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/347912.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/347912.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 上一篇文章里我们集中展示了利用FineReport这一Java报表工具制作出来的填报表，并概括说明了填报表的多种功能。今天我们要介绍的是FineReport的其他报表实现效果。<br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/echoseason/archive/2011/04/08/347912.html'>阅读全文</a><img src ="http://www.blogjava.net/echoseason/aggbug/347912.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2011-04-08 21:50 <a href="http://www.blogjava.net/echoseason/archive/2011/04/08/347912.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java报表工具图例展示之填报表</title><link>http://www.blogjava.net/echoseason/archive/2011/03/24/346984.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Thu, 24 Mar 2011 13:34:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2011/03/24/346984.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/346984.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2011/03/24/346984.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/346984.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/346984.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:       上一篇文章里我们集中展示了利用FineReport这一Java报表工具制作出来的带参数报表，并概括说明了各类型带参数报表的应用范围。今天我们要介绍的是FineReport的填报表。一款功能完整的报表工具，不仅需要对数据进行展示和查询，还要有一项重要的功能：填报。FineReport的填报设计是利用B/S模式实现了对后台数据的增删改，使得对数据库的维护变得简单高效。&nbsp;&nbsp;<a href='http://www.blogjava.net/echoseason/archive/2011/03/24/346984.html'>阅读全文</a><img src ="http://www.blogjava.net/echoseason/aggbug/346984.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2011-03-24 21:34 <a href="http://www.blogjava.net/echoseason/archive/2011/03/24/346984.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java报表工具图例展示之带参数报表</title><link>http://www.blogjava.net/echoseason/archive/2011/03/20/346622.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Sun, 20 Mar 2011 02:06:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2011/03/20/346622.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/346622.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2011/03/20/346622.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/346622.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/346622.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要:       上一篇文章里我们集中展示了利用FineReport这一Java报表工具制作出来的汇总报表，并概括说明了各类型汇总报表的应用范围。今天我们要介绍的，比之前的两种报表要复杂，因为它不再是单纯的展示，而是提供报表参数的传递，实现了用户与数据的交互。有了参数，用户可以针对自己想要看到的数据，对原始数据进行筛选，使得数据的展示更加清晰、准确、有条理。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/echoseason/archive/2011/03/20/346622.html'>阅读全文</a><img src ="http://www.blogjava.net/echoseason/aggbug/346622.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2011-03-20 10:06 <a href="http://www.blogjava.net/echoseason/archive/2011/03/20/346622.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java报表工具图例展示之汇总报表</title><link>http://www.blogjava.net/echoseason/archive/2011/03/12/346135.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Sat, 12 Mar 2011 14:23:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2011/03/12/346135.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/346135.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2011/03/12/346135.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/346135.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/346135.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 上一篇文章里我们集中展示了利用FineReport这一Java报表工具制作出来的分组报表，并概括说明了各类型分组报表的应用范围。今天我们继续介绍另一种重要的报表——汇总报表。不难理解，汇总报表就是将展示的数据进行求和或个数统计，给出一个总的结果。<br><br>&nbsp;&nbsp;<a href='http://www.blogjava.net/echoseason/archive/2011/03/12/346135.html'>阅读全文</a><img src ="http://www.blogjava.net/echoseason/aggbug/346135.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2011-03-12 22:23 <a href="http://www.blogjava.net/echoseason/archive/2011/03/12/346135.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java报表工具图例展示之分组报表</title><link>http://www.blogjava.net/echoseason/archive/2011/03/02/345532.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Wed, 02 Mar 2011 14:57:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2011/03/02/345532.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/345532.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2011/03/02/345532.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/345532.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/345532.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 上一篇文章里我们集中展示了利用FineReport这一Java报表工具制作出来的报表图，并概括说明了各类型图的应用范围。在接下来的几篇文章里，我们将展示FineReport的报表表样。与报表图相比，表样因为有了文字内容的加入，使得展示更加详细，整张报表也更趋于理性和说服性。今天我们就先从分组报表说起。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/echoseason/archive/2011/03/02/345532.html'>阅读全文</a><img src ="http://www.blogjava.net/echoseason/aggbug/345532.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2011-03-02 22:57 <a href="http://www.blogjava.net/echoseason/archive/2011/03/02/345532.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java报表工具图例展示之各类型报表图</title><link>http://www.blogjava.net/echoseason/archive/2011/02/23/344881.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Tue, 22 Feb 2011 16:01:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2011/02/23/344881.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/344881.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2011/02/23/344881.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/344881.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/344881.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 针对不同的数据表现形式，可以使用不同类型的报表图来展示。下面我们以FineReport报表软件为例，说明Java报表工具中不同类型的图表使用范围。<br>    数据的分布展示，可以选用散点图。因为它提供X、Y轴两个变量，故可以较为清晰地看出二者的联系。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/echoseason/archive/2011/02/23/344881.html'>阅读全文</a><img src ="http://www.blogjava.net/echoseason/aggbug/344881.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2011-02-23 00:01 <a href="http://www.blogjava.net/echoseason/archive/2011/02/23/344881.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>远离报表需求分析之苦</title><link>http://www.blogjava.net/echoseason/archive/2009/04/24/267322.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Fri, 24 Apr 2009 03:19:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2009/04/24/267322.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/267322.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2009/04/24/267322.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/267322.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/267322.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp; 在做信息化的圈子中呆了十年，大家都知道报表需求变更是软件开发与生俱来的特性，也是一个无法避免的事实。甚至有人戏言&#8220;业务逻辑是没有多逻辑的逻辑&#8221;，业务一变，报表就要跟着变。</p>
<p>&nbsp;&nbsp;&nbsp; 由于报表需求的不断变更，使我们一个信息系统开发史变成it开发人员的血泪史。主要是由于以下原因：<br />
<br />
&nbsp;&nbsp;&nbsp; 1）客户临时改变想法、项目预算增加或减少、客户对功能的需求改变等。于是我们就要开始应对客户报表需求变更申请，然后进行一系列的软件工程管理，最后修改程序。更有甚者不再向我申请变更，而是直接找程序员商量。于是一步血泪史拉开了序幕.<br />
<br />
&nbsp;&nbsp;&nbsp; 2）需求、客户、开发人员是一个三极世界。这三极的沟通是很不容易的。客户向我们滔滔不绝地描述需求，开发者听得头晕脑胀，但又不得不根据这些来理解需求。有的时候我们也会派好几拨人轮番折腾客户，这样客户也晕头转向，巴不得赶快需求调研结束。这样的需求调研像透过布满小水珠的玻璃看世界一样，即使能够看清轮廓，但细节的丢失在所难免。由于需求理解的不充分，在项目后期就要对已经开发好的报表进行修改。<br />
<br />
&nbsp;&nbsp;&nbsp; 3）公司销售人员为了签单和对技术细节了解到不是清楚。对客户需求扫一眼，就认为只是一个小小的修改，没有太大的影响，所以直接答应能变更。然后这些伪报表需求就都写到了合同中。</p>
<p><br />
&nbsp;&nbsp;&nbsp; 怎么解决以上问题？只有依靠报表工具。如果我们在项目早期能对对客户提到的报表需求，使用报表工具进行调研。一边理解客户需求，一边使用报表设计器制作报表，最后给客户确认。这样再也没有报表理解需求偏差，合同中承诺了不够合理的报表需求，变更修改来方便多了。</p>
<p><br />
&nbsp;&nbsp;&nbsp; 我这里把对报表工具的调查分享给大家，不足的希望大家修正和补充：</p>
<p>&nbsp;&nbsp;&nbsp; 水晶报表：经过二十年的积累，设计器的易用性和友好已经非常不错了。但是不能方便的导入excel样表（国内以往很多报表都是excel的），条带状的报表模型在中国水土不服。很难搞定复杂报表。<br />
<br />
&nbsp;&nbsp;&nbsp; ireport：ireport作为jasperreport的客户端设计器，和水晶报表一样有同样的不足，同时还存在教程资料不足，没有方便的技术支持，没有中文界面。要想做到ireport来做到需求调研基本不可能。<br />
<br />
&nbsp;&nbsp;&nbsp; birt：被安讯公司的市场策略定位为开源产品（传说birt的开发团队就在中国上海），然后通过出售服务和基于birt的高级报表解决方案来获取商业利益。birt是基于eclipse，感觉使用起来太重型了，一般人看着晕，当然他也和水晶报表一样缺点。<br />
<br />
&nbsp;&nbsp;&nbsp; 润乾：是个类似excel的报表设计器，用swing开发出来的。他能支持excel样式表的输入和解决中国复杂报表问题。但是感觉swing的功力不够，设计器外观比较丑，而且设计过程中需要写大量的表达式，如果表达式不熟练，做制作起来非常慢，如果表达式写错了，感觉没有很强的调试功能。<br />
<br />
&nbsp;&nbsp;&nbsp;<a href="http://www.finereport.com">FineReport</a>：也是类excel的设计器，这个公司的swing确实做到不错。通过拖拽到界面解决了写表达式的问题，能多人协助远程设计报表，应该是我见过的设计器效率最高的设计器。个人很想认识这个公司的swing大牛。当然它也能解决客户的复杂报表问题。不足之处，没有一般ide工具属</p>
<p>性窗口。</p>
<p><br />
&nbsp;&nbsp;&nbsp; 总结一下，大家在实际过程中，最好使用商业软件，才能做到用报表工具做需求调研。国外的水晶报表资历比较老，国内的FineReport和润乾，FineReport是走windows路线，润乾走linux路线。</p>
 <img src ="http://www.blogjava.net/echoseason/aggbug/267322.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2009-04-24 11:19 <a href="http://www.blogjava.net/echoseason/archive/2009/04/24/267322.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>报表工具选择的关键点</title><link>http://www.blogjava.net/echoseason/archive/2008/11/28/243254.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Fri, 28 Nov 2008 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2008/11/28/243254.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/243254.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2008/11/28/243254.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/243254.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/243254.html</trackback:ping><description><![CDATA[<font style="background-color: #cce8cf">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 无论是企业还是政府机关，上级要监管、考核下级，通常的做法是要求下级定时保送一些报表，然后对这些报表进行分析统计。例如税务、财政、交通、建设等部门，都有大量的年报、月报、季报甚至周报、日报等，要求下级层层上报；又比如银监会监督各商业银行，也需要各行定期保送报表；再比如，各统计局也要求企业定期保送大量统计报表，然后在汇总分析，生成本地区的统计报告。由此可见，报表上报汇总的应用需求，在我国是普遍存在的。 <br />
如何建设好&#8220;报表汇总分析项目&#8221;？其关键点是什么呢？ <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 综合几年的客户反馈情况，我们认为最重要的有如下几点：<br />
&nbsp;&nbsp;&nbsp; 1、报表设计工具要灵活方便，能胜任任意复杂的报表形式 <br />
报表管理是中式管理的一大特色，中国人严重聪明，经常制订出一些架构复杂的报表。中国报表均要求有整齐的格线，多层表头层次分明。业内有名的报表工具一般采用控件式拖拽 的绘制方案，画起来非常烦琐，且还与分辨率相关，屏幕与打印不一致，而中国报表对打印样式要求向来很高。显然，报表设计工具应允许用户天马行空地设计出超复杂报表。&nbsp; <br />
&nbsp;&nbsp;&nbsp; 2、系统应能处理不同结构的报表 <br />
一般管理用报表分两种，一是行列固定的表（二维表），如资产负债表、利润表等；二是行数可以任意增加的表，如工资表、设备明细表等。有时候还会有两者合成在一起的报表。&nbsp; <br />
&nbsp;&nbsp;&nbsp; 3、绝对应采用B/S架构的报表平台 <br />
报表采集需要有基层和中级层级参与，如果采用单机版软件，则有很多问题。<br />
&nbsp;&nbsp;&nbsp; 1）需要层层下发报表格式和报表软件，降低任务部署效率。 <br />
&nbsp;&nbsp;&nbsp; 2）如果运行中报表格式更新了，又要层层下发。万一某些下级没有更新，那就只有一个字&#8220;悲惨&#8221;。 <br />
&nbsp;&nbsp;&nbsp; 3）下级要安装报表软件，严重增加总部的服务压力。&nbsp; <br />
&nbsp;&nbsp;&nbsp; 4、系统应提高强大的报表运算和审核校对能力 <br />
人工采集数据，数据质量是最重要的。为此很多上级都是通过设置严格的审核公式来达到控制数据质量的目的。事先无法确定实际业务中报表构稽关系是如何的，只能指望系统具备良好的公式内核，能胜任任意审核关系。&nbsp; <br />
&nbsp;&nbsp;&nbsp; 5、系统应能自动管理数据库 <br />
对于操作报表的业务人员而言，其实并不关系报表数据是如何存储的，只要系统存取数据正确、性能良好即可。很多软件需要用户根据报表格式和软件要求的规则定义数据库结构，然后再定义单元格与字段的对应关系。这真是巨困难！好的系统根据报表格式，自动创建、管理数据库，让数据库对使用者透明，而不管后台是Oracle、SQL Server还是MySQL。&nbsp; <br />
&nbsp;&nbsp;&nbsp; 6、一定要考虑到上线后的报表指标体系还是要变的 <br />
随着业务管理的变化，在运行了6个月的报表上插入或追加一些指标是很正常的业务要求。增加或许好办点，如果是插入或删除，就有可能导致报表中数据的错行，这是很多系统无法解决的问题。理想的效果是，在一张报表中插入几行这样的更新动作，只应在总部做一次报表编辑，然后重新部署到服务器上即可。而各下级重新登陆后，能看到以前填报的数据，无非是新插入的行上没有数据罢了。&nbsp; <br />
&nbsp;&nbsp;&nbsp; 7、系统的分析功能一定要强大 <br />
报表汇总上来的根本目的是为了分析，从而为领导决策提供依据。分析的需求也是五花八门的，所以报表软件一定要有灵活强大的分析功能，允许用户定义任意形式的分析报表或统计图。&nbsp; <br />
中国报表最困难的地方是数据统计。中国报表具有的多数据源、整表规则分片、不完全划分、跨行组运算及独立格间运算、行列对称等诸多特征，是传统报表工具无法满足的，常常导致要求编写代码准备数据或进行子表拼接才能完成一个复杂报表的制作。<br />
&nbsp;&nbsp;&nbsp; 8、一定要支持二次开发，来满足某些极个性化的需求 <br />
既然是选择的平台软件，也就是所谓的通用产品软件，其稳定性通用性多半不成问题，但也因此有少量个性化的需求系统将无法满足。也许这就是Office这样流行的成品软件也要提供VBA的原因吧。所以，系统一定要支持类似VBA的扩充能力，也就是允许用户通过内置脚本扩充功能。</font>
 <img src ="http://www.blogjava.net/echoseason/aggbug/243254.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2008-11-28 15:00 <a href="http://www.blogjava.net/echoseason/archive/2008/11/28/243254.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何选择WEB报表工具（二）</title><link>http://www.blogjava.net/echoseason/archive/2007/10/23/155196.html</link><dc:creator>season</dc:creator><author>season</author><pubDate>Tue, 23 Oct 2007 02:04:00 GMT</pubDate><guid>http://www.blogjava.net/echoseason/archive/2007/10/23/155196.html</guid><wfw:comment>http://www.blogjava.net/echoseason/comments/155196.html</wfw:comment><comments>http://www.blogjava.net/echoseason/archive/2007/10/23/155196.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/echoseason/comments/commentRss/155196.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/echoseason/services/trackbacks/155196.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 保表是应用系统的重要组成部分，选择好报表工具将大大提高应用系统的建设效率。特别是对于Web报表的开发而言，由于涉及到了服务器部署、应用集成、客户端展现、性能等多个方面，同时又继承了报表固有的复杂格式的设计与实现问题，因此就更需要选择好Web报表工具。&nbsp;&nbsp;<a href='http://www.blogjava.net/echoseason/archive/2007/10/23/155196.html'>阅读全文</a><img src ="http://www.blogjava.net/echoseason/aggbug/155196.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/echoseason/" target="_blank">season</a> 2007-10-23 10:04 <a href="http://www.blogjava.net/echoseason/archive/2007/10/23/155196.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>