找回密码
 立即注册

QQ登录

只需一步,快速开始

伍联康国龙

注册会员

13

主题

30

帖子

85

积分

注册会员

积分
85
伍联康国龙
注册会员   /  发表于:2023-6-8 11:31  /   查看:4114  /  回复:11
1金币
数据集是存储过程,过滤条件如何实现多选








附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

我这边是用的mysql数据库做的测试,您可以参考一下: 存储过程:存储过程好像不支持多值参数,因此我传递的是一个以 英文逗号 分割的字符串,然后在字符串里边做了数据处理: 效果: 然后在AR里面执行存储过程: 报表参数:这个是添加的多值参数: 数据集执行存储过程:CALL sp_test_mutil_param3('{Join(@报表参数1, ",")}') 这里要用 join 表达式处理一下参数,因为报表的多值参数是一个数组,所 ...

11 个回复

倒序浏览
最佳答案
最佳答案
Felix.LiWyn认证
超级版主   /  发表于:2023-6-8 11:31:27
来自 11#
本帖最后由 Eden.Sun 于 2023-6-9 16:55 编辑
伍联康国龙 发表于 2023-6-8 18:34
麻烦您给分析一下,这种情况该如何解决
我这边是用的mysql数据库做的测试,您可以参考一下:

存储过程:存储过程好像不支持多值参数,因此我传递的是一个以  英文逗号  分割的字符串,然后在字符串里边做了数据处理:




效果:


然后在AR里面执行存储过程:
  1. CREATE DEFINER=`root`@`%` PROCEDURE `sp_test_mutil_param3`(IN vals VARCHAR(255))
  2. BEGIN
  3.     SET @sql = CONCAT('SELECT * FROM a WHERE D IN (''', REPLACE(vals, ',', ''', '''), ''')');
  4.     PREPARE stmt FROM @sql;
  5.     EXECUTE stmt;
  6.     DEALLOCATE PREPARE stmt;
  7. END
复制代码


报表参数:这个是添加的多值参数:


数据集执行存储过程:CALL sp_test_mutil_param3('{Join(@报表参数1, ",")}')
这里要用 join  表达式处理一下参数,因为报表的多值参数是一个数组,所以就会出现您前面遇到的错误。


效果预览:




我看您的存储过程里面多值参数直接用的 in。 应该也会有问题,您可以具体的网上搜一下。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Bella.YuanWyn认证
超级版主   /  发表于:2023-6-8 13:02:32
2#
您好,您给数据集设置一下过滤条件,测试看看,具体设置如下图示:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
伍联康国龙
注册会员   /  发表于:2023-6-8 14:06:54
3#
      


  我的版本是这样的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
伍联康国龙
注册会员   /  发表于:2023-6-8 14:09:49
4#

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2023-6-8 15:16:55
5#
这个是您为数据集添加过滤条件。过滤条件指的是您要根据那个字段或者指标进行过滤,
过滤值是您的过滤标准,比如我的过滤条件是,年龄字段,运算符为大于,过滤值是15.
含义就是过滤出年龄在15岁以上的数据。



麻烦您在详细说一下您遇到的问题,和您想要实现的效果,我们在试试解决方案。
回复 使用道具 举报
伍联康国龙
注册会员   /  发表于:2023-6-8 16:07:44
6#
Eden.Sun 发表于 2023-6-8 15:16
这个是您为数据集添加过滤条件。过滤条件指的是您要根据那个字段或者指标进行过滤,
过滤值是您的过滤标准 ...

好的,谢谢
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2023-6-8 17:07:01
7#

不客气的,您的问题解决了吗?
回复 使用道具 举报
伍联康国龙
注册会员   /  发表于:2023-6-8 18:03:33
8#
没有解决,我的数据集是存储过程,定义了一个参数施工状态,但是施工状态是允许多选的,这样查询时就会提示返回了多个参数。
请问数据集是存储过程,参数的值允许多选,这种情况应该如何解决
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2023-6-8 18:20:31
9#
伍联康国龙 发表于 2023-6-8 18:03
没有解决,我的数据集是存储过程,定义了一个参数施工状态,但是施工状态是允许多选的,这样查询时就会提示 ...

您把您的存储过程截个图  我们看一下,然后我们本地测试一下。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部