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.采用自定义函数,能比较好地分离程序员和最终用户的职责:程序员只负责后端的取数功能,让最终用户自己去设计报表!
该示意图很好地说明了其意图: