diff --git a/designer-realize/src/main/java/com/fr/design/actions/replace/utils/ReplaceUtils.java b/designer-realize/src/main/java/com/fr/design/actions/replace/utils/ReplaceUtils.java index 6d03f648cb..8d62f3c18d 100644 --- a/designer-realize/src/main/java/com/fr/design/actions/replace/utils/ReplaceUtils.java +++ b/designer-realize/src/main/java/com/fr/design/actions/replace/utils/ReplaceUtils.java @@ -48,6 +48,7 @@ import com.fr.js.NameJavaScriptGroup; import com.fr.main.impl.WorkBook; import com.fr.main.parameter.ReportParameterAttr; import com.fr.report.cell.CellElement; +import com.fr.report.cell.Elem; import com.fr.report.cell.FloatElement; import com.fr.report.cell.TemplateCellElement; import com.fr.report.cell.cellattr.core.group.DSColumn; @@ -701,7 +702,7 @@ public class ReplaceUtils { // 处理【形态、控件、数据字典】 ans.addAll(searchPresentAndDictionary(cell)); // 处理【单元格值】 - ans.addAll(searchCellValue(cell)); + ans.addAll(searchElemValue(cell)); // 处理【条件属性】 ans.addAll(searchCellHighlight(cell)); } @@ -758,7 +759,7 @@ public class ReplaceUtils { return ans; } - private static Set searchCellValue(CellElement cell) { + private static Set searchElemValue(Elem cell) { Set ans = new HashSet<>(); Object value = cell.getValue(); if (value instanceof DSColumn) { @@ -880,7 +881,27 @@ public class ReplaceUtils { ans.addAll(searchFormulaInfos(formulaInfos)); // 超链部分 ans.addAll(searchElementCasJs(provider)); + // 悬浮元素 + ans.addAll(searchFloat(provider)); return ans; } + private static Set searchFloat(ElementCase provider) { + Set ans = new HashSet<>(); + Iterator flotIt = provider.floatIterator(); + while (flotIt.hasNext()) { + FloatElement flotEl = (FloatElement) flotIt.next(); + // 值 + ans.addAll(searchElemValue(flotEl)); + // 超链 + ans.addAll(searchFloatJs(flotEl)); + } + return ans; + } + + private static Set searchFloatJs(FloatElement flotEl) { + List javaScripts = new ArrayList<>(SearchJSUtils.getJSDependenceTables(flotEl)); + return new HashSet<>(searchJs(javaScripts)); + } + }