更改单元格的生成的HTML标签,可以达到增加Tooltip信息之类的目的。
package com.fr.report.fun; import com.fr.script.Calculator; import com.fr.stable.fun.Level; import com.fr.stable.html.Tag; /** * 更改单元格输出成的HTML标记Tag */ public interface CellTagTransformer extends Level { String MARK_STRING = "CellTagTransformer"; int CURRENT_LEVEL = 1; /** * 处理单元格提示效果 * * @param c 算子 * @param tag 单元格HTML标签 * @param tooltip 提示内容 * @param rawValue 单元格的值 * @return HTML标签 */ Tag process(Calculator c, Tag tag, String tooltip, Object rawValue); } |
public class DefaultCellTooltipProcessor extends AbstractCellTagTransformer { private static DefaultCellTooltipProcessor instance = new DefaultCellTooltipProcessor(); public static DefaultCellTooltipProcessor getInstance() { return instance; } public Tag process(Calculator c, Tag tag, String tooltip, Object rawValue) { // 以前会在最终的title attributes 前后加上
(会换行),但没有发现这样做的道理 // 现在去掉,tooltip会在Tag.attributeBuffer里面htmlEncode. tag.attr("title", tooltip); return tag; } } |
<extra-report> <CellTagTransformer class="com.fr.plugin.xxx.youclassname"/> </extra-report> |