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. 选择控件界面

-设置控件的地址和参数入口:
-
+2. 设置控件的地址和参数入口

-设置控件的模板地址界面:
-
+3. 设置控件的模板地址界面

-设置控件的网络地址界面:
-
+4. 设置控件的网络地址界面

-预览效果:
-
-
-
-## 支持的API
-```setValue:(String)v``` 设置并刷新网页框控件的地址(保留原参数)
-
-```getValue()``` 获取网页框控件的src地址
-
-```reset()``` 重置网页框控件并刷新
-
+5. 预览效果
+
\ 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