在 s-s-rS 中,是不是可以在不使用 C# 的情况下从主 rdl 循环一个子报表 rdl?

Posted

技术标签:

【中文标题】在 s-s-rS 中,是不是可以在不使用 C# 的情况下从主 rdl 循环一个子报表 rdl?【英文标题】:In s-s-rS, is it possible to loop one subreport rdl from a master rdl without using C#?在 s-s-rS 中,是否可以在不使用 C# 的情况下从主 rdl 循环一个子报表 rdl? 【发布时间】:2013-02-27 11:38:14 【问题描述】:

我在使用母版页中的子报表时遇到问题。我的母版页有 4 个参数,其中一个参数会有所不同。

母版页内的一个子报表将采用 3 个不变的参数,而第 4 个参数将通过循环方式更改。输出将创建许多从 4 参数生成的报告。

如何从母版页创建一个循环,更改第 4 个参数的值,以使子报表运行的次数与第 4 个参数中的值一样多?

主要报告 (Main.rdl) 参数 小部件ID 区域ID 时间段ID

查询将获得不同的 StateID

子报表 (subreport.rdl) 参数 小部件ID 区域ID 时间段ID 状态ID

报告有 5 行标题,其中包含标题中的所有参数,包括第一个州名。详细信息行包含该状态内的所有小部件信息。

然后循环获取下一个StateID并像以前一样重复输出。

然后继续,直到所有的 StateID 都是进程。

我不能按状态分组,因为它必须在标题中。

听从多米尼克的建议,我试着按照他的指示去做。

Main.rdl

通过工具箱创建了一个表格,并将子报表放在第一个数据列中。

添加了 3 个参数

数据集输出

SubReport.rdl

添加了 3 个参数

数据集输出

当我预览 Main1.rdl 时,我得到第一行,然后是新页面。第二行,然后是新页面。

我想要的是更改州代码后的新页面。

【问题讨论】:

【参考方案1】:

您必须创建一个数据集,该数据集将根据您的参数返回行,然后将您的子报表包含在绑定到该数据集的表中。

【讨论】:

Dominic,让我试试看。我将对如何将表绑定到数据集进行一些研究。我是 s-s-rs 的新手。 Dominic,我附加了我的问题,包括你今天早上告诉我的内容。 我解决了新页面问题。现在我多次获得完整的数据集(5 个状态导致显示 5 个相同的数据集)。 我只是将子报表放在一个矩形中,现在数据集显示一次。我只需要弄清楚如何创建一个关于状态变化的新页面。整个数据集显示在一页上。按状态对子报表的组属性不起作用,我无法添加组,因为状态只能在标题中。【参考方案2】:

我遇到了同样的问题,并且在创建正确的数据集时遇到了一些麻烦,因为我一直在使用 MDX 来访问我的多维数据集。如果您使用 SQL,这无关紧要,但我之所以添加它,是因为很多男士都使用 MDX。 我最终做了什么:

-让我的参数及其数据集自动生成(MDX) - 制作我的 tablix 以放入我的子报表 - 将此 tablix 链接到参数的数据集 - 在 tablix 上放置一个过滤器:- ParameterValue "IN" "=Parameters!parameterName.Value"

请务必 - 使用“IN”而不是“=” - 在您的表达式中使用“=Parameters!SLASLANAME.Value”而不是“=Parameters!SLASLANAME.Value*(0)*”

【讨论】:

我最终使用了 Patrick LeBlanc 的示例。 bidn.com/blogs/PatrickLeBlanc/ssis/762/… 他的解决方案在电子表格选项卡和 Tablix 标题上给出了正确的代码,但是当我将 s-s-rS 报告导出到 Excel 时,电子表格选项卡具有正确的代码值,但 Tablix 标题对数据集集合中的第一个代码无效。我的解决方法是将代码值放在报告标题中,以便我可以使用 ReportItems![Field Name].Value。只需要一个 rdl 就可以给我正确的值,而且我从来不需要使用子报告。

以上是关于在 s-s-rS 中,是不是可以在不使用 C# 的情况下从主 rdl 循环一个子报表 rdl?的主要内容,如果未能解决你的问题,请参考以下文章

报告参数的日期时间格式问题,在 s-s-rS 报告 Web 服务中,而不是报告查看器控件

我可以在不抛出异常的情况下测试正则表达式在 C# 中是不是有效吗

s-s-rS 报告 - 从没有 s-s-rS 服务器的 C# 导出

如何使用 c# 在 asp.net 页面中部署或显示 s-s-rS 报告?

使用 C# 自定义代码从主报告 s-s-rS 调用子报告

使用 C# 代码从报表服务器下载 s-s-rS 报表