【仅供内部供应商使用,不提供对外解答和培训】

Page tree

【仅供内部供应商使用,不提供对外解答和培训】

Skip to end of metadata
Go to start of metadata

接口作用

更改单元格的生成的HTML标签,可以达到增加Tooltip信息之类的目的。

接口内容

CellTagTransformer
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);
}

默认是单元提示信息示例

DefaultCellTooltipProcessor
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 前后加上&#10(会换行),但没有发现这样做的道理
        // 现在去掉,tooltip会在Tag.attributeBuffer里面htmlEncode.
        tag.attr("title", tooltip);
        return tag;
    }
}

 

注册方式

<extra-report>
   <CellTagTransformer class="com.fr.plugin.xxx.youclassname"/>
</extra-report>
  • No labels