报表参数问题
本帖最后由 hbwh2002 于 2018-4-27 13:51 编辑报表多值传参后,参数正常,但是查询不到结果,请问是怎么回事?
您好!
可以把设计的报表模板样式发过来看看,我看看具体什么问题导致的。 KearneyKang 发表于 2018-4-27 14:00
您好!
可以把设计的报表模板样式发过来看看,我看看具体什么问题导致的。
版主,你好,麻烦看看附件。
您好!
你是想实现下面这种效果是吧!
你遇到的问题主要是由于:
ODBC数据源不支持多值参数,可以使用动态拼接SQL语句的方法绕过此问题。
核心是:(1)脚本Function ArrayToString(list As Object()) As String Dim re ="" For Each item AsString In list If item IsNothing Then ContinueFor End If If re<> "" Then re +="," End If re += item Next Return re End Function(2)数据集SQL使用表达式 ="select * from city where CountryCode in ("& Code.ArrayToString( Parameters!CountryCode.Value ) & ")" KearneyKang 发表于 2018-4-27 14:43
您好!
你是想实现下面这种效果是吧!
版主,您好。试了一下,报错了,麻烦再帮忙看看,谢谢。
另外,我需要的是多值输入的文本框。
本帖最后由 KearneyKang 于 2018-4-27 15:47 编辑
您好这个其实就是一个分割,用Split()函数就可以实现。具体你参考如下:
输入文本: A0012,A0013,A0014,
SQL 语句端:="select* from Test2WHERE 业务编号 In ('" + Join(Split( Parameters!P1.Value , ","), "', '") + "')"
运行结果:
KearneyKang 发表于 2018-4-27 15:31
文本框的这种形式我这边也需要在验证下。有结果了,我第一时间通知你
好的,谢谢。 不客气 数据库服务器实际执行SQL语句时,会把我们转换得到的、用逗号分隔的参数字符串,当成一个单一参数值,所以不可能查到数据。
请改一下数据集对话框中参数的表达式,不要JOIN。
另外,从Excel中拷贝出来的多个单元格内容之间,除了ASCII码10(换行)之外,还有ASCII码13(回车),因此需要把这个13去掉。所以,最后参数表达式应该是:
=Split(Replace([@hawblist], chr(13),""),chr(10))
页:
[1]