您好,我正在尝试使用多个datasets
构建SSRS报告。该报告涉及酒店详细信息,例如酒店ID,名称,城市,网站链接和酒店特定详细信息。下面是数据集的屏幕截图:
BackupReport
包含酒店ID,名称,城市等,而BackupSubReport
包含其他酒店特定的元数据。
下面是我的报告设计版式:
现在,当我预览报告时,我首先获得所有酒店的酒店ID,名称和城市,然后获得所有酒店的酒店链接,最后是如下所示的酒店元数据:
实际报告应如下所示:
关于如何解决该问题的任何想法。我是SSRS的新手,所以对所有设计细节都不怎么熟悉。我检查了这篇文章here,但这是关于特定功能的。我了解了lookup
和multilookup
函数,但不确定如何在此处应用它们来解决问题?
任何评论都会有所帮助。
答案 0 :(得分:0)
好吧,您希望得到的结果通常是SSRS的子报表,您在主报表中拥有所有酒店ID,并且如果您单击一个ID,则会转到带有详细数据的子报表(如您的图片)。
在SSRS中,通常一排中有一个酒店ID的所有数据。如果有两个数据集,则将数据与Lookup()
合并。将Tablix放入报表中,并在前两个文本框中添加数据集Hotel ID
中的字段Vendor Name
和BackupReport
:
'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"
)
以此类推...这样一来,您就可以在一个文本框中获取所有信息,并且由于它位于详细信息部分,因此每一行都会自动重复该信息。