1. 描述
场景描述:内部收益率 IRR 这个公式在可行性评估分析类的财务报表中频繁的被使用,FR 中默认没有这个公式,而这个值的计算又不是纯数学计算,需要靠猜测和差值最终得到一个理想的结果。
下面就介绍如何实现。
2. 思路
我们可以根据 IRR 逻辑创建一个自定义函数,然后根据一个数据列的集合来计算 IRR 内部收益率。
3. 操作步骤
在一般情况下,若您希望在 FineReport 设计器基础上进行二次开发,我们可以在 Eclipse 或 IDEA 中通过调用FineReport 启动类来启动设计器,以便于开发过程中的调试和二次开发的准备。
注意需要引入 FineReport 设计器下的 JAR 包,详细点击 编译Java程序
3.1 完整代码详见:
https://code.fanruan.com/demo/example/src/branch/persist/10.0/src/main/java/com/fr/function/IRR.java
3.2 编译自定义函数
将编译后的 IRR.class 放到 FineReport 的安装目录 WEB-INF 下面的 classes 目录下,因为 IRR.java 属于包 com.fr.function,所以 IRR.class 需要放到%FR_HOME%\webapps\webroot\WEB-INF\classes\com\fr\function目录下。
3.3 注册自定义函数
生成该函数的类后需要在设计器中进行注册,才可以使用该函数。打开服务器>函数管理器,选择刚刚定义好了 IRR 类,如下图:
3.4 使用自定义函数
注册好自定义函数后,制作报表时便可直接使用了,使用方法与内置的函数是相同的。
(1)Excel 中的 IRR 公式效果
(2)FR 中的 IRR 公式效果
模板样式设计:
预览结果:
通过比较我们可以知道,在 FR 中使用该公式,比 Excel 中更精确,也更稳定。
注:不容易出现算不出结果的情况。