自定义函数插件开发

编辑
  • 文档创建者:漩涡
  • 浏览次数:6904次
  • 编辑次数:28次
  • 最近更新:Kevin-s 于 2019-06-24
  • 1 前言

    通常在用到 FineReport 的自定义函数的时候,我们可以通过编译 class 之后通过函数管理器添加自定义函数,但是这样做有三个缺点:

    1. 维护麻烦,每次更新函数,都需要找到 class 文件所在的目录之后用新的 class 文件替换掉

    2. 自定义函数缺少该函数的使用说明,不知道的人无法正确的使用该函数,提高了沟通成本

    3. 传播不方便,在一台机器上使用的自定义函数,如果在另外一台机器上也要使用,需要找到需要拷贝的 class 文件和 functions.xml 文件

    为了解决这三个缺点,在 FineReport V8.0 中提供了函数定义的接口,可以通过插件来添加自定义函数

    2 开发过程

    2.1 关键接口和 XML 属性

    com.fr.stable.fun.FunctionDefineProvider

    接口属性:

    配置属性名 
    描述 
      class自定义函数类名
      name函数名 
      description函数使用描述 


    使用方式

    <FunctionDefineProvider class="com.fr.plugin.function.MyFunction" name="my" description="函数的描述"/>

    plugin.xml内容HTML/XML代码

    <?xml version="1.0" encoding="UTF-8" standalone="no"?><plugin>
        <id>com.fr.plugin.function.collection</id>
        <name><![CDATA[自定义函数集合]]></name>
        <active>yes</active>
        <version>1.1</version>
        <env-version>8.0</env-version>
        <jartime>2015-09-10</jartime>
        <vendor>author</vendor>
        <description><![CDATA[自定义函数插件]]></description>
        <change-notes><![CDATA[无]]></change-notes>
        <extra-core>
            <FunctionDefineProvider class="com.fr.plugin.function.MyFunction" name="my" description="拼接两个参数。调用方式:=my(C4, C5)"/>
            <FunctionDefineProvider class="com.fr.plugin.function.YourFunction" name="you" description="我的函数"/>     </extra-core> </plugin>

    实现内容(拼接两个字符串)

    import com.fr.general.GeneralUtils;
    import com.fr.script.AbstractFunction;
    import com.fr.stable.ArrayUtils;
    import com.fr.stable.Primitive;
    public class MyFunction extends AbstractFunction {
        @Override
        public Object run(Object[] args) {
            if (ArrayUtils.getLength(args) < 2) {
                return Primitive.ERROR_VALUE;
            }
            return GeneralUtils.objectToString(args[0]) + GeneralUtils.objectToString(args[1]);
        }
    }

    3 插件打包和安装

    在插件工程目录下执行,详细如何打包插件可查看 Ant 打包

    ant -f build.xml jar

    后,会获取到插件安装包,通过设计器安装该插件后,可以在公式编辑器中的“插件函数”项下看到插件函数了

    4 源码

    附件列表


    主题: 二次开发
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]