From e6f32294318a257f026d8510c31593fa59a89c85 Mon Sep 17 00:00:00 2001 From: "Mata.Li" Date: Thu, 5 Jul 2018 14:59:40 +0800 Subject: [PATCH] REPORT-9367 --- .../fr/design/mainframe/DesignerFrame.java | 1 + .../fr/design/mainframe/FormModelAdapter.java | 43 ++++++++++++++++--- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/designer-base/src/com/fr/design/mainframe/DesignerFrame.java b/designer-base/src/com/fr/design/mainframe/DesignerFrame.java index f4766b798..df48ad0b7 100644 --- a/designer-base/src/com/fr/design/mainframe/DesignerFrame.java +++ b/designer-base/src/com/fr/design/mainframe/DesignerFrame.java @@ -12,6 +12,7 @@ import com.fr.design.actions.core.ActionFactory; import com.fr.design.constants.UIConstants; import com.fr.design.data.DesignTableDataManager; import com.fr.design.data.datapane.TableDataTreePane; +import com.fr.design.env.RemoteWorkspace; import com.fr.design.event.DesignerOpenedListener; import com.fr.design.event.TargetModifiedEvent; import com.fr.design.event.TargetModifiedListener; diff --git a/designer-form/src/com/fr/design/mainframe/FormModelAdapter.java b/designer-form/src/com/fr/design/mainframe/FormModelAdapter.java index 65e9d41d8..3c1233fab 100644 --- a/designer-form/src/com/fr/design/mainframe/FormModelAdapter.java +++ b/designer-form/src/com/fr/design/mainframe/FormModelAdapter.java @@ -1,6 +1,8 @@ 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; @@ -10,6 +12,9 @@ import com.fr.form.ui.DataControl; import com.fr.form.ui.ElementCaseEditor; import com.fr.form.ui.MultiFileEditor; import com.fr.form.ui.Widget; +import com.fr.main.parameter.ReportParameterAttr; +import com.fr.script.Calculator; +import com.fr.stable.ParameterProvider; import com.fr.stable.js.WidgetName; import java.util.ArrayList; @@ -87,20 +92,44 @@ public class FormModelAdapter extends DesignModelAdapter { public boolean dealWithAllCards() { return true; } - + public void dealWith(Widget widget) { - boolean isSupportAsHypelink = widget.acceptType(ElementCaseEditor.class) || widget.acceptType(BaseChartEditor.class); - //可以超链的对象不包含本身; 目前只有图表和报表块可以 - // bug66182 删了条件:!ComparatorUtils.equals(editingECName, widget.getWidgetName()) 让当前表单对象可以选到自己 - if (isSupportAsHypelink){ - linkAbleList.add( widget); - } + boolean isSupportAsHypelink = widget.acceptType(ElementCaseEditor.class) || widget.acceptType(BaseChartEditor.class); + //可以超链的对象不包含本身; 目前只有图表和报表块可以 + // bug66182 删了条件:!ComparatorUtils.equals(editingECName, widget.getWidgetName()) 让当前表单对象可以选到自己 + if (isSupportAsHypelink) { + linkAbleList.add(widget); + } } }, Widget.class); 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();