普通报表单元格设置点击事件,请问怎么实现点击之后执行一段sql,或者执行存储过程

报表用途主要是监控表数据,因为同步有时间间隔,希望点击事件能够执行函数或者执行sql也行

FineReport 麦兜的兜 发布于 2023-5-26 13:30
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
CD20160914Lv8专家互助
发布于2023-5-26 13:31(编辑于 2023-5-26 13:37)

执行存储过程:

方式一:

var mycode=this.options.form.getWidgetByName('mycode').getValue(); //获取参数

var mydate=this.options.form.getWidgetByName('mydate').getValue(); 

var STATUS=this.options.form.getWidgetByName('STATUS').getValue(); 

var sql="exec test_aa_cc "+mycode+","+mydate+","+STATUS;

var res=FR.remoteEvaluate('=sql("dbbasedata","'+sql+'",1,1)');

方式二:

var mycode=this.options.form.getWidgetByName('mycode').getValue(); //获取参数

var mydate=this.options.form.getWidgetByName('mydate').getValue(); 

var STATUS=this.options.form.getWidgetByName('STATUS').getValue(); 

var sql="call test_aa_cc ('"+mycode+"','"+mydate+"','"+STATUS+"')";

var res=FR.remoteEvaluate('=sql("dbbasedata","'+sql+'",1,1)');

要执行sql。可以类似这样

var mycode=this.options.form.getWidgetByName('mycode').getValue(); //获取参数的值

var bl='=SQL("FRDemo","'+"select 销售成本 from Sales where 地区 = '"+mycode+"'"+'",1,1)';

var value=FR.remoteEvaluate(bl);

alert("值为"+value);

  • 麦兜的兜 麦兜的兜(提问者) mycode mydate mydate 这些参数什么意思
    2023-05-26 14:05 
  • CD20160914 CD20160914 回复 麦兜的兜(提问者) 就是传参数。如果你的存储过程有参数要传,而且是获取参数面板上的值,那么就传进去。如果你没有参数就直接调用存储过程就行了。
    2023-05-26 14:06 
  • 麦兜的兜 麦兜的兜(提问者) 回复 CD20160914 明白你的意思了,已经完成了,我想请问,点击按钮之后,页面没有数据没有刷新,需要在刷新一次网页才行,可以点击这个按钮之后,执行了存储过程之后,自动刷新一次页面吗
    2023-05-26 14:11 
  • CD20160914 CD20160914 回复 麦兜的兜(提问者) 你那你最后多加一句刷新或者查询都可以了。加一句查询_g().parameterCommit()
    2023-05-26 14:13 
  • CD20160914 CD20160914 回复 麦兜的兜(提问者) 这里有所有刷新的方式:https://help.fanruan.com/finereport/doc-view-1857.html 建议直接用查询就可以了
    2023-05-26 14:14 
  • 2关注人数
  • 643浏览人数
  • 最后回答于:2023-5-26 13:37
    请选择关闭问题的原因
    确定 取消
    返回顶部