lyz880524 发表于 2020-10-27 16:48:42

1:报表设计器中,设置参数ids string类型
2:js viewer 传参
var params = [{ name: 'ids', values: ['in(2,3,4,5)'] }];
viewer2.openReport("report.rdlx", params);

3:报表设计器中的sql改写为
="select * from tablea where 1=1 and ids " & Parmeters!ids.Value & ";"
一定要加 =" sql 语句 "

KearneyKang 发表于 2020-10-27 17:00:02

本帖最后由 KearneyKang 于 2020-10-28 11:56 编辑

你好,感谢楼上的热心分享前端多值参数传值的写法,这个方法很棒,非常感谢你分享你的使用经验。
ODBC的驱动这块就是需要写表达式进行一个值得分割,这样使用多值才能最终筛选出你需要的值。

zsy 发表于 2020-10-27 17:16:54

我这一块 还没弄好 ,现在只是把sql 语句拼接上面了后续的参数,怎么去弄

KearneyKang 发表于 2020-10-27 18:12:32

你好,我现在已经有点不清楚你当前的问题了,你现在是桌面端报表设计器这块使用多值没有实现还是怎么的,我不是给你了一张报表文件,你可以进行对应的参考就行 ,如果还有什么不懂建议我们电话进行沟通。谢谢

lyz880524 发表于 2020-10-28 11:27:52

:Q

KearneyKang 发表于 2020-10-28 11:53:37

问题主要原因是你设置了多值参数,但是你没有给你的多值参数赋值,导致你报表预览的时候么有参数值可以选择。你把参数给设置默认值或者设置收到添加的多值都可以预览的时候出现参数可选值

zsy 发表于 2020-11-11 11:52:54

lyz880524 发表于 2020-10-27 16:48
1:报表设计器中,设置参数ids string类型
2:js viewer 传参
var params = [{ name: 'ids', values:...

请问你是什么数据库的

KearneyKang 发表于 2020-11-11 13:39:59

你好,楼上的回复跟你一样使用的是Mysql的数据库下面的操作步骤:1、2、3亲测有效
1:报表设计器中,设置参数ids string类型
2:js viewer 传参
var params = [{ name: 'ids', values: ['in(2,3,4,5)'] }];
viewer2.openReport("report.rdlx", params);

3:报表设计器中的sql改写为
="select * from tablea where 1=1 and ids " & Parmeters!ids.Value & ";"
一定要加 =" sql 语句 "

lyz880524 发表于 2020-11-11 20:25:34

第一种解决方法:

1:报表设计器中,设置参数ids string类型
2:js viewer 传参
var params = [{ name: 'ids', values: ['in(2,3,4,5)'] }];
viewer2.openReport("report.rdlx", params);

3:报表设计器中的sql改写为
="select * from tablea where 1=1 and ids " & Parmeters!ids.Value & ";"
一定要加 =" sql 语句 "


第二中解决方法:
将报表参数映射到dataset数据集中
例如报表设置的参数 itemid string类型
前台穿值这样
{ name: 'itemid', values: ["'itemid1','itemid2','itemid3'"] }

然后再数据集中

添加参数
这个参数对应的 ? 是依次顺序对应的

你sql这样写
select * from a where a.itemid in ( ? );



zsy 发表于 2020-11-12 09:13:15

为什么会多出来这个搜索的,是我前端传错了吗?
这是前端的代码,我把前端要传入的值手动输入就可以有二维码了。。。。

我在这个里面传值可以出来二维码。





页: 1 2 [3] 4
查看完整版本: Mysql数据库如何在前端进行多值参数的传参