本帖最后由 Eden.Sun 于 2023-6-9 16:55 编辑
我这边是用的mysql数据库做的测试,您可以参考一下:
存储过程:存储过程好像不支持多值参数,因此我传递的是一个以 英文逗号 分割的字符串,然后在字符串里边做了数据处理:
效果:
然后在AR里面执行存储过程:
- CREATE DEFINER=`root`@`%` PROCEDURE `sp_test_mutil_param3`(IN vals VARCHAR(255))
- BEGIN
- SET @sql = CONCAT('SELECT * FROM a WHERE D IN (''', REPLACE(vals, ',', ''', '''), ''')');
- PREPARE stmt FROM @sql;
- EXECUTE stmt;
- DEALLOCATE PREPARE stmt;
- END
复制代码
报表参数:这个是添加的多值参数:
数据集执行存储过程:CALL sp_test_mutil_param3('{Join(@报表参数1, ",")}')
这里要用 join 表达式处理一下参数,因为报表的多值参数是一个数组,所以就会出现您前面遇到的错误。
效果预览:
我看您的存储过程里面多值参数直接用的 in。 应该也会有问题,您可以具体的网上搜一下。
|