diff --git a/plugin.xml b/plugin.xml index b54bb54..72acc1e 100644 --- a/plugin.xml +++ b/plugin.xml @@ -2,20 +2,21 @@ com.fr.solution.plugin.form.widget.rh.iframe yes - 5.2 + 6.0 8.0 2016-06-30 solution [2015-12-03]修复再次打开地址设置界面时没有正确选择到选项的问题

-

[2016-01-13]增加常用的API接口

-

[2016-01-15]实现功能改进数据统计接口

-

[2016-03-28]在填报中也可以使用

-

[2016-04-19]修复这个插件单独从tomcat启动时无法使用的问题

-

[2016-06-30]增加插件可以联动的功能

-

[2016-07-29]修复不设置网页框地址时会导致整个表单无法展示的BUG

-

[2016-07-29]网页地址不加http的时候自动加上

+ [2017-03-17]修复公式无法正确解析的问题。
+ [2016-07-29]网页地址不加http的时候自动加上。
+ [2016-07-29]修复不设置网页框地址时会导致整个表单无法展示的BUG。
+ [2016-06-30]增加插件可以联动的功能。
+ [2016-04-19]修复这个插件单独从tomcat启动时无法使用的问题。
+ [2016-03-28]在填报中也可以使用。
+ [2016-01-15]实现功能改进数据统计接口。
+ [2016-01-13]增加常用的API接口。
+ [2015-12-03]修复再次打开地址设置界面时没有正确选择到选项的问题。
]]>
diff --git a/readme.md b/readme.md index 73664f6..5927b28 100644 --- a/readme.md +++ b/readme.md @@ -1,55 +1,30 @@ # 表单网页框控件 -## 插件编译 -将帆软报表安装目录下的相关jar包: -$installDir/fr-designer-core-8.0.jar +该插件支持在FineReport V8.0的表单中使用网页框控件 -$installDir/fr-designer-chart-8.0.jar +## API接口 -$installDir/fr-designer-report-8.0.jar +1. setValue:(String)v +设置并刷新网页框控件的地址(保留原参数) +2. getValue +获取网页框控件的src地址 +3. reset +重置网页框控件并刷新 + -$installDir/WebReport/WEB-INF/lib/fr-core-8.0.jar - -$installDir/WebReport/WEB-INF/lib/fr-chart-8.0.jar - -$installDir/WebReport/WEB-INF/lib/fr-report-8.0.jar - -$installDir/WebReport/WEB-INF/lib/fr-platform-8.0.jar - -$installDir/WebReport/WEB-INF/lib/fr-third-8.0.jar - -拷贝到项目工程的lib/report目录下(如果没有该目录则自行新建) - -然后执行ant命名来编辑插件包: -`ant -f build.xml jar` - -## 插件安装 -使用帆软设计器自带的插件管理器即可安装。 -## 插件使用 -选择控件界面,从这个界面中选择网页框并拖动到表单中: +## 效果图 +1. 选择控件界面 ![1](screenshots/1.png) -设置控件的地址和参数入口: - +2. 设置控件的地址和参数入口 ![2](screenshots/2.png) -设置控件的模板地址界面: - +3. 设置控件的模板地址界面 ![3](screenshots/3.png) -设置控件的网络地址界面: - +4. 设置控件的网络地址界面 ![4](screenshots/4.png) -预览效果: - -![5](screenshots/5.png) - -## 支持的API -```setValue:(String)v``` 设置并刷新网页框控件的地址(保留原参数) - -```getValue()``` 获取网页框控件的src地址 - -```reset()``` 重置网页框控件并刷新 - +5. 预览效果 +![5](screenshots/5.png) \ No newline at end of file diff --git a/src/com/fr/plugin/form/widget/core/URLSource.java b/src/com/fr/plugin/form/widget/core/URLSource.java index 9885e32..e073b29 100644 --- a/src/com/fr/plugin/form/widget/core/URLSource.java +++ b/src/com/fr/plugin/form/widget/core/URLSource.java @@ -1,10 +1,15 @@ package com.fr.plugin.form.widget.core; +import com.fr.base.Formula; import com.fr.base.Parameter; import com.fr.base.ParameterHelper; import com.fr.base.TemplateUtils; +import com.fr.general.FRLogger; +import com.fr.general.GeneralUtils; import com.fr.general.Inter; import com.fr.script.Calculator; +import com.fr.stable.StableUtils; +import com.fr.stable.UtilEvalError; import com.fr.stable.script.CalculatorProvider; import com.fr.stable.xml.XMLPrintWriter; import com.fr.stable.xml.XMLableReader; @@ -38,15 +43,25 @@ public class URLSource extends RHIframeSource { @Override public String getCalculatedUrl(Calculator calculator, HttpServletRequest req) { - try { - String result = TemplateUtils.render(url, calculator); - if (result != null && !result.toLowerCase().startsWith("http")) { - result = "http://" + result; + String result = null; + if (StableUtils.canBeFormula(url)) { + try { + result = GeneralUtils.objectToString(calculator.eval(new Formula(url))); + } catch (UtilEvalError u) { + FRLogger.getLogger().error(u.getMessage(), u); } - return result; - } catch (Exception e) { - return null; + } else { + try { + result = TemplateUtils.render(url, calculator); + } catch (Exception e) { + FRLogger.getLogger().error(e.getMessage(), e); + } + } + + if (result != null && !result.toLowerCase().startsWith("http")) { + result = "http://" + result; } + return result; } @Override