首页 > 解决方案 > 如何根据 SQL Server 报表生成器中的 db 值将多个图像添加到表格单元格

问题描述

我们正在使用MS Sql Server Reporting Services创建报告。在表格单元格中,我试图显示图标而不是值。

在此处输入图像描述

此图显示了“已解决的可持续发展目标”的值。该单元格可以保存 0 到 17 个值。我们要显示值对应的图标。我似乎无法弄清楚如何将多个图像添加到一个单元格中,以及如何将“6 Clean Water and Sanitation”等值转换为“ID6_Clean_Water_and_Sanitation.jpg”。

有人可以帮忙吗?谢谢

标签: ssrs-2012

解决方案


我相当确定您不能向 tablix 单元格添加多个图像,但您可以添加 17 个小单元格,然后将每个单元格设置为显示图像。

在下面的示例中,我添加了 5 个图像,分别称为啤酒、葡萄酒、软饮料、烈酒和能量,这些是嵌入的 PNG,但如果需要,您可以轻松地对其进行调整以形成 PNG 的完整文件路径。

我首先添加了一个数据集,如下所示。

DECLARE @t TABLE(ID int, CSVs varchar(100))

INSERT INTO @t VALUES
(1, 'beer,wine,soft,sports,energy'),
(2, 'beer,wine,energy,sports'),
(3, 'energy,sports,soft')

SELECT * FROM @t

如您所见,数据集仅返回带有 ID 和逗号分隔的单词列表的记录,为简单起见,这些单词与图像文件名匹配。

然后我添加了一个包含 7 列的 tablix ......

1. ID
2. CSVs
3 - 7 for each image placeholder

我将图像插入到第 3 - 7 列的每个单元格中

设计看起来像这样

在此处输入图像描述

图像属性设置为如下表达式

=Split(Fields!CSVs.Value,",").GetValue(0) -- first image
=Split(Fields!CSVs.Value,",").GetValue(1) -- second image
etc..

上面的表达式只是拆分 CSV 列表并选择指定的索引。

我将图像类型设置为嵌入,但正如我所说,如果它们存储在网络上,您可以对其进行调整以生成图像的文件/路径。

在此处输入图像描述

最终输出如下所示。

在此处输入图像描述

如您所见,存在问题,当 CSVs 列不包含完整的值集时,图像查找会中断并显示交叉,但是您可以通过测试值并相应地设置隐藏属性来解决此问题,但希望这会给您足够开始了。


推荐阅读