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

Page tree

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

Skip to end of metadata
Go to start of metadata

1.增加保存按钮监听---继承Charts类需增加equal方法

/**
 * 比较和Object是否相等
 * @param ob 用 于比较的Object
 * @return 一个boolean值
 * 备注:不相等时,触发激活保存按钮
 */
public boolean equals(Object ob) {
    return ob instanceof Chart && super.equals(ob)
            && ComparatorUtils.equals(((PieChart) ob).getChartTitle(), chartTitle)
            && ComparatorUtils.equals(((PieChart) ob).getChartDescribe(), chartDescribe)
            && ComparatorUtils.equals(((PieChart) ob).getChartDescribe(), roma);
}

2.报错cannot be cast to com.fr.plugin.basic.Closeable---修改plugin.xml,增加<main-package>标签

  详情见http://dev.fanruan.com:8090/pages/viewpage.action?pageId=5374139

  解决方法:

  9.0插件引擎定义了主包的概念,指的是插件主要类(比如xml中描述的接入点)所在的包。所有9.0插件默认的主包为com.fr.plugin。考虑到兼容问题,8.0插件的主包默认为com.fr,但这也并不能囊括所有的老插件,所以    允许在plugin.xml中添加<main-package>标签来自定义主包:

  自定义主包

 

<main-package>com.personal.main</main-package>


3.国际化问题—增加ActualLocaleFinder类

  解决方法:

  http://dev.fanruan.com:8090/pages/viewpage.action?pageId=327732

4.报 java.lang.ClassNotFoundException:com.fr.plugin.XXXX

  先确认是否严格按照http://dev.fanruan.com:8090/pages/viewpage.action?pageId=5373985,如果确认再看下面

  解决方案:

   moudle的class-output path 中的env/home 要与工作目录保持一致,不然会加载不到编译后的class文件

  

  例如:

  我的fr9.0的安装目录为/Applications/FineReport9.0;设计器设置的工作目录也是/Applications/FineReport9.0/WebReport/WEB-INF

  那边这里的插件编译output path 就要设为/Applications/FineReport9.0/WebReport/WEB-INF/plugins/plugin-com.fr.plugin.XXX-1.0.0/classes

5.决策报表添加图表的小图片修改

很多开发者的插件在决策报表展现的是这样,这样不合理,需要修改

解决方案:

继承AbstractIndependentChartsUI,重写getIconPath方法即可

6.关于公式计算---BaseFormula

 

有开发者用了9.0中的BaseFormula,但是8.0中没有这个类,我们又想让公式计算出结果...so

解决方案:

Object object = "=now()";
CalculatorProvider calculator = CalculatorProviderContext.getCalculatorProvider();
FormulaProvider formula = new Formula((String) object);
StableUtils.dealFormulaValue(formula, calculator);
object = formula.getResult();

 

 

7.自定义单元格数据配置面板(仅限不支持单元格数据场景)

 

1)写一个DemoReportDataContentPane 继承 AbstractReportDataContentPane,在构造器中自定义面板

 
public class DemoReportDataContentPane extends AbstractReportDataContentPane {

    public DemoReportDataContentPane(ChartDataPane parent) {
        this.setLayout(new BorderLayout());
        this.add(new UILabel("暂不支持单元格数据!", UILabel.CENTER), BorderLayout.CENTER);
    }


    @Override
    protected String[] columnNames() {
        return new String[0];
    }

    @Override
    public void populateBean(ChartCollection ob) {

    }
}
 

2)在继承AbstractIndependentChartsUI 的 类中增加getReportDataSourcePane重写

 
/**
 * @param plot
 * @param parent
 * @return 单元格数据配置面板,自定义单元格数据配置面板需要重写
 */
@Override
public AbstractReportDataContentPane getReportDataSourcePane(Plot plot, ChartDataPane parent) {
    return new DemoReportDataContentPane(parent);
}

 


  • No labels