finereport点击按钮传递复选框参数并调用存储过程更改数据状态

系列文章目录

finereport点击按钮传递复选框参数并调用存储过程更改数据状态


前言

针对finereport大多数传参都为单个参数的情况,写了这篇传递多个参数的文章,希望对大家有所帮助


一、首先介绍一下业务场景

在填报时选择下拉框和下拉复选框的值,在点击查询按钮的同时将选中的内容更改为0(不展示)和1(展示)的状态,并且下次进入填报页面是默认选中状态为1的选项。

二、详细步骤

下拉框配置(数据字典就是普通的城市查询并去重)
在这里插入图片描述
下拉复选框配置重要
数据字典就跟是简单的跟着城市去联动
这里要注意两点
1.返回值类型一定要选择字符串,分隔符为“,”,一定要是逗号,不然传参会很麻烦。甚至不生效
2.默认值(即下次进入此页面选择状态为1的选项,直接贴代码)
下面展示一些 内联代码片

// region为区域,geocity为城市,state为状态,$geocity为下拉框控件名
sql("数据库名","select distinct region from 表名 where geocity = '"+$geocity+"'and state = \'1\'",1)

在这里插入图片描述

1.在查询按钮添加点击事件

代码如下(示例):

//b为标识位,存储过程用来区分哪一张表更改状态
var b = '1';
//获取下拉复选框选中的值
var p_region =this.options.form.getWidgetByName("region").getValue();
//获取下拉框选中的值
var p_geocity =this.options.form.getWidgetByName("geocity").getValue();
//拼接调用存储过程语句(下拉复选框分隔符设置为“,”的好处就在这里体现,不用无限转义)
var z =  "call proc_updateState('"+b+"','"+p_geocity+"','"+p_region+"')";
//执行sql,调用存储过程更改状态
FR.remoteEvaluate('SQL("Data_ycymb","'+z+'",1,1)');

2.数据库存储过程(这里也展示一下,希望可以帮到大家,注:mysql数据库)

代码如下(示例):

//三个入参(flag:表标识位,区分哪一个表;p_geocity:城市;p_region:区域)
CREATE PROCEDURE proc_updateState (IN flag varchar(255),IN p_geocity varchar(255),IN p_region varchar(255))
BEGIN
//每个if语句大同小异,无非就是为了起到多个报表共用的目的,提高复用性
if(flag = '1') THEN
update 表1 set state = '0' where geocity =p_geocity;
update 表1 set state = '1' where geocity =p_geocity and FIND_IN_SET(region,p_region);
end if;
if(flag = '2') THEN
update 表2 set state = '0' where geocity =p_geocity;
update 表2 set state = '1' where geocity =p_geocity and FIND_IN_SET(region,p_region);
end if;
if(flag = '3') THEN
update 表3 set state = '0' where geocity =p_geocity;
update 表3 set state = '1' where geocity =p_geocity and FIND_IN_SET(region,p_region);
end if;
END

总结

接到这个需求的时候,我也是痛苦了好几天,终于做出来了,希望可以帮助大家闭坑,越走越远。

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值