diff --git a/install/fr-plugin-rh.iframe-7.1.zip b/install/fr-plugin-rh.iframe-7.1.zip
deleted file mode 100644
index 4df5182..0000000
Binary files a/install/fr-plugin-rh.iframe-7.1.zip and /dev/null differ
diff --git a/install/fr-plugin-rh.iframe-7.2.zip b/install/fr-plugin-rh.iframe-7.2.zip
new file mode 100644
index 0000000..0e488e7
Binary files /dev/null and b/install/fr-plugin-rh.iframe-7.2.zip differ
diff --git a/plugin-iframe.iml b/plugin-iframe.iml
deleted file mode 100644
index a1ba8eb..0000000
--- a/plugin-iframe.iml
+++ /dev/null
@@ -1,52 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/plugin.xml b/plugin.xml
index 260eb61..0798d14 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -2,12 +2,13 @@
com.fr.solution.plugin.form.widget.rh.iframe.v10
yes
- 7.1
+ 7.2
10.0
2018-08-30
richie
[2018-10-07]适配10.0和国际化问题。
[2018-06-15]修复决策报表无法正确传递参数给网页框中的报表的问题。
[2018-06-15]增加网页框设计器模板的显示信息。
diff --git a/src/main/java/com/fr/plugin/form/widget/core/TemplateSource.java b/src/main/java/com/fr/plugin/form/widget/core/TemplateSource.java
index 1cf69b1..367e169 100644
--- a/src/main/java/com/fr/plugin/form/widget/core/TemplateSource.java
+++ b/src/main/java/com/fr/plugin/form/widget/core/TemplateSource.java
@@ -6,25 +6,23 @@ import com.fr.base.ParameterHelper;
import com.fr.base.TemplateUtils;
import com.fr.data.NetworkHelper;
import com.fr.general.FArray;
-import com.fr.general.GeneralUtils;
-import com.fr.general.Inter;
import com.fr.json.JSONArray;
import com.fr.json.JSONException;
import com.fr.json.JSONObject;
-import com.fr.json.JSONUtils;
import com.fr.script.Calculator;
import com.fr.stable.CodeUtils;
import com.fr.stable.ParameterProvider;
import com.fr.stable.ProductConstants;
-import com.fr.stable.ProductConstantsBase;
-import com.fr.stable.StableUtils;
import com.fr.stable.UtilEvalError;
import com.fr.stable.js.WidgetName;
import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.xml.XMLPrintWriter;
import com.fr.stable.xml.XMLableReader;
+import com.fr.third.org.apache.http.NameValuePair;
+import com.fr.third.org.apache.http.client.utils.URLEncodedUtils;
import javax.servlet.http.HttpServletRequest;
+import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -57,17 +55,27 @@ public class TemplateSource extends RHIframeSource {
public String getCalculatedUrl(Calculator calculator, HttpServletRequest req) {
try {
String realPath = TemplateUtils.render(path, calculator);
+ List pairs = URLEncodedUtils.parse("__emb__=" + realPath, Charset.forName("utf-8"));
+ List extraPairs = new ArrayList();
+ for (NameValuePair pair : pairs) {
+ if (pair.getName().equals("__emb__")) {
+ realPath = pair.getValue();
+ } else {
+ extraPairs.add(pair);
+ }
+ }
+
if (realPath.contains(".cpt")) {
if (isNewerThan9()) {
- return NetworkHelper.createServletURL(req) + "/view/report?viewlet=" + CodeUtils.encodeURIComponent(realPath);
+ return NetworkHelper.createServletURL(req) + "/view/report?viewlet=" + CodeUtils.encodeURIComponent(realPath) + createQueryString(extraPairs);
} else {
- return NetworkHelper.createServletURL(req) + "?reportlet=" + CodeUtils.encodeURIComponent(realPath);
+ return NetworkHelper.createServletURL(req) + "?reportlet=" + CodeUtils.encodeURIComponent(realPath) + createQueryString(extraPairs);
}
} else if (realPath.contains(".frm")) {
if (isNewerThan9()) {
- return NetworkHelper.createServletURL(req) + "/view/form?viewlet=" + CodeUtils.encodeURIComponent(realPath);
+ return NetworkHelper.createServletURL(req) + "/view/form?viewlet=" + CodeUtils.encodeURIComponent(realPath) + createQueryString(extraPairs);
}
- return NetworkHelper.createServletURL(req) + "?formlet=" + CodeUtils.encodeURIComponent(realPath);
+ return NetworkHelper.createServletURL(req) + "?formlet=" + CodeUtils.encodeURIComponent(realPath) + createQueryString(extraPairs);
}
} catch (Exception e) {
return null;
@@ -79,6 +87,18 @@ public class TemplateSource extends RHIframeSource {
return Integer.parseInt(ProductConstants.MAIN_VERSION) > 9;
}
+ private String createQueryString(List pairs) {
+ StringBuilder sb = new StringBuilder();
+ for (int i = 0, len = pairs.size(); i < len; i ++) {
+ NameValuePair pair = pairs.get(i);
+ sb.append("&");
+ sb.append(CodeUtils.encodeURIComponent(pair.getName()));
+ sb.append("=");
+ sb.append(CodeUtils.encodeURIComponent(pair.getValue()));
+ }
+ return sb.toString();
+ }
+
@Override
public String[] dependence(CalculatorProvider ca) {
Parameter[] parameters = ParameterHelper.analyze4Parameters(path, false);