SSRS 表达式
SSRS Expression
我已经使用 Crystal 报告大约 2 年了,现在我正在尝试学习 SSRS,以便将我们的一些自定义报告转换为 SSRS。
在数据库中,我有一个名为 OpenToPublic 的列,它要么是 0 表示否,要么是 1 表示是。在 CR 中,我创建了一个公式,根据值在报告中显示 Y 或 N:
if {DriveMaster.OpenToPublic} then 'Y'
else 'N'
在 SSRS 中完成相同任务的最佳方法是什么?是表达式吗?
SSRS
中有 Expressions
可以设置计算并为您的字段设置值。 Here is more info.
现在,对于您的表达式,您可以执行以下操作(我假设您的 OpenToPublic
的数据类型是 Bool
),
= IIF(Fields!OpenToPublic.Value,"Y","N")
在要显示值的 cell
上设置此表达式。如果你想在 dataset
中添加计算字段,那么也可以这样做 Look here. 并为该字段设置相同的表达式。
通常让 SQL 服务器处理计算(通过在数据集中进行)而不是 SSRS 引擎(使用表达式)更快。因此,如果可能,请在您的数据集中创建一个附加字段。
修改现有数据集以添加新列的低列逻辑:
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")
我已经使用 Crystal 报告大约 2 年了,现在我正在尝试学习 SSRS,以便将我们的一些自定义报告转换为 SSRS。
在数据库中,我有一个名为 OpenToPublic 的列,它要么是 0 表示否,要么是 1 表示是。在 CR 中,我创建了一个公式,根据值在报告中显示 Y 或 N:
if {DriveMaster.OpenToPublic} then 'Y'
else 'N'
在 SSRS 中完成相同任务的最佳方法是什么?是表达式吗?
SSRS
中有 Expressions
可以设置计算并为您的字段设置值。 Here is more info.
现在,对于您的表达式,您可以执行以下操作(我假设您的 OpenToPublic
的数据类型是 Bool
),
= IIF(Fields!OpenToPublic.Value,"Y","N")
在要显示值的 cell
上设置此表达式。如果你想在 dataset
中添加计算字段,那么也可以这样做 Look here. 并为该字段设置相同的表达式。
通常让 SQL 服务器处理计算(通过在数据集中进行)而不是 SSRS 引擎(使用表达式)更快。因此,如果可能,请在您的数据集中创建一个附加字段。
修改现有数据集以添加新列的低列逻辑:
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")