SSRS:在存储过程数据集中查找值以确定要显示的图形
SSRS: Find value in Stored procedure dataset to determine which graphic to display
它可能以前在某个地方得到过回答,但我对我正在尝试做的事情并不走运。
设置是我在 SQL 中的存储过程中有一个 SSRS (2015) 数据集。示例数据:
我正在尝试使用 table 的结果来确定显示哪个图形。该图形当前保存在一个单元格 table 中,该单元格链接到相关的存储过程。下面的示例代码附在table中的图形中:
=Switch
(Lookup(Fields!DatasetLong.Value, "d", Fields!CountOnsite.Value, "SQLProc")>0,"Asset2600x",
Lookup(Fields!DatasetLong.Value, "d", Fields!Count_0_50m.Value, "SQLProc")>0,"Asset7600x",
Lookup(Fields!DatasetLong.Value, "d", Fields!Count_50m_DataBuffer.Value, "SQLProc")>0,"Asset7600x",
true, "Asset4600x"
)
注意存储的Count*字段声明为Int。
不幸的是,这是失败的,即我可以故意更改参数以使某个查找失败但仍在触发,或者我可以让它与它查找的值完全匹配,它只会跳过该检查。
关于如何最好地解决这个问题有什么想法吗? TIA
我有点不确定这是如何工作的,但我认为您使用的查找不正确。
当前它在当前数据集中查找字段 DatasetLong 以匹配 d。我认为您想在 Lookupset 中搜索 d.
=Switch
(Lookup("d", Fields!DatasetLong.Value, Fields!CountOnsite.Value, "SQLProc") > 0,"Asset2600x",
Lookup("d", Fields!DatasetLong.Value, Fields!Count_0_50m.Value, "SQLProc") > 0,"Asset7600x",
Lookup("d", Fields!DatasetLong.Value, Fields!Count_50m_DataBuffer.Value, "SQLProc") > 0, "Asset7600x",
true, "Asset4600x"
)
它可能以前在某个地方得到过回答,但我对我正在尝试做的事情并不走运。
设置是我在 SQL 中的存储过程中有一个 SSRS (2015) 数据集。示例数据:
我正在尝试使用 table 的结果来确定显示哪个图形。该图形当前保存在一个单元格 table 中,该单元格链接到相关的存储过程。下面的示例代码附在table中的图形中:
=Switch
(Lookup(Fields!DatasetLong.Value, "d", Fields!CountOnsite.Value, "SQLProc")>0,"Asset2600x",
Lookup(Fields!DatasetLong.Value, "d", Fields!Count_0_50m.Value, "SQLProc")>0,"Asset7600x",
Lookup(Fields!DatasetLong.Value, "d", Fields!Count_50m_DataBuffer.Value, "SQLProc")>0,"Asset7600x",
true, "Asset4600x"
)
注意存储的Count*字段声明为Int。
不幸的是,这是失败的,即我可以故意更改参数以使某个查找失败但仍在触发,或者我可以让它与它查找的值完全匹配,它只会跳过该检查。
关于如何最好地解决这个问题有什么想法吗? TIA
我有点不确定这是如何工作的,但我认为您使用的查找不正确。
当前它在当前数据集中查找字段 DatasetLong 以匹配 d。我认为您想在 Lookupset 中搜索 d.
=Switch
(Lookup("d", Fields!DatasetLong.Value, Fields!CountOnsite.Value, "SQLProc") > 0,"Asset2600x",
Lookup("d", Fields!DatasetLong.Value, Fields!Count_0_50m.Value, "SQLProc") > 0,"Asset7600x",
Lookup("d", Fields!DatasetLong.Value, Fields!Count_50m_DataBuffer.Value, "SQLProc") > 0, "Asset7600x",
true, "Asset4600x"
)