从多个数据集构建SSRS报告

时间:2018-12-19 17:45:50

标签: reporting-services dataset ssrs-2012

您好,我正在尝试使用多个datasets构建SSRS报告。该报告涉及酒店详细信息,例如酒店ID,名称,城市,网站链接和酒店特定详细信息。下面是数据集的屏幕截图:

enter image description here

BackupReport包含酒店ID,名称,城市等,而BackupSubReport包含其他酒店特定的元数据。

下面是我的报告设计版式:

enter image description here

现在,当我预览报告时,我首先获得所有酒店的酒店ID,名称和城市,然后获得所有酒店的酒店链接,最后是如下所示的酒店元数据:

enter image description here enter image description here enter image description here

实际报告应如下所示:

enter image description here

关于如何解决该问题的任何想法。我是SSRS的新手,所以对所有设计细节都不怎么熟悉。我检查了这篇文章here,但这是关于特定功能的。我了解了lookupmultilookup函数,但不确定如何在此处应用它们来解决问题?

任何评论都会有所帮助。

1 个答案:

答案 0 :(得分:0)

好吧,您希望得到的结果通常是SSRS的子报表,您在主报表中拥有所有酒店ID,并且如果您单击一个ID,则会转到带有详细数据的子报表(如您的图片)。

在SSRS中,通常一排中有一个酒店ID的所有数据。如果有两个数据集,则将数据与Lookup()合并。将Tablix放入报表中,并在前两个文本框中添加数据集Hotel ID中的字段Vendor NameBackupReport

'Data from DataSet1
| APA-HotelParsing_HotelID | VendorName |

'Data from DataSet1 combined with DataSet2
| APA-HotelParsing_HotelID | VendorName | GoogleValue |

要获取Google Value,请在第三个文本框中输入以下表达式:

=Lookup(Fields!APA-HotelParsing_HotelID.Value, Fields!APA-HotelParsing_HotelID.Value, Fields!GoogleValue.Value, "BackupSubReport")

再次应用查找步骤,并将所有数据放在一行中。

如果您不想使用子报表,而只是像显示图片那样显示数据,则可以采取一种解决方法,并将所有数据放在一个文本框中。因此,它看起来像是您的图案。您必须在tablix详细信息文本框中编写如下表达式:

="Hotel ID: " & Fields!APA-HotelParsing_HotelID.Value & Space(10) & 
 "AA Hotel Name: " & Fields!VendorName.Value & Space(10) & 
 "City Code: " & Fields!CityCode.Value & VbNewLine & 
 Lookup(Fields!APA-HotelParsing_HotelID.Value, 
        Fields!APA-HotelParsing_HotelID.Value, 
        Fields!GoogleValue.Value, "BackupSubReport"
        )

以此类推...这样一来,您就可以在一个文本框中获取所有信息,并且由于它位于详细信息部分,因此每一行都会自动重复该信息。