FineReport之JS调用Mysql存储过程排坑指南


需求:业务导入三类对账单明细,按照一定算法对金额进行计算,最后输出结果。

问题

数据处理过程写于存储过程,全程使用FineReport进行大数据导入及呈现,业务希望执行处理过程的时机可以自己把握。

解决办法

添加一个按钮控件来执行JS远程调用存储过程,网上查阅资料发现JS调用存储过程(无返回值)会执行两次(坑爹FR还需优化呀),由于时间紧迫,最后发现如下方法可完美执行

var sql ="SQL(\"E3\",\"call XXX()\",1,1)"; -- E3为数据库名,XXX为对应存储过程
alert('脚本正在执行,请等待数十秒后在刷新页面(页面无响应为正常现象,页面刷新后有数据即脚本执行完成!)');
return FR.remoteEvaluate(sql);

最后发现执行完后,报表数据没显示,记得取消勾选如下按钮~

声明:Codererrr's Blog|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - FineReport之JS调用Mysql存储过程排坑指南


Coding Changes The World