首页
学习
活动
专区
圈层
工具
发布

SSRS表达
EN

Stack Overflow用户
提问于 2015-01-21 20:08:49
回答 2查看 455关注 0票数 2

我已经使用了大约两年的水晶报告,现在我正在尝试学习SSRS,以便将我们的一些自定义报告转换为SSRS。

在DB中,我有一个名为OpenToPublic的列,它要么是0表示No,要么是1表示是。在CR中,我创建了一个公式,根据值在报表上显示Y或N:

代码语言:javascript
复制
if {DriveMaster.OpenToPublic} then 'Y'
else 'N'

在SSRS中完成相同任务的最佳方法是什么?是一种表达吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-22 11:49:57

让SQL Server处理计算(通过在dataset中进行计算)通常比让SSRS引擎(使用表达式)更快。因此,如果可能的话,可以在dataset中创建一个附加字段。

修改现有数据集,为新列添加lew列逻辑:

代码语言:javascript
复制
SELECT CASE WHEN OpenToPublic = 1 THEN 'Y' ELSE 'N' END AS DisplayCol
FROM dbo.DriveMaster 

然后,只需像Fields!OpenToPublic.Value一样显示列。您甚至可以添加进一步的格式,以根据值更改单元格的颜色(例如,如果Y,然后绿色其他红色)。

要重申,如果绝对需要,请选择表达式(例如格式、可见性等)。

一种比较慢的方法是使用表达式。IIFSwitch都可以完成您的工作。下面的任何一种表达式都可以工作。

=IIF(Fields!OpenToPublic.Value = 1, "Y", "N")

=Switch(Fields!OpenToPublic.Value, 1, "Y", Fields!OpenToPublic.Value, 0, "N")

票数 0
EN

Stack Overflow用户

发布于 2015-01-22 05:46:57

Expressions中有SSRS来设置计算并将值设置为您的字段。这是更多的信息。

现在,对于您的表达式,您可以这样做(我假设您的OpenToPublic的数据类型是Bool),

代码语言:javascript
复制
= IIF(Fields!OpenToPublic.Value,"Y","N")

在要在其中显示值的cell上设置此表达式。如果您想在dataset中添加计算的字段,那么也可以执行看这儿。,并为该字段设置相同的表达式。

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

https://stackoverflow.com/questions/28075946

复制
相关文章

相似问题

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