lunew 发表于 2016-2-29 14:55:00

ar10, HTML5Viewer 多值参数问题1

数据库是sqlserver
1. 参数中定义了一个多值参数FormStatusID,integer类型,然后在sql查询中使用这个参数,发现预览始终没有查询结果,去掉这个参数查询就正常了
下面的用法不对吗,如何判断FormStatusID这个参数没有传入值或者是空值
。。。
(@FormStatusID is null or summ.StatusID in (@FormStatusID))
。。。

2. 页面上用HTML5Viewer,多值的情况下页面上应该怎么传参数,另外如果参数为空是传NULL还是就不传了?
            var reportOption = {
                id: 'Reports/TravelFormRdlReport.rdlx',
                parameters: [
                  {
                        //单值的
                        name: 'FormID',
                        value: 14002
                  },
                  {
                        //多值的?
                        name: 'FormStatusID',
                        value: 1,2,3
                  }                  
                ]
            };   

谢谢!

Lenka.Guo 发表于 2016-2-29 15:44:00

问题收到了,制作Demo需要时间,制作完成立即为您回复。

Lenka.Guo 发表于 2016-3-1 09:46:00

您的第一个问题:SQL 语句与SQL Server的语法相同,为了测试是否为@FormStatusID传值,您可以尝试为它设置默认值。
第二个问题: 多值参数,见附件MultiValueParameter.html页面,报表数据库采用我们的测试数据库“NWind_CHS.mdb


多值参数是用数组表示的,因此Parameter的其他写法不变,只是在Value 传值时,换成数组;

parameters: [   {name:'ProductID',
                         value:
                        },
                        ] },

特别注意:为参数传值时一定要注意参数数据类型,与所传值的类型需要一致。

如果参数为空或Null,您需要在创建报表参数时设置为“Null”,需要传空值。

lunew 发表于 2016-3-1 22:56:00

如何传值明白了,谢谢
第一个问题还没解决,在没有传值的情况下,AR里的数据集的查询语句中,@FormStatusID不是null,用@FormStatusID is null 判断是false,它也不是字符串
如何判断没有传值呢

Lenka.Guo 发表于 2016-3-2 09:12:00

首先 #1 中的SQL 语句没有问题:(@FormStatusID is null or summ.StatusID in (@FormStatusID))
检测:拖拽参数 FormStatusID 到报表中,生成TextBox,预览或运行报表时,TextBox会输出FormStatusID值。可以用这个方法检测FormStatusID是否获取到值

lunew 发表于 2016-3-4 10:41:00

已经解决了,谢谢

Lenka.Guo 发表于 2016-3-4 11:12:00

好的~~:hjyzw:
页: [1]
查看完整版本: ar10, HTML5Viewer 多值参数问题1