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

Page tree

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

Skip to end of metadata
Go to start of metadata

接口作用

提供单元格条件属性的扩展,可以在现有的边框、字体、形态、缩进、控件、颜色、列宽、超级链接、新值、行高、背景、分页的基础上,提供更多的条件属性供实际需求使用。

接口内容

主要接口

HighlightProvider
package com.fr.design.fun;

import com.fr.design.condition.ConditionAttrSingleConditionPane;
import com.fr.design.condition.ConditionAttributesPane;
import com.fr.stable.fun.Level;
import com.fr.stable.fun.mark.Mutable;

/**
 * 条件属性界面设计接口
 */
public interface HighlightProvider extends Mutable{

    String MARK_STRING = "HighlightProvider";

    int CURRENT_LEVEL = 1;

    /**
     * 条件属性的实现类
     * @return 实现类
     */
    Class<?> classForHighlightAction();

    /**
     * 条件属性的界面
     * @param conditionAttributesPane 条件界面
     * @return 设置界面
     */
    ConditionAttrSingleConditionPane appearanceForCondition(ConditionAttributesPane conditionAttributesPane);
}

 

关联接口

HighlightAction
package com.fr.report.cell.cellattr.highlight;

import com.fr.general.data.EvalFormulaAction;
import com.fr.report.cell.CellElement;
import com.fr.script.Calculator;
import com.fr.stable.ColumnRow;
import com.fr.stable.DependenceProvider;
import com.fr.stable.script.CalculatorProvider;
import com.fr.stable.script.ExTool;
import com.fr.stable.xml.XMLable;

public interface HighlightAction extends XMLable, DependenceProvider{

   /**
    * 执行条件属性
    * 
    * @param currentCellElement 当前单元格
    * @param calculator 当前算子
    */
   void action(CellElement currentCellElement, Calculator calculator);

   /**
    * 执行条件属性
    *
    * @param currentCellElement 当前单元格
    * @param calculator 当前算子
    * @param evalFormulaAction 公式计算器
    */
   void action(CellElement currentCellElement, Calculator calculator, EvalFormulaAction evalFormulaAction);

   /**
    * 记录高亮中使用的相关格子,当格子值改变后,格子的值需要相应做改变
    *
    * @param calculator 算子
    * @param exTool   格子间关系计算工具
    * @param currentCr 当前行列
    * 
    *
    * @date 2014-9-21-下午10:23:52
    *
    */
   void analyzeCorrelative(CalculatorProvider calculator, ExTool exTool, ColumnRow currentCr);
}

通常根据实际需要,继承com.fr.report.cell.cellattr.highlight.AbstractHighlightAction或者com.fr.report.cell.cellattr.highlight.AbstractStyleHighlightAction类,而不直接实现HighlightAction接口。

接口接入

<extra-designer>
    <HighlightProvider class="com.fr.plugin.cell.highlight.AlignCellHighlightBridge"/>
</extra-designer>

示例效果

同一个扩展格子,可以有不同的对齐效果:

接口示例

示例源码:http://git.fanruan.com/fanruan/demo-highlight-align

注意事项

示例插件是一个付费示例插件,如果希望在此基础上改进并发布为免费插件,需要去掉关于插件license判断部分的代码。

  • No labels