﻿<?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软件报表软件技术博客</title><link>http://www.blogjava.net/fannie/</link><description>java报表软件技术汇总      java报表软件制作       报表软件新闻</description><language>zh-cn</language><lastBuildDate>Tue, 07 Jul 2026 09:05:41 GMT</lastBuildDate><pubDate>Tue, 07 Jul 2026 09:05:41 GMT</pubDate><ttl>60</ttl><item><title> FineReport中如何用JavaScript解决控件值刷新不及时</title><link>http://www.blogjava.net/fannie/archive/2017/03/15/432376.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Wed, 15 Mar 2017 03:31:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2017/03/15/432376.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/432376.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2017/03/15/432376.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/432376.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/432376.html</trackback:ping><description><![CDATA[<p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:24.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">我们经常利用按钮进行一些页面值的处理工作，但是默认的逻辑造成，每次新填报的值，需要点击下空白区域或是执行某个其他操作才可以被正确读取，那么我们如何处理呢？</span></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:24.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">例：当我们用常规取值的时候，虽然B3单元格录入了值，但是在光标不离开B3的前提下，用JS只获取到了控制而不是实际的值&#8220;2&#8221;。</span></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:24.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">想获得B3的值，需要在空白处点击下鼠标，让文本框的左上角的红三角出现才可以。</span></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:24.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">优化过后则可以将光标强制跳转到A2单元格，使其获得光标，进而强制B3单元格刷新值。</span></p><p align="center" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:0.0000pt;text-autospace:ideograph-numeric;text-align:center;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/1.gif" width="934" height="487" alt="" /><br /></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:24.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">既然任意点击空白处就可以，那么我们就用JS来强制跳转光标实现同样的功能。</span></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:0.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">模板制作</span></strong><strong></strong></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:24.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">模板样式设计如下，A3和B3单元格添加文本控件，C3单元格为A3和B3相加值，D3和E3单元格添加按钮控件：</span></p><p align="center" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:0.0000pt;text-autospace:ideograph-numeric;text-align:center;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/2.png" width="429" height="105" alt="" /><br /></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:0.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">&#8220;直接相加&#8221;按钮的JS</span></strong><strong></strong></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:24.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">D3控件名称为直接相加，添加一个点击事件</span></p><p align="center" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:0.0000pt;text-autospace:ideograph-numeric;text-align:center;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/3.png" width="656" height="598" alt="" /><br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">var</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;B3&nbsp;</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">=</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;contentPane.curLGP.getCellValue(</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">B3</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">);</span><br /><span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">var</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;A3&nbsp;</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">=</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;contentPane.curLGP.getCellValue(</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">A3</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">);</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">alert(</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">a3的值:</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">+</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">A3);</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">alert(</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">b3的值:</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">+</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">B3);</span></div><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:0.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">&#8220;优化后&#8221;按钮的JS</span></strong><strong></strong></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:24.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">E3控件名称为优化后，添加一个点击事件</span></p><p align="center" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:0.0000pt;text-autospace:ideograph-numeric;text-align:center;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/4.png" width="656" height="598" alt="" /><br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-family: 'Times New Roman'; font-size: 14pt;">contentPane.curLGP.selectTDCell("</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">A2</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">);</span><br />&nbsp;<br /><span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">var</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;B3&nbsp;</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">=</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;contentPane.curLGP.getCellValue(</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">B3</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">);</span><br /><span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">var</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;A3&nbsp;</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">=</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;contentPane.curLGP.getCellValue(</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">A3</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">);</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">alert(</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">a3的值:</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">+</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">A3);</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">alert(</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">b3的值:</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">+</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">B3);</span></div><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:0.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">contentPane.curLGP.selectTDCell(&#8220;A2&#8221;)：</span></strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">表示的是，将光标强制跳转到A2单元格，也就相当于用鼠标点击了一下A2单元格，使其获得光标，进而强制B3单元格刷新值。</span></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:0.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">常见场景</span></strong><strong></strong></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:24.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">用户通过文本框填报了值，而需要对这个值进行取出判断的时候，经常会取空值，只有用户点击了空白区域，才可以正常取值。</span></p><p align="justify" style="margin-right:0.0000pt;margin-left:0.0000pt;text-indent:24.0000pt;text-autospace:ideograph-numeric;text-align:justify;text-justify:inter-ideograph;line-height:20.0000pt;"><span style="font-family: 'Times New Roman'; font-size: 12pt;">比如：用户填写了手机号码，就可以跳转到领取奖品的页面，若手机号码是最后一个填报栏，填写后，用户直接提交，系统则会认为，手机号码一栏为空。</span></p><img src ="http://www.blogjava.net/fannie/aggbug/432376.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2017-03-15 11:31 <a href="http://www.blogjava.net/fannie/archive/2017/03/15/432376.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FineReport中如何实现自动滚屏效果</title><link>http://www.blogjava.net/fannie/archive/2017/03/06/432360.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Mon, 06 Mar 2017 02:27:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2017/03/06/432360.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/432360.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2017/03/06/432360.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/432360.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/432360.html</trackback:ping><description><![CDATA[<p style="margin: 0px 0pt; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 24pt; background-color: #ffffff;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">对于一些特殊的模板，可能为了展示的更加丰富、全面会在一个页面放置很多图表。表格等内容。由于内容过多，超出了浏览器窗口的大小导致内容展示不全的情况。这样我们就需要用到JS滚屏效果来解决，这里主要介绍在FineReport中的具体制作方法。&nbsp;</span></p><p style="margin: 0px 0pt; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 24pt; background-color: #ffffff;">&nbsp;</p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-align: center; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif;"><img alt="" src="http://dl2.iteye.com/upload/attachment/0123/4982/51e349a4-9d8b-3771-87bf-e4fb8e7f84a5.gif" title="点击查看原始大小图片" width="700" height="339" style="border: 0px; cursor: url(http://www.iteye.com/images/magplus.gif), pointer;" /></span><br />&nbsp;</p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Times New Roman'; font-size: 14pt;"><strong>添加加载结束事件</strong></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 24pt; text-align: justify; background-color: #ffffff;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">点击菜单模板&gt;模板web属性&gt;分页预览设置，选择&#8220;为该模板单独设置&#8221;，添加一个&#8220;加载结束&#8221;后事件，如下图所示：</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 24pt; text-align: justify; background-color: #ffffff;">&nbsp;</p><p style="margin: 0px 0pt; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 24pt; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif;"><img alt="" src="http://dl2.iteye.com/upload/attachment/0123/4986/244c2527-7919-3b20-8927-69c9f176e2d4.png" title="点击查看原始大小图片" width="700" height="468" style="border: 0px; cursor: url(http://www.iteye.com/images/magplus.gif), pointer; display: block; margin-left: auto; margin-right: auto;" /></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;">&nbsp;</p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Times New Roman'; font-size: 14pt;">JS代码如下：<br /></span></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">//</span><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">从页面加载结束后延迟2000MS执行事件（滚动）</span><span style="color: #008000; "><br /></span><span style="font-family: 'Times New Roman'; font-size: 14pt;">setTimeout(</span><span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">function</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">(){</span><br /><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">//</span><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">当鼠标点击时</span><span style="color: #008000; "><br /></span><span style="font-family: 'Times New Roman'; font-size: 14pt;">$(</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">.content-container</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">).click(</span><span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">function</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">()</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">{</span><br /><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">//</span><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">如果页面正在执行事件（滚动）</span><span style="color: #008000; "><br /></span>&nbsp;&nbsp;<span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">if</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">(interval)</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;&nbsp;{</span><br /><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">//</span><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">取消事件（滚动）</span><span style="color: #008000; "><br /></span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;&nbsp;clearInterval(interval);</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;&nbsp;}</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">})</span><br /><span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">var</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;old</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">=-</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">1</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">;</span><br /><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">//</span><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">按照指定周期不断的调用滚动事件</span><span style="color: #008000; "><br /></span><span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">var</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;interval</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">=</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">setInterval(</span><span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">function</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">()</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">{&nbsp;</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">currentpos</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">=</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">$(</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">.content-container</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">)[</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">0</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">].scrollTop;</span><br /><span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">if</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">&nbsp;(currentpos</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">==</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">old){</span><br /><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">//</span><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">取消事件（滚动）</span><span style="color: #008000; "><br /></span><span style="font-family: 'Times New Roman'; font-size: 14pt;">clearInterval(interval);</span><br /><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">//</span><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">重新加载页面</span><span style="color: #008000; "><br /></span><span style="font-family: 'Times New Roman'; font-size: 14pt;">window.location.reload();</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">}</span><br /><span style="color: #0000ff; font-family: 'Times New Roman'; font-size: 14pt;">else</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">{</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">old</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">=</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">currentpos;</span><br /><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">//</span><span style="color: #008000; font-family: 'Times New Roman'; font-size: 14pt;">以25MS的速度每次滚动3.5PX</span><span style="color: #008000; "><br /></span><span style="font-family: 'Times New Roman'; font-size: 14pt;">$(</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">.content-container</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">"</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">)[</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">0</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">].scrollTop</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">=</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">currentpos</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">+</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">3.5</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">;</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">}</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">}</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">,</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">25</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">);</span><br /><span style="font-family: 'Times New Roman'; font-size: 14pt;">},</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">2000</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">)</span></div><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Times New Roman'; font-size: 14pt;"><strong>保存与预览</strong></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; text-indent: 24pt; text-align: justify; background-color: #ffffff;"><span style="font-family: 'Times New Roman';">保存模板，点击分页预览，就会出现上面的自动滚动效果。如果想要停止滚动的话，用鼠标左键点击一下窗口即可。</span></p><img src ="http://www.blogjava.net/fannie/aggbug/432360.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2017-03-06 10:27 <a href="http://www.blogjava.net/fannie/archive/2017/03/06/432360.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FineReport中JS如何自定义按钮导出 </title><link>http://www.blogjava.net/fannie/archive/2017/02/28/432343.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Tue, 28 Feb 2017 02:31:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2017/02/28/432343.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/432343.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2017/02/28/432343.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/432343.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/432343.html</trackback:ping><description><![CDATA[<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">FineReport支持多种不同的导出方式，直接使用FineReport内置导出按钮可以非常快捷方便的来对各种格式的输出，但是我们在web页面集成中的时候，往往只想将报表内容嵌入到iframe中，而工具栏以及工具栏上的按钮都会隐藏掉，而使用web页面自定义的按钮，那么，此时，这种自定义按钮如何实现导出呢？</span><span style="font-family: 'Microsoft YaHei'; font-size: 14px">&nbsp;<img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://img.blog.csdn.net/20170228095602724" /></span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">如上图所示，新建一个html页面，定义一个工具栏和一个iframe，工具栏中定义上图所示的按钮，iframe中嵌入FineReport中的报表，如下图：</span><span style="font-family: 'Microsoft YaHei'; font-size: 14px">&nbsp;<img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://img.blog.csdn.net/20170228095613172" /></span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong><span style="font-family: 'Microsoft YaHei'; font-size: 14px">FineReport报表设置</span></strong></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">打开设计器，找到上面web页面中嵌入的那张模板，由于要使用自定义按钮作为工具栏，那么FineReport报表内置的工具栏就无需显示出来。点击模板&gt;模板web属性&gt;分页预览设置，去掉使用工具栏前面的勾选，如下图：</span></p>
<p style="text-align: center; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">&nbsp;<img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://img.blog.csdn.net/20170228095626240" /></span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong><span style="font-family: 'Microsoft YaHei'; font-size: 14px">自定义导出按钮</span></strong></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">Web页面中定义了9个自定义导出按钮，那么怎样才能实现导出操作呢？</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">FineReport导出操作的JS接口为：</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px"><strong>导出PDF</strong>：exportReportToPDF()</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px"><strong>导出[Excel](分页)</strong>：exportReportToExcel('page')</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px"><strong>导出[Excel](原样)</strong>：exportReportToExcel('simple')</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px"><strong>导出[Excel](分页分sheet)</strong>：exportReportToExcel('sheet')</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px"><strong>导出[Excel](分页导出xls格式)</strong>：exportReportToExcel('page_isExcel2003')</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px"><strong>导出[Excel](原样导出xls格式)</strong>：exportReportToExcel('page_isExcel2003')</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px"><strong>导出[Excel](分页分sheet导出xls格式)</strong>：exportReportToExcel('page_isExcel2003')</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px"><strong>导出[图片]</strong>：exportReportToImage('gif')【括号里面可以更换参数，比如说png，jpg等等图片类型】</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px"><strong>导出[word]</strong>：exportReportToWord()</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">故，各个按钮的点击事件应用调用上述的JS接口来实现其对应的导出格式，比如说导出PDF，那么其按钮的onclick时间为：</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">&nbsp;onclick="document.getElementById('reportFrame').contentWindow.contentPane.exportReportToPDF()"</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">docment.getElementById('reportFrame')是获取到iframe框架，然后通过contentWindow得到报表窗口，并拿到contentPane这个报表容器，最后就可以从容器中调用各种导出接口的方法了。</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">其他的几个按钮的导出事件这里就不一一讲解了。</span></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><strong><span style="font-family: 'Microsoft YaHei'; font-size: 14px">完整代码</span></strong></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">根据上述同样的方法为其他几个按钮添加导出事件，完整代码如下：</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&lt;</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000">FineReport自定义导出</span><span style="color: #000000">&lt;/</span><span style="color: #000000">title</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">meta&nbsp;http</span><span style="color: #000000">-</span><span style="color: #000000">equiv</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">Content-Type</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;content</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">text/html;&nbsp;charset=UTF-8</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">/&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">head</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">fieldset</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">div&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">toolbar</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">button&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">document.getElementById('reportFrame').contentWindow.contentPane.exportReportToPDF()</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">导出[PDF]</span><span style="color: #000000">&lt;/</span><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">button&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('page')</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">导出[Excel](分页)</span><span style="color: #000000">&lt;/</span><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">button&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('simple')</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">导出[Excel](原样)</span><span style="color: #000000">&lt;/</span><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">button&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('sheet')</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">导出[Excel](分页分sheet)</span><span style="color: #000000">&lt;/</span><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">button&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('page_isExcel2003')</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">导出[Excel](分页导出xls格式)</span><span style="color: #000000">&lt;/</span><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">button&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('simple_isExcel2003')</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">导出[Excel](原样导出xls格式)</span><span style="color: #000000">&lt;/</span><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">button&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">document.getElementById('reportFrame').contentWindow.contentPane.exportReportToExcel('sheet_isExcel2003')</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">导出[Excel](分页分sheet导出xls格式)</span><span style="color: #000000">&lt;/</span><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">button&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">document.getElementById('reportFrame').contentWindow.contentPane.exportReportToImage('png')</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">导出[图片]</span><span style="color: #000000">&lt;/</span><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">button&nbsp;type</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">button</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;&nbsp;onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">document.getElementById('reportFrame').contentWindow.contentPane.exportReportToWord()</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">导出[Word]</span><span style="color: #000000">&lt;/</span><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">div</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">fieldset</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">iframe&nbsp;id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">reportFrame</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;width</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">100%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;height</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">100%</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;src</span><span style="color: #000000">=</span><span style="color: #000000">'</span><span style="color: #000000">/</span><span style="color: #000000">WebReport</span><span style="color: #000000">/</span><span style="color: #000000">ReportServer</span><span style="color: #000000">?</span><span style="color: #000000">reportlet</span><span style="color: #000000">=</span><span style="color: #000000">doc</span><span style="color: #000000">/</span><span style="color: #000000">Primary</span><span style="color: #000000">/</span><span style="color: #000000">DetailReport</span><span style="color: #000000">/</span><span style="color: #000000">Details.cpt'&nbsp;</span><span style="color: #000000">&gt;&lt;/</span><span style="color: #000000">iframe</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;</span><span style="color: #000000">&lt;/</span><span style="color: #000000">body</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #000000">&lt;/</span><span style="color: #000000">html</span><span style="color: #000000">&gt;</span></div>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"></span><strong><span style="font-family: 'Microsoft YaHei'; font-size: 14px">效果查看</span></strong></p>
<p style="widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">点击不同的按钮，即可看到其导出的结果：</span></p>
<p style="text-align: center; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; -webkit-text-stroke-width: 0px" align="justify"><span style="font-family: 'Microsoft YaHei'; font-size: 14px">&nbsp;<img style="border-bottom: medium none; border-left: medium none; max-width: 100%; border-top: medium none; border-right: medium none" alt="" src="http://img.blog.csdn.net/20170228095638928" /></span></p><img src ="http://www.blogjava.net/fannie/aggbug/432343.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2017-02-28 10:31 <a href="http://www.blogjava.net/fannie/archive/2017/02/28/432343.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> FineReport中如何用JavaScript自定义地图标签</title><link>http://www.blogjava.net/fannie/archive/2017/02/22/432332.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Wed, 22 Feb 2017 02:18:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2017/02/22/432332.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/432332.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2017/02/22/432332.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/432332.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/432332.html</trackback:ping><description><![CDATA[<p><span style="font-family: 'Times New Roman'; font-size: 14pt;">在日常使用地图过程中，通常会遇到地图标签，提示点等显示不满足我们的需求，需要进行JavaScript代码编写。</span></p><p><span style="font-family: 'Times New Roman'; font-size: 14pt;">例如：在使用地图过程中，会发现很多地名显示的位置偏离。这时候就需要使用JavaScript进行调控。以黑龙江和内蒙古为例，来介绍下如何在FineReport中利用JavaScript自定义地图标签。</span></p><p><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">新建地图</span></strong><strong></strong></p><p><span style="font-family: 'Times New Roman'; font-size: 14pt;">以区域地图为例，新建表单，拖入地图（新特性）组件，地图边界选择区域地图下的中国（省级）：</span></p><p align="center" style="text-align:center;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/1.png" width="254" height="387" alt="" /><br /></p><p><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">数据准备</span></strong><strong></strong></p><p><span style="font-family: 'Times New Roman'; font-size: 14pt;">新建工作簿，添加数据集ds1，SELECT*FROM地图1，选中图表，选择图表属性表-数据，如下图所示：</span></p><p align="center" style="text-align:center;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/2.png" width="254" height="311" alt="" /><br /></p><p><span style="font-family: 'Times New Roman'; font-size: 14pt;">选择图表属性表-样式&gt;系列，如下图设置，边框设为蓝色：</span></p><p align="center" style="text-align:center;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/3.png" width="252" height="421" alt="" /><br /></p><p><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">自定义JS显示标签</span></strong><strong></strong></p><p><span style="font-family: 'Times New Roman'; font-size: 14pt;">选择图表属性表-样式&gt;标签，内容选择自定义，JS如下：</span></p><p align="center" style="text-align:center;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/4.png" width="244" height="316" alt="" /><br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">function</span>(){&nbsp;<span style="color: #0000FF; ">var</span>&nbsp;points&nbsp;=&nbsp;<span style="color: #0000FF; ">this</span>.points;<br /><span style="color: #0000FF; ">var</span>&nbsp;total&nbsp;=&nbsp;'&lt;div&nbsp;style="width:100%;height:100%;"&gt;';<br /><span style="color: #0000FF; ">if</span>(<span style="color: #0000FF; ">this</span>.name=="内蒙古自治区")<br />{total&nbsp;+=&nbsp;'&lt;div&nbsp;align=center&nbsp;style="margin-top:30px"&gt;&lt;span&nbsp;style="font-size:25px;color:'+FR.contentFormat(points[1].value,&nbsp;'')+'"&gt;'&nbsp;+FR.contentFormat(points[2].value,&nbsp;'#0.00')+'&lt;/span&gt;'+<span style="color: #0000FF; ">this</span>.name+'&lt;/div&gt;';}<br /><span style="color: #0000FF; ">else</span>&nbsp;<span style="color: #0000FF; ">if</span>(<span style="color: #0000FF; ">this</span>.name=="黑龙江省")<br />{total&nbsp;+=&nbsp;'&lt;div&nbsp;align=center&nbsp;style="margin-top:100px;"&gt;&lt;span&nbsp;style="font-size:25px;color:'+FR.contentFormat(points[1].value,&nbsp;'')+'"&gt;'+&nbsp;FR.contentFormat(points[2].value,&nbsp;'#0.00')+'&lt;/span&gt;'+<span style="color: #0000FF; ">this</span>.name+'&lt;/div&gt;';}<br /><span style="color: #0000FF; ">else</span>{total&nbsp;+=&nbsp;'&lt;div&nbsp;align=center&nbsp;&gt;&lt;span&nbsp;style="font-size:25px;color:'+FR.contentFormat(points[1].value,&nbsp;'')+'"&gt;'+FR.contentFormat(points[2].value,&nbsp;'#0.00')+'&lt;/span&gt;'+<span style="color: #0000FF; ">this</span>.name+'&lt;/div&gt;';}<br /><span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">var</span>&nbsp;i&nbsp;=&nbsp;0,&nbsp;len&nbsp;=&nbsp;points.length-2;&nbsp;i&nbsp;&lt;&nbsp;len;&nbsp;i++)<br />{total&nbsp;+=&nbsp;('&lt;div&nbsp;&nbsp;align=center&gt;'+FR.contentFormat(points[i].value,&nbsp;'#0.00')+'&lt;/div&gt;');}<br />total+='&lt;/div&gt;';&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;total;}</div><p><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">div align=center style="margin-top</span></strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">当读取名字为内蒙古自治区时候，我们进行margin显示位置的调整，使其不显示偏离</span></p><p><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">FR.contentFormat(value, '#.##%')</span></strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">进</span><span style="font-family: 'Times New Roman'; font-size: 14pt;">行数值格式自定义，后面的'#.##%'可以根据实际需求进行更改；</span></p><p><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">this.points</span></strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">这个参数在地图中使用时表示同一个区域上的不同的系列的点</span></p><p><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">自定义JS显示提示点</span></strong><strong></strong></p><p><span style="font-family: 'Times New Roman'; font-size: 14pt;">选择图表属性表-样式&gt;提示，内容选择自定义，JS如下：</span></p><p align="center" style="text-align:center;"><img src="http://www.blogjava.net/images/blogjava_net/fannie/5.png" width="250" height="329" alt="" /><br /></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">function</span>(){<span style="color: #0000FF; ">var</span>&nbsp;points&nbsp;=&nbsp;<span style="color: #0000FF; ">this</span>.points&nbsp;;<br /><span style="color: #0000FF; ">var</span>&nbsp;total&nbsp;=&nbsp;'&lt;div&nbsp;style="width:100%;<br />background-color:#808080;color:white"&gt;';<br />total&nbsp;+='&lt;div&nbsp;align=left&nbsp;style="font-size:16px"&gt;'+<span style="color: #0000FF; ">this</span>.name+'&lt;/div&gt;';<br /><span style="color: #0000FF; ">for</span>(<span style="color: #0000FF; ">var</span>&nbsp;i&nbsp;=&nbsp;0,&nbsp;len&nbsp;=&nbsp;points.length-1;&nbsp;i&nbsp;&lt;&nbsp;len;&nbsp;i++)<br />{total&nbsp;+='&lt;div&nbsp;align=left&nbsp;style="font-size:13px"&gt;&#9679;'+points[i].seriesName+':'+FR.contentFormat(points[i].value,&nbsp;'')+'&lt;/div&gt;';}<br /><span style="color: #0000FF; ">return</span>&nbsp;total;}</div><p><span style="font-family: 'Times New Roman'; font-size: 14pt;">此处做一个简单的循环，循环展示我们前端设置的参数，并对参数做单独的处理，包括控制字体大小，以及显示格式。</span></p><p><strong><span style="font-family: 'Times New Roman'; font-size: 14pt;">保存与预览</span></strong><strong></strong></p><p><span style="font-family: 'Times New Roman'; font-size: 12pt;">调整后效果如下，标签位置正确，提示采用了自定义格式：</span></p><p><div align="center"><img src="http://www.blogjava.net/images/blogjava_net/fannie/6.png" width="627" height="453" alt="" /></div><br /></p><img src ="http://www.blogjava.net/fannie/aggbug/432332.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2017-02-22 10:18 <a href="http://www.blogjava.net/fannie/archive/2017/02/22/432332.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何在FineReport中解析数据库内XML文件</title><link>http://www.blogjava.net/fannie/archive/2017/02/13/432302.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Mon, 13 Feb 2017 03:09:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2017/02/13/432302.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/432302.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2017/02/13/432302.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/432302.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/432302.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在数据库表中，其中字段XML所存的为xml格式数据在表xmltest中。那么在使用该表进行报表制作时，需要将存于xml字段中的值读取出来作为报表数据源。XML每条记录数据格式如下：&lt;Field&gt;&lt;Name&gt;MemoryFreeSize&lt;/Name&gt;&lt;Type&gt;int&lt;/Type&gt;&lt;Value&gt;1962&lt;/Value&gt...&nbsp;&nbsp;<a href='http://www.blogjava.net/fannie/archive/2017/02/13/432302.html'>阅读全文</a><img src ="http://www.blogjava.net/fannie/aggbug/432302.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2017-02-13 11:09 <a href="http://www.blogjava.net/fannie/archive/2017/02/13/432302.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FineReport和泛微OA(Ecology)的单点登录集成方案</title><link>http://www.blogjava.net/fannie/archive/2017/01/17/432270.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Tue, 17 Jan 2017 08:27:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2017/01/17/432270.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/432270.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2017/01/17/432270.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/432270.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/432270.html</trackback:ping><description><![CDATA[<p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">最近出现了很多关于帆软报表和泛微OA的集成问题，均出现在&#8220;单点登录&#8221;上。直接也有相关的文章介绍一些FineReport和泛微集成的背景、价值等，以及FineReport和OA的深度集成的方案，但是并没有提到单点登录的集成方案，今天就简单介绍下FineReport和OA单点登录集成方式。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><strong>同步用户信息</strong></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">单点登录的基础，就是用户信息的同步，FineReport的决策系统中有一个很强大的功能，可以自动帮助用户实现用户信息同步。具体菜单：决策系统-管理系统-用户管理。点击用户管理菜单后，右侧页面右上角有一个&#8220;设置&#8221;按钮，如下图：</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><img alt="" src="http://dl2.iteye.com/upload/attachment/0122/6623/aec075dd-1fb3-3ab3-9de3-52e192bf9130.png" title="点击查看原始大小图片" width="699" height="398" style="border: 0px; cursor: url(&quot;/images/magplus.gif&quot;), pointer; display: block; margin-left: auto; margin-right: auto;" /><br /></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">点击&#8220;设置&#8221;，则会出现如下图的界面。按照下图中的配置进行对应的配置。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><img alt="" src="http://dl2.iteye.com/upload/attachment/0122/6627/e5231f86-3cc7-3eb3-9d1e-1f75918b0ad6.png" title="点击查看原始大小图片" width="700" height="331" style="border: 0px; cursor: url(&quot;/images/magplus.gif&quot;), pointer; display: block; margin-left: auto; margin-right: auto;" /><br /></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">认证方式：选择平台内置认证。单点登录的集成是通过平台内置认证进行集成的。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">用户同步数据集：选择&#8220;已开启&#8221;</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">服务器数据集：服务器数据集是需要去帆软报表的开发工具上进行配置。如下图：</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><img alt="" src="http://dl2.iteye.com/upload/attachment/0122/6631/1473c30d-4a18-36fb-a4b2-e637ecad6b91.png" title="点击查看原始大小图片" width="700" height="421" style="border: 0px; cursor: url(&quot;/images/magplus.gif&quot;), pointer; display: block; margin-left: auto; margin-right: auto;" /></span><br />&nbsp;<br /><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><img alt="" src="http://dl2.iteye.com/upload/attachment/0122/6633/1ce8fec0-dc96-3f91-8c4e-ff5dc0e7d1f9.png" title="点击查看原始大小图片" width="700" height="466" style="border: 0px; cursor: url(&quot;/images/magplus.gif&quot;), pointer; display: block; margin-left: auto; margin-right: auto;" /></span><br />&nbsp;</p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">进入设计器，点击菜单服务器-服务器数据集，新增一个数据集，选择OA的数据源，写入SQL&#8220;select * from hrmresource&#8221;，保存即可。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">保存后，需要去本地的开发环境上找到对应的xml，复制到决策系统服务器端，才可使用。本地开发环境的xml路径见上图&#8220;保存路径&#8221;后面的对应文件路径。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">通过EditPlus编辑器打开datasource.xml文件后，找到&#8220;OA用户&#8221;这块xml代码。将这块代码复制到服务器上的datasource.xml上，路径和/WebReport/WEB-INF/resourcr/datasource.xml，粘贴格式参见本地的开发环境。如下图：</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><img alt="" src="http://dl2.iteye.com/upload/attachment/0122/6635/9071e6ac-b112-3d2b-a17a-c3e0f29da093.png" style="border: 0px; display: block; margin-left: auto; margin-right: auto;" />&nbsp;<br /></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">注：不要用记事本打开xml，保存可能会损坏xml。更新服务器文件时，做好备份。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">继续配置用户同步</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">用户名：XXX</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">姓名:XXX</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">密码：XXX，注意，OA的密码已经进行了32位大写的MD5加密。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">加密方式：不设置密码加密</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">其他选填。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">点击保存，OK，决策系统已经开始在后台执行了用户同步了。只需要在决策系统中的用户管理上查看同步的用户信息结果即可。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><strong>泛微OA的登录方式和如何编写单点登录</strong></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">了解单点登录之前，先了解下OA的登录方式。泛微OA的登录方式有2种。第一种，是通过页面登录进OA；第二种是，是通过E-Message上的快捷方式进入到OA。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">这样的话，如果实现FineReport和泛微OA集成的单点登录，以上的两种登录方式均瑶实现这个效果。很多用户和泛微的实施团队会在OA的login.jsp上编写单点登录代码。在login.jsp上编写单点登录代码智能解决第一种登录方式&#8220;通过页面登录进OA&#8221;。而通过E-Message上的快捷方式进入到OA是不能实现帆软决策系统的单点登录的。如果要实现两种登录方式的单点登录，可以在泛微OA登录后页面上编写单点登录代码。泛微OA登录后页面的jsp为&#8220;/ecology/wui/theme/ecology7/page/main.jsp&#8221;。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><strong>第一步</strong>，引入js代码：</span></p><div style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; width: 694.516px; margin-left: 9px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word; background-color: #ffffff;"><div style="padding-right: 3px; padding-bottom: 3px; padding-left: 3px; margin: 0px; font-weight: bold;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->&lt;script&nbsp;type="text/javascript"&nbsp;src="http://***.***.***.***:**/WebReport/ReportServer?op=emb&amp;resource=finereport.js"&gt;&lt;/script&gt;&nbsp;&nbsp;</div></div></div><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">&nbsp;<br /></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><img alt="" src="http://dl2.iteye.com/upload/attachment/0122/6637/747b79ce-2145-3538-92d3-2f9cf6006850.png" title="点击查看原始大小图片" width="700" height="237" style="border: 0px; cursor: url(&quot;/images/magplus.gif&quot;), pointer; display: block; margin-left: auto; margin-right: auto;" /><br /></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><strong>第二步</strong>，获取当前用户的登录名和密码的java代码：</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">　　</span><span style="font-size: 13px; font-family: verdana, 'courier new'; background-color: #eeeeee;">String&nbsp;nodeSql&nbsp;</span><span style="font-size: 13px; font-family: verdana, 'courier new'; background-color: #eeeeee;">=</span><span style="font-size: 13px; font-family: verdana, 'courier new'; background-color: #eeeeee;">"</span><span style="font-size: 13px; font-family: verdana, 'courier new'; background-color: #eeeeee;">select&nbsp;loginid,password&nbsp;from&nbsp;HrmResource&nbsp;where&nbsp;id&nbsp;=&nbsp;&nbsp;</span><span style="font-size: 13px; font-family: verdana, 'courier new'; background-color: #eeeeee;">"</span><span style="font-size: 13px; font-family: verdana, 'courier new'; background-color: #eeeeee;">&nbsp;</span><span style="font-size: 13px; font-family: verdana, 'courier new'; background-color: #eeeeee;">+</span><span style="font-size: 13px; font-family: verdana, 'courier new'; background-color: #eeeeee;">&nbsp;user.getUID();&nbsp;</span></p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RecordSet.executeSql(nodeSql);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">if</span>&nbsp;(RecordSet.next()){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;userpasswordstr&nbsp;=&nbsp;RecordSet.getString("password");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loginidstr&nbsp;=&nbsp;RecordSet.getString("loginid");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</div><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">从上面的代码可以很明显的看到，这个和sql和rs的取值字段跟之前配置用户同步信息对应的表和字段是一样的。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><strong>第三步</strong>，编写js代码：</span></p><div style="font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Consolas, 'Courier New', monospace; width: 694.516px; margin-left: 9px; padding-right: 1px; padding-bottom: 1px; padding-left: 1px; word-break: break-all; word-wrap: break-word; background-color: #ffffff;"><div style="padding-right: 3px; padding-bottom: 3px; padding-left: 3px; margin: 0px; font-weight: bold;"><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">var</span>&nbsp;username&nbsp;=FR.cjkEncode("&lt;%=loginidstr%&gt;");&nbsp;&nbsp;<br /><span style="color: #0000FF; ">var</span>&nbsp;password&nbsp;="&lt;%=userpasswordstr%&gt;";<br />password&nbsp;=&nbsp;password.toUpperCase();<span style="color: #008000; ">//</span><span style="color: #008000; ">把密码小写字母转换成大写字母</span><span style="color: #008000; "><br /></span><span style="color: #0000FF; ">var</span>&nbsp;scr&nbsp;=&nbsp;document.createElement("iframe");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />scr.src&nbsp;=&nbsp;"http://***.***.***.***:**/WebReport/ReportServer?op=touchfs&amp;username="+username+"&amp;__redirect__=false&amp;password="+password;&nbsp;</div></div></div><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">这里是采用iframe的跨域单点登录方式，所以在JS中需要创建一个iframe，然后在iframe上设置SRC。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><strong>第四步</strong>，保存main.jsp，备份服务器的main.jsp，更新main.jsp。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><strong>第五步</strong>，重新登录OA，单点登录成功。校验方式，在OA的浏览器上，新建一个页签，输入&#8220;http://***.***.***.***:**/WebReport/ReportServer?op=fs&#8221;，如果出现如下图，且登录名为自己的用户，则表示单点登录成功。但是。。。还没完。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><img alt="" src="http://dl2.iteye.com/upload/attachment/0122/6639/a0066838-825b-3840-bfe8-9f47f8f5042f.png" title="点击查看原始大小图片" width="700" height="274" style="border: 0px; cursor: url(&quot;/images/magplus.gif&quot;), pointer; display: block; margin-left: auto; margin-right: auto;" /><br /></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;"><strong>在泛微OA上配置决策系统入口</strong></span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">完成了上述的配置，但是OA用户通过什么方式进入决策平台呢？提供2个方式供参考。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">第一，用系统管理员配置自定义左侧菜单。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">第二，设置用户元素。</span></p><p style="margin: 0px; padding: 0px; font-family: Helvetica, Tahoma, Arial, sans-serif; background-color: #ffffff;"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 16px;">以上3点完成后，FineReport和OA的集成工作就大功告成了。</span></p><img src ="http://www.blogjava.net/fannie/aggbug/432270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2017-01-17 16:27 <a href="http://www.blogjava.net/fannie/archive/2017/01/17/432270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FineReport中以jws方式调用WebService数据源方案</title><link>http://www.blogjava.net/fannie/archive/2017/01/11/432262.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Wed, 11 Jan 2017 03:39:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2017/01/11/432262.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/432262.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2017/01/11/432262.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/432262.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/432262.html</trackback:ping><description><![CDATA[<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"><span>在使用</span>WebService作为项目的数据源时，希望报表中也是直接调用这个WebService数据源，而不是定义数据连接调用对应的数据库表，这样要怎么实现呢？</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"><span>在程序中访问</span>WebService应用服务，将WebService返回的数据转为程序数据集，然后在设计器中调用。</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"><span>以</span>axis1.4上的WebService为例，介绍其取数方式以及将数据转换为WebService的程序数据集的过程。</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><strong style="font-weight: bold"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px">WebService应用服务</span></strong></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"><span>如在</span>Tomcat下的Axis工程中以jwa方式发布了一个WebService应用服务下TestWS2TDClient.jws，返回一个数组数据，如下：</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px">public class TestWS2TDClient {</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px">public String[][] getTD() {</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px">String[][] a = {{"城市", "销售员", "销售额"},{"江苏", "Anna", "230"},{"江苏", "Alex", "190"},{"江苏","Jack","320"},{"江苏","Apple","210"},{"浙江","Faye","150"},{"浙江","Sammi","280"}};</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px">return a;</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px">}</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px">}</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"><span>以</span>jws方式发布WebService：将写好的TestWS2TDClient.java文件重命名TestWS2TDClient.jws，放在Tomcat\webapps\axis即可。</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><strong style="font-weight: bold"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"><span>在</span>java类中访问WebService数据源</span></strong></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px">Java中发布一个soap请求，访问TestWS2TDClient.java，得到返回的数据，代码如下：</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"><strong style="font-weight: bold"></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img id="Codehighlighter1_4_511_Open_Image" onclick="this.style.display='none'; Codehighlighter1_4_511_Open_Text.style.display='none'; Codehighlighter1_4_511_Closed_Image.style.display='inline'; Codehighlighter1_4_511_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_4_511_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_4_511_Closed_Text.style.display='none'; Codehighlighter1_4_511_Open_Image.style.display='inline'; Codehighlighter1_4_511_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_4_511_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_4_511_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;endpoint&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">http://localhost:8080/axis/TestWS2TDClient.jws</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;Service&nbsp;service&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Service();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">创建一个服务(service)调用(call)</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;Call&nbsp;call&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Call)&nbsp;service.createCall();&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;通过service创建call对象</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;call.setTargetEndpointAddress(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;java.net.URL(endpoint));&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置service所在URL</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;call.setOperationName(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;QName(</span><span style="color: #000000">"</span><span style="color: #000000">http://localhost:8080/axis/TestWS2TDClient.jws</span><span style="color: #000000">"</span><span style="color: #000000">,</span><span style="color: #000000">"</span><span style="color: #000000">getTD</span><span style="color: #000000">"</span><span style="color: #000000">));&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;调用service中的getTD方法</span><span style="color: #008000"><br /><img id="Codehighlighter1_447_448_Open_Image" onclick="this.style.display='none'; Codehighlighter1_447_448_Open_Text.style.display='none'; Codehighlighter1_447_448_Closed_Image.style.display='inline'; Codehighlighter1_447_448_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_447_448_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_447_448_Closed_Text.style.display='none'; Codehighlighter1_447_448_Open_Image.style.display='inline'; Codehighlighter1_447_448_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;String[][]&nbsp;ret&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(String[][])call.invoke(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Object[]&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_447_448_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_447_448_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000">);&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;getTD方法没有参数，因此传一个空的对象，得到service中getTD返回的数据</span><span style="color: #008000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;ret;<br /><img id="Codehighlighter1_533_557_Open_Image" onclick="this.style.display='none'; Codehighlighter1_533_557_Open_Text.style.display='none'; Codehighlighter1_533_557_Closed_Image.style.display='inline'; Codehighlighter1_533_557_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_533_557_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_533_557_Closed_Text.style.display='none'; Codehighlighter1_533_557_Open_Image.style.display='inline'; Codehighlighter1_533_557_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif">}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_533_557_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_533_557_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">Soap</strong>即简单对象访问协议，客户端发送一个请求，调用相应的对象，然后服务器返回结果。这些消息是XML格式的，并且封装成符合HTTP协议的消息。</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"><span>在此期间需要引入</span>axis.jar、commons-discovery-0.2.jar、commons-logging-1.0.4.jar、wadl4j-a.5.a.jar、log4j-1.2.8.jar、jaxrpc.jar六个包，可以在zxis\WEB-INF\lib下找到。</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><strong style="font-weight: bold"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px">将获得数据转为程序数据集</span></strong></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px">访问</span>WebService后，该服务会返回数据给客户端，该例中返回一个字符串数组。定义WebServiceTableData.java类，扩展AbstractTableData，将获得的数组数据转为程序数据集。完整代码如下：</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"><span></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.fr.data;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;javax.xml.namespace.QName;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.axis.client.Call;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;org.apache.axis.client.Service;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.fr.data.AbstractTableData;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.fr.general.data.TableDataException;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img id="Codehighlighter1_275_1320_Open_Image" onclick="this.style.display='none'; Codehighlighter1_275_1320_Open_Text.style.display='none'; Codehighlighter1_275_1320_Closed_Image.style.display='inline'; Codehighlighter1_275_1320_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_275_1320_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_275_1320_Closed_Text.style.display='none'; Codehighlighter1_275_1320_Open_Image.style.display='inline'; Codehighlighter1_275_1320_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;WebServiceTableData&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;AbstractTableData</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_275_1320_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_275_1320_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;String[][]&nbsp;data;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;<br /><img id="Codehighlighter1_335_368_Open_Image" onclick="this.style.display='none'; Codehighlighter1_335_368_Open_Text.style.display='none'; Codehighlighter1_335_368_Closed_Image.style.display='inline'; Codehighlighter1_335_368_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_335_368_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_335_368_Closed_Text.style.display='none'; Codehighlighter1_335_368_Open_Image.style.display='inline'; Codehighlighter1_335_368_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;WebServiceTableData()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_335_368_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_335_368_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.data&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.getData();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">获取列数</span><span style="color: #008000"><br /><img id="Codehighlighter1_434_462_Open_Image" onclick="this.style.display='none'; Codehighlighter1_434_462_Open_Text.style.display='none'; Codehighlighter1_434_462_Closed_Image.style.display='inline'; Codehighlighter1_434_462_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_434_462_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_434_462_Closed_Text.style.display='none'; Codehighlighter1_434_462_Open_Image.style.display='inline'; Codehighlighter1_434_462_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getColumnCount()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;TableDataException&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_434_462_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_434_462_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;data[</span><span style="color: #000000">0</span><span style="color: #000000">].length;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">获取列的名称为数组中第一行的值</span><span style="color: #008000"><br /><img id="Codehighlighter1_556_590_Open_Image" onclick="this.style.display='none'; Codehighlighter1_556_590_Open_Text.style.display='none'; Codehighlighter1_556_590_Closed_Image.style.display='inline'; Codehighlighter1_556_590_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_556_590_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_556_590_Closed_Text.style.display='none'; Codehighlighter1_556_590_Open_Image.style.display='inline'; Codehighlighter1_556_590_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getColumnName(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;columnIndex)&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;TableDataException&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_556_590_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_556_590_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;data[</span><span style="color: #000000">0</span><span style="color: #000000">][columnIndex];<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">获取行数为数据的长度-1</span><span style="color: #008000"><br /><img id="Codehighlighter1_661_690_Open_Image" onclick="this.style.display='none'; Codehighlighter1_661_690_Open_Text.style.display='none'; Codehighlighter1_661_690_Closed_Image.style.display='inline'; Codehighlighter1_661_690_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_661_690_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_661_690_Closed_Text.style.display='none'; Codehighlighter1_661_690_Open_Image.style.display='inline'; Codehighlighter1_661_690_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;getRowCount()&nbsp;</span><span style="color: #0000ff">throws</span><span style="color: #000000">&nbsp;TableDataException&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_661_690_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_661_690_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;data.length&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">获取值</span><span style="color: #008000"><br /><img id="Codehighlighter1_757_802_Open_Image" onclick="this.style.display='none'; Codehighlighter1_757_802_Open_Text.style.display='none'; Codehighlighter1_757_802_Closed_Image.style.display='inline'; Codehighlighter1_757_802_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_757_802_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_757_802_Closed_Text.style.display='none'; Codehighlighter1_757_802_Open_Image.style.display='inline'; Codehighlighter1_757_802_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Object&nbsp;getValueAt(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;rowIndex,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;columnIndex)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_757_802_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_757_802_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;data[rowIndex&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">][columnIndex];<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_834_1318_Open_Image" onclick="this.style.display='none'; Codehighlighter1_834_1318_Open_Text.style.display='none'; Codehighlighter1_834_1318_Closed_Image.style.display='inline'; Codehighlighter1_834_1318_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_834_1318_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_834_1318_Closed_Text.style.display='none'; Codehighlighter1_834_1318_Open_Image.style.display='inline'; Codehighlighter1_834_1318_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String[][]&nbsp;getData()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_834_1318_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_834_1318_Open_Text"><span style="color: #000000">{<br /><img id="Codehighlighter1_842_1237_Open_Image" onclick="this.style.display='none'; Codehighlighter1_842_1237_Open_Text.style.display='none'; Codehighlighter1_842_1237_Closed_Image.style.display='inline'; Codehighlighter1_842_1237_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_842_1237_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_842_1237_Closed_Text.style.display='none'; Codehighlighter1_842_1237_Open_Image.style.display='inline'; Codehighlighter1_842_1237_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000">&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_842_1237_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_842_1237_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;endpoint&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">http://localhost:8080/axis/TestWS2TDClient.jws</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Service&nbsp;service&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Service();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Call&nbsp;call&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(Call)&nbsp;service.createCall();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call.setTargetEndpointAddress(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;java.net.URL(endpoint));<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call.setOperationName(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;QName(</span><span style="color: #000000">"</span><span style="color: #000000">http://localhost:8080/axis/TestWS2TDClient.jws</span><span style="color: #000000">"</span><span style="color: #000000">,<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">getTD</span><span style="color: #000000">"</span><span style="color: #000000">));<br /><img id="Codehighlighter1_1215_1216_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1215_1216_Open_Text.style.display='none'; Codehighlighter1_1215_1216_Closed_Image.style.display='inline'; Codehighlighter1_1215_1216_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1215_1216_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1215_1216_Closed_Text.style.display='none'; Codehighlighter1_1215_1216_Open_Image.style.display='inline'; Codehighlighter1_1215_1216_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[][]&nbsp;ret&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(String[][])call.invoke(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Object[]&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1215_1216_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1215_1216_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;ret;<br /><img id="Codehighlighter1_1259_1287_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1259_1287_Open_Text.style.display='none'; Codehighlighter1_1259_1287_Closed_Image.style.display='inline'; Codehighlighter1_1259_1287_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1259_1287_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1259_1287_Closed_Text.style.display='none'; Codehighlighter1_1259_1287_Open_Image.style.display='inline'; Codehighlighter1_1259_1287_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;e)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1259_1287_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1259_1287_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img id="Codehighlighter1_1313_1314_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1313_1314_Open_Text.style.display='none'; Codehighlighter1_1313_1314_Closed_Image.style.display='inline'; Codehighlighter1_1313_1314_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_1313_1314_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_1313_1314_Closed_Text.style.display='none'; Codehighlighter1_1313_1314_Open_Image.style.display='inline'; Codehighlighter1_1313_1314_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;String[][]&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_1313_1314_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_1313_1314_Open_Text"><span style="color: #000000">{}</span></span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span></div>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">将编译好的</span>class文件拷贝到%FR_HOME%/WebReport/WEB-INF/classes/com/fr/data文件夹下。</span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><strong style="font-weight: bold"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px">设计器中调用程序数据集</span></strong></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/21px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"><span>新建报表，定义数据集，选择程序数据集，选择定义好的程序数据集</span>WebServiceTableData.class，自定义数据集的名称为ds1，启动tomcat服务器，点击预览，效果如下：</span></p>
<p style="text-align: left; padding-bottom: 0pt; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0pt; margin: 3.75pt 0pt; padding-left: 0pt; padding-right: 0pt; font: 14px/18.75pt Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0pt; -webkit-text-stroke-width: 0px" class="MsoNormal"><span style="font-family: 'Microsoft YaHei', 微软雅黑, SimHei, tahoma, arial, helvetica, sans-serif; font-size: 14px"></p>
<p style="text-align: left; padding-bottom: 0pt; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0pt; margin: 3.75pt 0pt; padding-left: 0pt; padding-right: 0pt; font: 14px/18.75pt Helvetica, Tahoma, Arial, sans-serif; white-space: normal; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0pt; -webkit-text-stroke-width: 0px" class="MsoNormal">
<div align="center"><img style="border-bottom: 0px; border-left: 0px; display: block; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" alt="" src="http://dl2.iteye.com/upload/attachment/0122/5232/06016bbb-e64e-33f6-ac50-3728324ec96e.png" /></div></span></p><br class="Apple-interchange-newline" /><img src ="http://www.blogjava.net/fannie/aggbug/432262.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2017-01-11 11:39 <a href="http://www.blogjava.net/fannie/archive/2017/01/11/432262.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 上传文件至数据库并下载</title><link>http://www.blogjava.net/fannie/archive/2017/01/05/432242.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Thu, 05 Jan 2017 02:18:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2017/01/05/432242.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/432242.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2017/01/05/432242.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/432242.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/432242.html</trackback:ping><description><![CDATA[<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">在FineReport中，会出现希望直接将txt、excel等文件整个保存在数据库中进行备份，并且希望通过FineReport制作报表将这些文件下载下来的情况。</p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">上传：使用文件控件上传文件，以二进制流保存至数据库字段中（字段类型必须是用于保存二进制数据的）；</p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">下载：直接将二进制数据拖入单元格，设置单元格的其他属性&gt;用下载链接显示二进制内容，就可以下载文件。</p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">下面通过上传一个txt文件至sql server数据库中并下载为例来说明实现过程。Sqlite数据库仅支持上传，不支持下载的。</p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><strong style="font-weight: bold">前提准备</strong></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">准备一个txt文件，数据库中创建一张数据库表file，包含字段(filename[文本]、file[Blob对象])</p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">数据库不同可以保存文件的字段类型是不同的，以下列出常用数据库保存二进制数据的字段类型：</p>
<p style="text-align: center; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">&nbsp;<img style="border-bottom: 0px; border-left: 0px; max-width: 100%; border-top: 0px; border-right: 0px" alt="" src="http://img.blog.csdn.net/20170105093603674" /></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><strong style="font-weight: bold">上传文件至数据库</strong></p>
<ul style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px 0px 1.5em; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><li style="padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="font-weight: bold">模板制作</strong></li></ul>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">前提准备好后，就可以制作一张填报模板，上传文件到数据库，文件以二进制数据流保存在数据库字段中，模板设计界面如下，并按照图上说明设置报表填报属性：</p>
<p style="text-align: center; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">&nbsp;<img style="border-bottom: 0px; border-left: 0px; max-width: 100%; border-top: 0px; border-right: 0px" alt="" src="http://img.blog.csdn.net/20170105093613496" /></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">如果是单文件上传，则可严格控制，勾选只支持单文件上传，还可以设置允许上传的文件类型；如果是多文件上传，就不需要勾选只支持单文件上传这个勾选项了。</p>
<ul style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px 0px 1.5em; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><li style="padding-bottom: 0px; margin: 0px 0px 0.25em 30px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="font-weight: bold">上传提交</strong></li></ul>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">保存模板，进行填报预览，上传文件并提交，文件就会以二进制数据保存到数据库中：</p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">鼠标移至文件控件所在单元格，即B2，单击右上角的编辑按钮，进入编辑状态，点击上传按钮即可上传文件，如下图：</p>
<p style="text-align: center; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">&nbsp;<img style="border-bottom: 0px; border-left: 0px; max-width: 100%; border-top: 0px; border-right: 0px" alt="" src="http://img.blog.csdn.net/20170105093628378" /></p>
<p style="text-align: center; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><img style="border-bottom: 0px; border-left: 0px; max-width: 100%; border-top: 0px; border-right: 0px" alt="" src="http://img.blog.csdn.net/20170105093636315" /></p>
<p style="text-align: center; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><img style="border-bottom: 0px; border-left: 0px; max-width: 100%; border-top: 0px; border-right: 0px" alt="" src="http://img.blog.csdn.net/20170105093644184" /></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">提交成功之后，在数据库中可以看到数据。</p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><strong style="font-weight: bold">下载</strong></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">重新打开模板，添加数据库查询ds1，SQL语句为select *from file，将保存的数据查询出来；将字段拖入到单元格中，并设置文件字段所在单元格的其他属性&gt;用下载链接显示二进制内容，并设置下载后的文件名：</p>
<p style="text-align: center; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">&nbsp;<img style="border-bottom: 0px; border-left: 0px; max-width: 100%; border-top: 0px; cursor: url(http://www.iteye.com/images/magplus.gif), pointer; border-right: 0px" class="magplus" title="点击查看原始大小图片" alt="" src="http://img.blog.csdn.net/20170105093656816" width="700" height="231" /></p>
<p style="text-align: left; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px">再次保存模板，填报预览，就可以点击下载了：</p>
<p style="text-align: center; padding-bottom: 0px; widows: 1; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/26px Arial; white-space: normal; letter-spacing: normal; color: rgb(54,46,43); word-spacing: 0px; padding-top: 0px; -webkit-text-stroke-width: 0px"><img style="border-bottom: 0px; border-left: 0px; max-width: 100%; border-top: 0px; border-right: 0px" alt="" src="http://img.blog.csdn.net/20170105093704638" /></p><img src ="http://www.blogjava.net/fannie/aggbug/432242.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2017-01-05 10:18 <a href="http://www.blogjava.net/fannie/archive/2017/01/05/432242.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>FineReport:任意时刻只允许在一个客户端登陆账号的插件</title><link>http://www.blogjava.net/fannie/archive/2016/12/20/432141.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Tue, 20 Dec 2016 06:31:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2016/12/20/432141.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/432141.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2016/12/20/432141.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/432141.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/432141.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在使用FineReport报表系统中，处于账户安全考虑，有些企业希望同一账号在任意时刻智能在统一客户端登录。那么当A用户在C1客户端登陆后，该账号又在另外一个C2客户端登陆，服务器如何取判断呢？开发原理当服务器在得知A在C1登陆后，在cookie里面写入一个标识ID~将浏览器标记，然后以后的访问自然就能够根据匹配用户名和对应的标记来确定这个用户是不是在换浏览器登陆了，当匹配到用户异地登陆，...&nbsp;&nbsp;<a href='http://www.blogjava.net/fannie/archive/2016/12/20/432141.html'>阅读全文</a><img src ="http://www.blogjava.net/fannie/aggbug/432141.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2016-12-20 14:31 <a href="http://www.blogjava.net/fannie/archive/2016/12/20/432141.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何开发FineReport的自定义控件？</title><link>http://www.blogjava.net/fannie/archive/2016/12/15/432122.html</link><dc:creator>FineReport——报表技术领跑者</dc:creator><author>FineReport——报表技术领跑者</author><pubDate>Thu, 15 Dec 2016 07:35:00 GMT</pubDate><guid>http://www.blogjava.net/fannie/archive/2016/12/15/432122.html</guid><wfw:comment>http://www.blogjava.net/fannie/comments/432122.html</wfw:comment><comments>http://www.blogjava.net/fannie/archive/2016/12/15/432122.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fannie/comments/commentRss/432122.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fannie/services/trackbacks/432122.html</trackback:ping><description><![CDATA[<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri">Fine</span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt">Report<font face="宋体">作为插件化开发的报表软件</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">，</font></span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><font face="宋体">有些特殊需求的功能需要自己开发</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">，</font></span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><font face="宋体">开发的插件包帆软官方有提提供</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">，</font></span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><font face="宋体">可以去帆软论坛上找</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">，</font></span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><font face="宋体">本文将主要介绍如何开发一个自定义控件</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">，</font></span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><font face="宋体">这里讲讲方法论</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">。</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><strong><span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">第一步：实例化一个注册控件的接口</font></span></strong><strong><span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></span></strong></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">给四个信息</font> <font face="宋体">我们的控件类，界面类，图标路径，控件类型名字</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.hg.free.plugin.customcombo.param;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.fr.design.designer.creator.XComboBox;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.fr.design.fun.impl.AbstractParameterWidgetOptionProvider;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.fr.form.ui.Widget;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img id="Codehighlighter1_278_797_Open_Image" onclick="this.style.display='none'; Codehighlighter1_278_797_Open_Text.style.display='none'; Codehighlighter1_278_797_Closed_Image.style.display='inline'; Codehighlighter1_278_797_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_278_797_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_278_797_Closed_Text.style.display='none'; Codehighlighter1_278_797_Open_Image.style.display='inline'; Codehighlighter1_278_797_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;WidgetRegister&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;AbstractParameterWidgetOptionProvider&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_278_797_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_278_797_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_359_416_Open_Image" onclick="this.style.display='none'; Codehighlighter1_359_416_Open_Text.style.display='none'; Codehighlighter1_359_416_Closed_Image.style.display='inline'; Codehighlighter1_359_416_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_359_416_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_359_416_Closed_Text.style.display='none'; Codehighlighter1_359_416_Open_Image.style.display='inline'; Codehighlighter1_359_416_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Class</span><span style="color: #000000">&lt;?</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;Widget</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;classForWidget()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_359_416_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_359_416_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;CustomComboBox.</span><span style="color: #0000ff">class</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_494_546_Open_Image" onclick="this.style.display='none'; Codehighlighter1_494_546_Open_Text.style.display='none'; Codehighlighter1_494_546_Closed_Image.style.display='inline'; Codehighlighter1_494_546_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_494_546_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_494_546_Closed_Text.style.display='none'; Codehighlighter1_494_546_Open_Image.style.display='inline'; Codehighlighter1_494_546_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;Class</span><span style="color: #000000">&lt;?&gt;</span><span style="color: #000000">&nbsp;appearanceForWidget()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_494_546_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_494_546_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;XComboBox.</span><span style="color: #0000ff">class</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_613_683_Open_Image" onclick="this.style.display='none'; Codehighlighter1_613_683_Open_Text.style.display='none'; Codehighlighter1_613_683_Closed_Image.style.display='inline'; Codehighlighter1_613_683_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_613_683_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_613_683_Closed_Text.style.display='none'; Codehighlighter1_613_683_Open_Image.style.display='inline'; Codehighlighter1_613_683_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;iconPathForWidget()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_613_683_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_613_683_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">/com/fr/web/images/combobox.png</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_746_791_Open_Image" onclick="this.style.display='none'; Codehighlighter1_746_791_Open_Text.style.display='none'; Codehighlighter1_746_791_Closed_Image.style.display='inline'; Codehighlighter1_746_791_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_746_791_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_746_791_Closed_Text.style.display='none'; Codehighlighter1_746_791_Open_Image.style.display='inline'; Codehighlighter1_746_791_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;nameForWidget()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_746_791_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_746_791_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">自定义下拉框</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
<p style="margin: 0pt" class="MsoNormal"><br /></font></span><strong><span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">第二步，重写控件类</font></span></strong><strong><span style="font-family: Calibri; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></strong></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.hg.free.plugin.customcombo.param;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.fr.form.ui.ComboBox;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.fr.ui.DataFilter;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img id="Codehighlighter1_161_481_Open_Image" onclick="this.style.display='none'; Codehighlighter1_161_481_Open_Text.style.display='none'; Codehighlighter1_161_481_Closed_Image.style.display='inline'; Codehighlighter1_161_481_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_161_481_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_161_481_Closed_Text.style.display='none'; Codehighlighter1_161_481_Open_Image.style.display='inline'; Codehighlighter1_161_481_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;CustomComboBox&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;ComboBox&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_161_481_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_161_481_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">final</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;serialVersionUID&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">7169771062153345236L</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_305_343_Open_Image" onclick="this.style.display='none'; Codehighlighter1_305_343_Open_Text.style.display='none'; Codehighlighter1_305_343_Closed_Image.style.display='inline'; Codehighlighter1_305_343_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_305_343_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_305_343_Closed_Text.style.display='none'; Codehighlighter1_305_343_Open_Image.style.display='inline'; Codehighlighter1_305_343_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;String&nbsp;getXType()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_305_343_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_305_343_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">customcombo</span><span style="color: #000000">"</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_423_478_Open_Image" onclick="this.style.display='none'; Codehighlighter1_423_478_Open_Text.style.display='none'; Codehighlighter1_423_478_Closed_Image.style.display='inline'; Codehighlighter1_423_478_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_423_478_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_423_478_Closed_Text.style.display='none'; Codehighlighter1_423_478_Open_Image.style.display='inline'; Codehighlighter1_423_478_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">protected</span><span style="color: #000000">&nbsp;DataFilter&nbsp;createDataFilter()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_423_478_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_423_478_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;CustomComboBoxDataFilter();<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
<p style="margin: 0pt" class="MsoNormal">&nbsp;</o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">因为要改变过滤方式，就要重写一个过滤器</font></span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">package</span><span style="color: #000000">&nbsp;com.hg.free.plugin.customcombo.param;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">import</span><span style="color: #000000">&nbsp;com.fr.form.ui.ComboBoxDataFilter;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" />&nbsp;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img id="Codehighlighter1_161_423_Open_Image" onclick="this.style.display='none'; Codehighlighter1_161_423_Open_Text.style.display='none'; Codehighlighter1_161_423_Closed_Image.style.display='inline'; Codehighlighter1_161_423_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_161_423_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_161_423_Closed_Text.style.display='none'; Codehighlighter1_161_423_Open_Image.style.display='inline'; Codehighlighter1_161_423_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif"></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;CustomComboBoxDataFilter&nbsp;</span><span style="color: #0000ff">extends</span><span style="color: #000000">&nbsp;ComboBoxDataFilter&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_161_423_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_161_423_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_241_420_Open_Image" onclick="this.style.display='none'; Codehighlighter1_241_420_Open_Text.style.display='none'; Codehighlighter1_241_420_Closed_Image.style.display='inline'; Codehighlighter1_241_420_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_241_420_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_241_420_Closed_Text.style.display='none'; Codehighlighter1_241_420_Open_Image.style.display='inline'; Codehighlighter1_241_420_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">boolean</span><span style="color: #000000">&nbsp;isMatch(String&nbsp;txt,&nbsp;String&nbsp;filter)&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_241_420_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_241_420_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #0000ff">null</span><span style="color: #000000">==</span><span style="color: #000000">txt&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">!=</span><span style="color: #000000">filter)</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #0000ff">null</span><span style="color: #000000">==</span><span style="color: #000000">txt&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">==</span><span style="color: #000000">filter)</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;txt.indexOf(filter)</span><span style="color: #000000">!=-</span><span style="color: #000000">1</span><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
<p style="margin: 0pt" class="MsoNormal">&nbsp;</o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><strong><span style="font-family: Calibri; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><font face="宋体">第三步</font></span></strong><strong><span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">，继承前端控件</font>JS</span></strong><strong><span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></span></strong></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">;<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img id="Codehighlighter1_15_305_Open_Image" onclick="this.style.display='none'; Codehighlighter1_15_305_Open_Text.style.display='none'; Codehighlighter1_15_305_Closed_Image.style.display='inline'; Codehighlighter1_15_305_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_15_305_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_15_305_Closed_Text.style.display='none'; Codehighlighter1_15_305_Open_Image.style.display='inline'; Codehighlighter1_15_305_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif">(function($)</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_15_305_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_15_305_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_81_239_Open_Image" onclick="this.style.display='none'; Codehighlighter1_81_239_Open_Text.style.display='none'; Codehighlighter1_81_239_Closed_Image.style.display='inline'; Codehighlighter1_81_239_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_81_239_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_81_239_Closed_Text.style.display='none'; Codehighlighter1_81_239_Open_Image.style.display='inline'; Codehighlighter1_81_239_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FR.CustomComboBoxEditor&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;FR.extend(FR.ComboBoxEditor,&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_81_239_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_81_239_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img id="Codehighlighter1_119_228_Open_Image" onclick="this.style.display='none'; Codehighlighter1_119_228_Open_Text.style.display='none'; Codehighlighter1_119_228_Closed_Image.style.display='inline'; Codehighlighter1_119_228_Closed_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="display: none" id="Codehighlighter1_119_228_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_119_228_Closed_Text.style.display='none'; Codehighlighter1_119_228_Open_Image.style.display='inline'; Codehighlighter1_119_228_Open_Text.style.display='inline';" align="top" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_init:&nbsp;function&nbsp;()&nbsp;</span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_119_228_Closed_Text"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_119_228_Open_Text"><span style="color: #000000">{<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FR.CustomComboBoxEditor.superclass._init.apply(</span><span style="color: #0000ff">this</span><span style="color: #000000">,&nbsp;arguments);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000">);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$.shortcut(</span><span style="color: #000000">"</span><span style="color: #000000">customcombo</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;FR.CustomComboBoxEditor);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif"  alt="" />}</span></span><span style="color: #000000">)(jQuery);<br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.blogjava.net/images/OutliningIndicators/None.gif"  alt="" /></span></div>
<p style="margin: 0pt" class="MsoNormal">&nbsp;</o:p></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">好了</font>~<font face="宋体">以上就是全部的代码开发</font><font face="Calibri">~</font><font face="宋体">然后写个</font><font face="Calibri">xml</font><font face="宋体">用</font><font face="Calibri">ant</font><font face="宋体">打包成插件就可以了。</font></span><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: Calibri; font-size: 10.5pt; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p>&nbsp;</o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><strong><span style="font-family: Calibri; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><font face="宋体">代码解释</font></span></strong><strong><span style="font-family: 宋体; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">：</font></span></strong><strong><span style="font-family: Calibri; font-size: 10.5pt; font-weight: bold; mso-spacerun: 'yes'; mso-fareast-font-family: 宋体; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt"><o:p></o:p></span></strong></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">首先来看这段代码是什么意思呢？</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">就是我定义了一个控件类型为</font>CustomComboBoxEditor<font face="宋体">的控件，他继承了</font><font face="Calibri">ComboBoxEditor</font><font face="宋体">的全部方法和属性，并且我把新定义的控件类型的标记声明为</font><font face="Calibri">customcombo</font><font face="宋体">，这个标记有啥用勒，其他用途就不说了，单单说在这里的用途，就是</font><font face="Calibri">JAVA </font><font face="宋体">本身是不能让前端取生成什么控件的</font><font face="Calibri">~</font><font face="宋体">而是通过告诉前端一个配置，前端的</font><font face="Calibri">JS</font><font face="宋体">引擎（姑且这么称呼他吧）</font><font face="Calibri">~</font><font face="宋体">根据这个配置去执行对应的脚本生成对应的</font><font face="Calibri">dom</font><font face="宋体">样式之类的</font><font face="Calibri">~shortcut</font><font face="宋体">你就这么理解</font><font face="Calibri">~</font><font face="宋体">后台返回一个配置是要生成</font><font face="Calibri">customcombo</font><font face="宋体">这个控件</font><font face="Calibri">~</font><font face="宋体">那么它就像一个</font><font face="Calibri">map</font><font face="宋体">一样找到了对应的键值</font><font face="Calibri">FR.CustomComboBoxEditor~</font><font face="宋体">然后把该控件的配置丢到这个方法里面去执行。就生成我们的控件了。</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">因为这个例子中并没有对前端有任何修改的要求</font>~<font face="宋体">所以就没做任何改动</font><font face="Calibri">~</font><font face="宋体">下面看后台。</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">我们这个例子是要修改模糊匹配的方式。</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">那么原来控件匹配的机制是怎么搞的，是这样的：假设我是一个老板（妈蛋也只能假设一下了），现在我想了解一份纸质合同的细节，但是公司有一大坨纸质合同我怎么找呢</font>~<font face="宋体">当然是请个秘书了（美女最好），我告诉她我要的合同大概是有些什么信息</font><font face="Calibri">~</font><font face="宋体">然后她去找出来把最后找到的合同给我就可以了。</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></span></p>
<p style="margin: 0pt" class="MsoNormal"><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><font face="宋体">我们这里控件</font>ComboBox<font face="宋体">就是老板，</font><font face="Calibri">ComboBoxDataFilter</font><font face="宋体">就是秘书，就是这么个意思，这里每个秘书肯定都有自己找合同的一套方法，以前那个秘书是只要有点相关的就都找出来了，新来的这个秘书是只找老板提示的信息匹配到的合同</font><font face="Calibri">~</font><font face="宋体">查找匹配的方法就是</font><font face="Calibri">isMatch</font><font face="宋体">，这个代码就是这样的，代码的开发其实只要仔细分析就能够映射到现实生活中的很多事务处理上面</font><font face="Calibri">~</font><font face="宋体">因为代码也是人设计的，逻辑总逃脱不了人处理事务的思维。</font></span><span style="font-family: 宋体; font-size: 10.5pt; mso-spacerun: 'yes'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0000pt; mso-ascii-font-family: Calibri; mso-hansi-font-family: Calibri"><o:p></o:p></span></p><!--EndFragment--><img src ="http://www.blogjava.net/fannie/aggbug/432122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fannie/" target="_blank">FineReport——报表技术领跑者</a> 2016-12-15 15:35 <a href="http://www.blogjava.net/fannie/archive/2016/12/15/432122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>