diff --git a/designer_form/src/com/fr/design/mainframe/FormModelAdapter.java b/designer_form/src/com/fr/design/mainframe/FormModelAdapter.java index 19daf31133..3a2a410b56 100644 --- a/designer_form/src/com/fr/design/mainframe/FormModelAdapter.java +++ b/designer_form/src/com/fr/design/mainframe/FormModelAdapter.java @@ -1,11 +1,15 @@ package com.fr.design.mainframe; import com.fr.base.Parameter; +import com.fr.base.TableData; +import com.fr.data.TableDataSource; import com.fr.design.DesignModelAdapter; import com.fr.design.file.HistoryTemplateListPane; import com.fr.form.main.Form; import com.fr.form.main.WidgetGatherAdapter; import com.fr.form.ui.*; +import com.fr.script.Calculator; +import com.fr.stable.ParameterProvider; import com.fr.stable.js.WidgetName; import java.util.ArrayList; @@ -97,6 +101,30 @@ public class FormModelAdapter extends DesignModelAdapter { return linkAbleList.toArray(new Widget[linkAbleList.size()]); } + // 报表参数 + @Override + public Parameter[] getReportParameters() { + Parameter[] rpa = this.getBook().getTemplateParameters(); + return rpa == null ? new Parameter[0] : rpa; + } + + // 数据源参数 + @Override + public Parameter[] getTableDataParameters() { + TableDataSource source = this.getBook(); + Calculator c = Calculator.createCalculator(); + c.setAttribute(TableDataSource.KEY, source); + java.util.List list = new java.util.ArrayList(); + java.util.Iterator nameIt = this.getBook().getTableDataNameIterator(); + while (nameIt.hasNext()) { + TableData td = source.getTableData(nameIt.next()); + if (td.getParameters(c) != null) { + list.addAll(java.util.Arrays.asList(td.getParameters(c))); + } + } + return list.toArray(new Parameter[list.size()]); + } + @Override public Parameter[] getParameters() { return this.getBook().getParameters();