开箱即用的 SSRS 报告不能在页眉中公开数据。有没有办法让这些数据显示出来?
7 回答
我想要在我的报告中做的一件事是为我的报告提供漂亮的标题。我喜欢有一个徽标和用户的报告参数以及其他数据来显示,以便为报告需要澄清的业务需求提供更多信息。Microsoft SQL Server 2005 Reporting Services 本身不能做的一件事是在标题中显示来自数据集的数据。这篇文章将解释如何解决这个问题以及它是多么容易。
在商业智能项目部分创建报表服务器项目并将其命名为 AdventureWorksLTReports。我使用 CodePlex 的 AdventureWorksLT 示例数据库。
替代文字 http://www.cloudsocket.com/images/image-thumb.png
接下来,通过在设计器的报告区域中单击鼠标右键来显示页眉。
替代文字 http://www.cloudsocket.com/images/image-thumb1.png
将出现页眉。如果要显示页脚,可以从与页眉相同的菜单访问。
替代文字 http://www.cloudsocket.com/images/image-thumb2.png
我创建了一个存储过程,该过程返回要在页眉中显示的销售订单的数据。我将在页眉中显示有关销售订单的以下信息:
- 订购日期
- 销售订单号
- 公司
- 销售人员
- 到期总额
我为页眉中的每个数据字段创建了一个文本框,并为相应的标签创建了一个文本框。不要更改您希望销售订单数据包含在其中的文本框中的表达式。
替代文字 http://www.cloudsocket.com/images/image-thumb3.png
在报表正文中,为页眉中所需的每个数据字段放置一个文本框。在每个文本框的可见性中,为隐藏选择 True。这将是页眉中所需数据的占位符。
替代文字 http://www.cloudsocket.com/images/image-thumb4.png
您的报告应该类似于下面显示的屏幕截图。
替代文字 http://www.cloudsocket.com/images/image-thumb5.png
最后一步也是最重要的一步是在位于页眉的文本框中引用隐藏文本框。我们使用以下表达式来引用所需的文本框:
=ReportItems!.Value
您的报告现在应该类似于以下内容:
替代文字 http://www.cloudsocket.com/images/image-thumb6.png
您的报告预览现在应该在报告标题中包含销售订单标题数据。
你必须通过参数来做到这一点。为要显示的每条数据添加一个参数,然后将参数设置为隐藏。然后将默认值设置为“来自查询”并将数据集和值字段设置为适当的值。
我认为最好的选择是创建一个内部参数,默认值是您要显示的数据集的字段。
以下是两种可能的解决方法:
您可以将数据绑定字段作为隐藏文本框放置在报表正文中,然后在标题中放置另一个文本框,其值指向隐藏在正文中的那个。
尝试使用报表参数来存储数据,并使用这些参数来访问标题中的数据。
如果您的报告跨越多个页面,则此技术将不起作用,而是使用查询参数,并将文本框值设置为 =Parameters!Name.Value 根据本文。
我和猎户座阿德里安在这里。报告参数是要走的路。
我想在标题中显示一个所有返回行共有的字段,对于这种情况,我选择了链接表解决方案(在正文中放置一个包含该字段的表,并将标题中的文本框链接到该表)。
我这样做是因为如果您使用参数解决方案并且没有数据返回到相关字段,则会显示文本“参数缺少值”,而不仅仅是一个空白表。我认为此文本会使用户感到困惑(因为该参数甚至不可见)。