找回密码
 立即注册

QQ登录

只需一步,快速开始

hbwh2002

注册会员

2

主题

7

帖子

36

积分

注册会员

积分
36
最新发帖

[已处理] 报表参数问题

hbwh2002
注册会员   /  发表于:2018-4-27 13:51  /   查看:3558  /  回复:8
本帖最后由 hbwh2002 于 2018-4-27 13:51 编辑

报表多值传参后,参数正常,但是查询不到结果,请问是怎么回事?


本帖子中包含更多资源

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

x

8 个回复

倒序浏览
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-4-27 14:00:05
沙发
您好!
可以把设计的报表模板样式发过来看看,我看看具体什么问题导致的。
回复 使用道具 举报
hbwh2002
注册会员   /  发表于:2018-4-27 14:06:28
板凳
KearneyKang 发表于 2018-4-27 14:00
您好!
可以把设计的报表模板样式发过来看看,我看看具体什么问题导致的。

版主,你好,麻烦看看附件。

本帖子中包含更多资源

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

x
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-4-27 14:43:02
地板
您好!
你是想实现下面这种效果是吧!

你遇到的问题主要是由于:
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 ) & ")"

本帖子中包含更多资源

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

x
回复 使用道具 举报
hbwh2002
注册会员   /  发表于:2018-4-27 15:15:29
5#
KearneyKang 发表于 2018-4-27 14:43
您好!
你是想实现下面这种效果是吧!

版主,您好。试了一下,报错了,麻烦再帮忙看看,谢谢。
另外,我需要的是多值输入的文本框。

本帖子中包含更多资源

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

x
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-4-27 15:31:53
6#
本帖最后由 KearneyKang 于 2018-4-27 15:47 编辑

您好这个其实就是一个分割,用Split()函数就可以实现。具体你参考如下:
输入文本: A0012,A0013,A0014,
SQL 语句端:="select  * from Test2  WHERE 业务编号 In ('" + Join(Split( Parameters!P1.Value , ","), "', '") + "')"


运行结果:

本帖子中包含更多资源

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

x
回复 使用道具 举报
hbwh2002
注册会员   /  发表于:2018-4-27 15:42:52
7#
KearneyKang 发表于 2018-4-27 15:31
文本框的这种形式我这边也需要在验证下。有结果了,我第一时间通知你

好的,谢谢。
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-4-27 15:57:24
8#
不客气
回复 使用道具 举报
KearneyKang讲师达人认证 悬赏达人认证
超级版主   /  发表于:2018-4-28 15:43:13
9#
数据库服务器实际执行SQL语句时,会把我们转换得到的、用逗号分隔的参数字符串,当成一个单一参数值,所以不可能查到数据。
请改一下数据集对话框中参数的表达式,不要JOIN。
另外,从Excel中拷贝出来的多个单元格内容之间,除了ASCII码10(换行)之外,还有ASCII码13(回车),因此需要把这个13去掉。所以,最后参数表达式应该是:
=Split(Replace([@hawblist], chr(13),""),chr(10))

本帖子中包含更多资源

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

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部