首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >移除破折号时传递SSRS中的参数

移除破折号时传递SSRS中的参数
EN

Stack Overflow用户
提问于 2022-01-26 12:38:15
回答 2查看 150关注 0票数 2

我在SSRS报告中传递一个唯一的ID作为参数。在源表中,唯一id不包含虚线。但是,用户可以插入包含破折号"-“的唯一ID,并且在某些情况下没有破折号。有没有办法从参数中删除破折号。

例如,唯一的id 3120-20268-8存储在表3120202688中.如果用户在SSRS报告中使用或不带破折号传递多个值,我将如何检索。

当在下面的查询中使用时,它只给出单个值的记录。但是,如果提供了多个值,则会出现错误。

从Unique_ID in的表中选择*(替换(@Unique_ID,'-',''))

对于一个以上的值,它会给出下面提到的错误:

替换函数需要3个参数。

数据集“ATL_List”查询执行失败。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-26 13:54:45

这方面最简单的机制之一是创建一个基于表达式的参数来保存经过清理的输入。该参数将被隐藏,因此用户不知道它,但是参数的其余用法是相同的。

注意:您可以使用基于查询的默认值执行类似的操作,但是通过简单的表达式可以更容易地完成此操作

单值参数

创建一个新参数:

  • 将其设置为隐藏的

  • 设置默认值表达式:

=Str(inputID.Value!参数).Replace(“-”,"")

多值参数

这只是稍微复杂一些,在表达式中,我们可以将选定的值一起连接到CSV字符串中,然后处理该值,然后将其拆分回来:

  • 将参数设置为多值,但仍然隐藏:

  • 设置默认值表达式:

=联接(参数!inputID.Value,",").Replace("-","").Split(",")

不需要详细说明,如果我们使清理后的参数暂时可见,只是为了演示转换,它应该如下所示:

参数必须隐藏!

注意:不像部署报告中的屏幕快照那样使您的净化参数可见!这样做意味着它不会在第一次呈现输入值之后拾取对输入值所做的更改。

请记住,我们已经利用了默认的值,我们没有任意地定义en表达式来始终执行。

隐藏参数时的输出是在报表呈现时计算出来的,因此很难在这个静态文章中可视化该行为:

在您的DataSet查询中,您只需使用已清理的参数:

代码语言:javascript
运行
复制
SELECT * FROM Table WHERE Unique_ID IN (@sanitisedMultiValue)
票数 4
EN

Stack Overflow用户

发布于 2022-01-26 12:43:47

您应该能够在输入参数值后使用报表中的替换函数来格式化参数值,如下所示

替换(Fields!Paramater.Value,"-","")=FieldinYourTable

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70863539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档