我已经使用了大约两年的水晶报告,现在我正在尝试学习SSRS,以便将我们的一些自定义报告转换为SSRS。
在DB中,我有一个名为OpenToPublic的列,它要么是0表示No,要么是1表示是。在CR中,我创建了一个公式,根据值在报表上显示Y或N:
if {DriveMaster.OpenToPublic} then 'Y'
else 'N'在SSRS中完成相同任务的最佳方法是什么?是一种表达吗?
发布于 2015-01-22 11:49:57
让SQL Server处理计算(通过在dataset中进行计算)通常比让SSRS引擎(使用表达式)更快。因此,如果可能的话,可以在dataset中创建一个附加字段。
修改现有数据集,为新列添加lew列逻辑:
SELECT CASE WHEN OpenToPublic = 1 THEN 'Y' ELSE 'N' END AS DisplayCol
FROM dbo.DriveMaster 然后,只需像Fields!OpenToPublic.Value一样显示列。您甚至可以添加进一步的格式,以根据值更改单元格的颜色(例如,如果Y,然后绿色其他红色)。
要重申,如果绝对需要,请选择表达式(例如格式、可见性等)。
一种比较慢的方法是使用表达式。IIF和Switch都可以完成您的工作。下面的任何一种表达式都可以工作。
=IIF(Fields!OpenToPublic.Value = 1, "Y", "N")
=Switch(Fields!OpenToPublic.Value, 1, "Y", Fields!OpenToPublic.Value, 0, "N")
https://stackoverflow.com/questions/28075946
复制相似问题