| 1.请双击展开工具箱下方“自定义财务函数”;2.关注下方“双击打开函数详解”说明;3.报表中红色单元格均使用了“自定义财务函数”; 4.用鼠标分别将 balance、debit、loan 函数拖入“现金”的3个灰色单元格内，输入科目代码和月份参数，可用B4、G2代替(表示取B4、G2单元格内容)；5.关注输入过程中黄色浮动提示条带来的便捷；6.实现原理请参考底下的“技术分析区”；

1.关键语句在 OnReady( )事件中：向当前报表控件添加了自定义函数的声明文档：

     AF.func("AddUserFunctions", "reportdata/func_account.xml");

声明的文档是reportdata/func_account.xml，这个文档包含了函数向导输入的的一些选项，比较复杂，如果您是初学者，可以从这个简化版的入手：reportdata/func_account_simple.xml.
2.自定义函数 balance、debit、loan 是如何执行的呢？ 请看本页面中的3个js函数:

    function balance(acc, mon)
    {
     if(acc=='101') return 10029.30;
     else if(acc=='10201') return 349000.00;
     else if(acc=='10202') return 54300;
     return 0;
    }
    function debit(acc, mon)
    {
     (略);
    }
    function loan(acc, mon)
    {
     (略);
    }

一切都真相大白了，可见 =balance(B4, G2) 等介于 =js('balance', B4, G2) !
在实际开发中，这3个javaScript函数可以用Ajax实现与后台应用服务器的取数计算交互。
注：js( )是插件的内部函数，能反向调用页面javaScript函数，请参考开发文档中的“公共内容”.
3.G2单元格采用了显示掩码：data + '月份'
4.如果报表中有成百上千处自定义函数，而这些函数都需要AJAX，那么可能会出现网络性能问题，建议采用批计算，请参考Report开发文档 自定义函数\高级应用.
5.请点击公式输入旁边的“函数向导”，在函数的下拉中选择自定义函数后，请关注其参数的输入方式：
6.采用自定义函数，能比较好地分离程序员和最终用户的职责：程序员只负责后端的取数功能，让最终用户自己去设计报表!
该示意图很好地说明了其意图：