|
|
@ -1,8 +1,8 @@ |
|
|
|
package com.fr.plugin.form.widget.core; |
|
|
|
package com.fr.plugin.form.widget.core; |
|
|
|
|
|
|
|
|
|
|
|
import com.fr.base.Formula; |
|
|
|
import com.fanruan.api.Formula.BaseFormula; |
|
|
|
import com.fr.base.Parameter; |
|
|
|
import com.fr.stable.ParameterProvider; |
|
|
|
import com.fr.base.ParameterHelper; |
|
|
|
import com.fanruan.api.cal.ParameterKit; |
|
|
|
import com.fanruan.api.util.RenderKit; |
|
|
|
import com.fanruan.api.util.RenderKit; |
|
|
|
import com.fr.general.FArray; |
|
|
|
import com.fr.general.FArray; |
|
|
|
import com.fanruan.api.log.LogKit; |
|
|
|
import com.fanruan.api.log.LogKit; |
|
|
@ -11,10 +11,9 @@ import com.fanruan.api.err.JSONException; |
|
|
|
import com.fr.json.JSONObject; |
|
|
|
import com.fr.json.JSONObject; |
|
|
|
import com.fr.script.Calculator; |
|
|
|
import com.fr.script.Calculator; |
|
|
|
import com.fanruan.api.util.CodeKit; |
|
|
|
import com.fanruan.api.util.CodeKit; |
|
|
|
import com.fr.stable.ParameterProvider; |
|
|
|
|
|
|
|
import com.fanruan.api.cal.FormulaKit; |
|
|
|
import com.fanruan.api.cal.FormulaKit; |
|
|
|
import com.fanruan.api.err.UtilEvalError; |
|
|
|
import com.fanruan.api.err.UtilEvalError; |
|
|
|
import com.fr.stable.js.WidgetName; |
|
|
|
import com.fanruan.api.report.form.WidgetName; |
|
|
|
import com.fr.stable.script.CalculatorProvider; |
|
|
|
import com.fr.stable.script.CalculatorProvider; |
|
|
|
import com.fr.stable.xml.XMLPrintWriter; |
|
|
|
import com.fr.stable.xml.XMLPrintWriter; |
|
|
|
import com.fr.stable.xml.XMLableReader; |
|
|
|
import com.fr.stable.xml.XMLableReader; |
|
|
@ -52,7 +51,12 @@ public class URLSource extends RHIframeSource { |
|
|
|
String result = null; |
|
|
|
String result = null; |
|
|
|
if (FormulaKit.checkFormulaContent(url)) { |
|
|
|
if (FormulaKit.checkFormulaContent(url)) { |
|
|
|
try { |
|
|
|
try { |
|
|
|
result = GeneralKit.objectToString(calculator.evalValue(new Formula(url))); |
|
|
|
result = GeneralKit.objectToString(calculator.evalValue(new BaseFormula(url) { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public String getXmlTag() { |
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
})); |
|
|
|
} catch (Exception u) { |
|
|
|
} catch (Exception u) { |
|
|
|
LogKit.error(u.getMessage(), u); |
|
|
|
LogKit.error(u.getMessage(), u); |
|
|
|
} |
|
|
|
} |
|
|
@ -72,9 +76,9 @@ public class URLSource extends RHIframeSource { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public String[] dependence(CalculatorProvider ca) { |
|
|
|
public String[] dependence(CalculatorProvider ca) { |
|
|
|
Parameter[] parameters = ParameterHelper.analyze4Parameters(url, false); |
|
|
|
ParameterProvider[] parameters = ParameterKit.analyze4Parameters(url, false); |
|
|
|
List<String> collections = new ArrayList<String>(); |
|
|
|
List<String> collections = new ArrayList<String>(); |
|
|
|
for (Parameter parameter : parameters) { |
|
|
|
for (ParameterProvider parameter : parameters) { |
|
|
|
collections.addAll(Arrays.asList(parameter.dependence(ca))); |
|
|
|
collections.addAll(Arrays.asList(parameter.dependence(ca))); |
|
|
|
} |
|
|
|
} |
|
|
|
return collections.toArray(new String[collections.size()]); |
|
|
|
return collections.toArray(new String[collections.size()]); |
|
|
@ -84,9 +88,9 @@ public class URLSource extends RHIframeSource { |
|
|
|
public void mixCalculatedParameters(Calculator c, JSONArray ja, ParameterProvider[] parameters) throws JSONException, UtilEvalError { |
|
|
|
public void mixCalculatedParameters(Calculator c, JSONArray ja, ParameterProvider[] parameters) throws JSONException, UtilEvalError { |
|
|
|
for (int i = 0; i < (parameters == null ? 0 : parameters.length); i++) { |
|
|
|
for (int i = 0; i < (parameters == null ? 0 : parameters.length); i++) { |
|
|
|
Object obj = parameters[i].getValue(); |
|
|
|
Object obj = parameters[i].getValue(); |
|
|
|
if (obj instanceof Formula) { |
|
|
|
if (obj instanceof BaseFormula) { |
|
|
|
try { |
|
|
|
try { |
|
|
|
String content = ((Formula) obj).getContent(); |
|
|
|
String content = ((BaseFormula) obj).getContent(); |
|
|
|
obj = c.evalValue(content); |
|
|
|
obj = c.evalValue(content); |
|
|
|
} catch (Exception e) { |
|
|
|
} catch (Exception e) { |
|
|
|
} |
|
|
|
} |
|
|
|