2

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

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

if {DriveMaster.OpenToPublic} then 'Y'
else 'N'

在 SSRS 中完成同样事情的最佳方法是什么?是表达吗?

4

2 回答 2

1

可以设置计算并为您的字段设置值Expressions这里有更多信息。SSRS

现在对于您的表达式,您可以执行以下操作(我假设您的数据类型OpenToPublicis Bool),

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

将此表达式设置在cell要在其中显示值的位置。如果您想在其中添加计算字段,dataset也可以在此处查看。并为该字段设置相同的表达式。

于 2015-01-22T05:46:57.437 回答
0

让 SQL Server 处理计算(通过在数据集中进行计算)而不是 SSRS 引擎(使用表达式)通常更快。因此,如果可能,请在数据集中创建一个附加字段。

修改现有数据集以为新列添加 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")

于 2015-01-22T11:49:57.930 回答