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"
     )