在SSRS表达式中使用where子句

时间:2016-08-25 09:36:04

标签: sql-server reporting-services plot where

我有一个包含多行的数据集。列为nameplot; plot是二进制图像文件。例如,如果我想显示namesecondPlot的地块,我该怎么做?我可以使用=First(Fields!plot.Value, "DataSet1")显示第一个图,但是在检索具有特定plot值的name时没有任何好运。

我发现IIf是否正常运作但不确定其使用情况,或者它是否真的是我正在寻找的东西。 =First(IIF(Fields!name.Value = "secondPlot", Fields.plot.Value, Nothing))会出现错误"报告的定义' / MainReport'是无效的",例如。

为了澄清,我在Insert> Image>数据库来源中输入了这个。

1 个答案:

答案 0 :(得分:0)

将tablix组件添加到报表中,然后将数据集分配到DataSetName属性中的Tablix。

删除只留下文本框的列和行。在Tablix中右键单击并选择Tablix properties...转到过滤器选项卡并添加新过滤器。

enter image description here

对于表达式选择Name,运算符=,值使用="secondPlot"

Tablix将过滤包含secondPlot名称的行,您可以通过在“填充”选项卡中配置背景图像属性,在Tablix文本框中显示图像。

右键单击文本框并选择Textbox properties /填充选项卡,在背景图像窗格中使用此类设置。

enter image description here

<强>更新

如果您的图片是PNG,BMP,JPEG,GIF或X-PNG,则可以选择正确的MIME类型。

此外,如果您的图像是在Base64中编码的,您可以尝试:

=System.Convert.FromBase64String(Fields!Plot.Value)

Use this field:表达式中。

不要对文本框使用任何表达式。只需使用图像字段作为文本框背景。

如果您需要进一步的帮助,请告诉我。