2016-08-26 109 views
1

我想要显示SSRS 2008 r2中来自数据集的值列表。我创建了一个数据集,用于从托运人编号参数中提取序列号列表。我可以得到S/N在报告上显示,但它们是以多个页面的列格式显示的。我试图把它们放在一个由逗号分隔的段落格式中。即 - s/n1,s/n2,s/n3,...我在这个网站上发现了一篇使用Join的文章,但我无法调整它为我工作。在ssrs 2008 r2中以段落格式显示报告中的字段r2

这里是我用拉的数据查询:

SELECT A.fserial 
FROM smsm2mdata.dbo.serial AS A 
JOIN shmast AS B ON B.fshipno = A.fshipno 
WHERE B.fshipno = @fshipno 

我把现场变成一个名单表矩阵上的报告

这之前,我可以发表该报告的最后一关... 帮帮我!

回答

0

Join()函数不起作用的原因可能是您将单个值传递给它而不是数组。如果您只是将该函数添加到新创建的Tablix中,会发生这种情况,因为它们通常设置为逐行显示数据,而不是按集合进行聚合。

您有几个不同的选项。一种是使用join()函数的查找函数。通常,查找会根据标准从数据集中检索值,但在这种情况下,您只需要一切。这样就可以使标准的东西,永远是真实的,比如1 = 1的前两个参数,在这个例子中:

=Join(LookupSet(1, 1, fields!fserial.Value,"YourDataSetName"),",") 

我相信公式甚至只是在一个文本框使用,如果你想。你也可以改变你的sql查询来产生段落形式的结果,这样你就不必在SSRS中做任何特殊的事情。这将使用有点深奥的SQL功能,但它是有用的知道这个特定的应用程序:

选择的东西((选择 '' + A.fserial FROM smsm2mdata.dbo.serial AS一 JOIN shmast为B ON B. fshipno = A.fshipno WHERE B.fshipno = @fshipno的XML路径( '') ),1,1, '')

我想你甚至可以与使用加入()函数没有逃脱LookupSet()函数,如果你正确分组并且已经从你的tablix中删除了细节部分。

+0

前两个选项都不起作用。经过研究,我确定LookupSet和Stuff函数适用于SQL 2016(不幸的是,使我想升级)。我尝试了第三个选项,但似乎无法让连接功能正常工作。不断抛出一个错误。 – ahartman

+0

第二个选项是纯粹的基于SQL的选项 - 你会改变你的查询。它不需要任何SSRS功能。第一个选项使用lookupset和join函数,这两个函数至少在2008r2之后都是ssrs。 – TPhe

+0

@ahartman如果您收到错误消息,显示您正在尝试的内容,然后显示您收到的错误可能有助于诊断问题。 – TPhe

相关问题