Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services SSRS(Winforms-RDLC)2016。基于行数据控制页脚内容_Reporting Services_Rdlc - Fatal编程技术网

Reporting services SSRS(Winforms-RDLC)2016。基于行数据控制页脚内容

Reporting services SSRS(Winforms-RDLC)2016。基于行数据控制页脚内容,reporting-services,rdlc,Reporting Services,Rdlc,我们使用ReportViewer控件在Windows应用程序中托管和生成报表 该报告是一个.rdlc(实际上有几个带有子报告),并在本地运行 我需要对页脚中的内容进行额外的控制,现在需要页脚来显示最少的图表数据,这对报告的部分很敏感 我知道我不能在页脚中放置图表,尽管这没有问题,因为我可以提前生成页脚所需的图像,但是我仍然需要一种方法将正确的图像链接到页脚中 有一些全局页面,它们都包含相同的页脚图像和全局页码。这些组成了前几页和最后几页。所以基本上这些都很好 在报告的中间也有一些动态报表部分,这

我们使用ReportViewer控件在Windows应用程序中托管和生成报表

该报告是一个.rdlc(实际上有几个带有子报告),并在本地运行

我需要对页脚中的内容进行额外的控制,现在需要页脚来显示最少的图表数据,这对报告的部分很敏感

我知道我不能在页脚中放置图表,尽管这没有问题,因为我可以提前生成页脚所需的图像,但是我仍然需要一种方法将正确的图像链接到页脚中

有一些全局页面,它们都包含相同的页脚图像和全局页码。这些组成了前几页和最后几页。所以基本上这些都很好

在报告的中间也有一些动态报表部分,这些是TabLIX中的一系列子报表,每个区段可以跨越多个页面,将有一个特定的报表页脚,由当前数据集的数据集行键设置。Tablix将此id作为参数传递给子报表,因此我想到可以使用函数,而不是直接设置参数

这里的想法是更新代码中的全局变量,该变量可以在页脚中访问,从而为任何图像路径提供动态元素

public shared dim HeaderIndex as Int32 = 0

Public Function HeaderPassThrough(ByVal index As Int32) As Int32 
  HeaderIndex = index
  Return index
End Function
您可能已经知道它不起作用,每当页脚查询Code.HeaderIndex的值时,它就是要处理的最后一个部分的值。因此,页脚在报告正文之后生成

我无法提前合理地知道页码,1个部分可能会流向一个页面,另外20个部分,因此我生成的任何自定义内容都将基于该标题索引生成,而不是页码

然后我想有没有一种方法可以将页码输入到页面中,因为在本例中,可以存储一个页码/HeaderIndex数组,然后由页脚引用。当然,报告正文中没有全局页码


我很想听到一些想法,比如如何根据报表数据动态控制页脚内容。

解决方案并不明显

我在包含子报告的Tablix中添加了一个文本框,并将该文本框的值设置为我需要的数据键,我将其命名为
HeaderIndex

然后可通过
ReportItems在页脚中引用此值!标题索引值

但是,这只是解决方案的一部分,因为该值将仅填充在子报表的第一页上

因此,我在报告代码部分添加了以下函数:

public shared dim LastHeaderIndex as Int32 = 0

Public Function HeaderPassThrough(ByVal index As String) As String
  If Index = "" Then
      Return LastHeaderIndex.ToString()
  Else
      LastHeaderIndex = Integer.Parse(index)
  End IF  
  Return index
End Function
因此,现在我可以在呈现报告之前生成页脚图像,并将它们保存在通过HeaderIndex键入的文件系统中

然后,页脚中每个图像的路径可以是包含以下内容的表达式(该表达式提供页脚所在的节标识符):

=Code.HeaderPassThrough(ReportItems!HeaderIndex.Value)