Reporting services 在SSRS中获取矩阵报告中文本框的值

Reporting services 在SSRS中获取矩阵报告中文本框的值,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我正在处理ssrs中的矩阵报告。 这是我在excel中提取的报告的示例屏幕截图 这份报告很简单。它显示了不同年份的数据(例如:截至2012年1月)。 这些年的净收入在数据库中定义,因此会相应地提取。问题在于其他子列。像“%Change”列一样 通过以下公式计算列值 %change = ((NetRevenue of The current year / NetRevenue of the last year) - 1) * 100 现在我要做的是解决这个问题,使用sql查询计算每个列的值,然

我正在处理ssrs中的矩阵报告。 这是我在excel中提取的报告的示例屏幕截图

这份报告很简单。它显示了不同年份的数据(例如:截至2012年1月)。 这些年的净收入在数据库中定义,因此会相应地提取。问题在于其他子列。像“%Change”列一样

通过以下公式计算列值

%change = ((NetRevenue of The current year / NetRevenue of the last year) - 1) * 100
现在我要做的是解决这个问题,使用sql查询计算每个列的值,然后将其直接绑定到控件

我的问题是,有没有更简单的方法来做到这一点。我的意思是,就像在表控件中一样,我可以使用

  ReportItems!Textbox1.Value 
是否有一种方法可以访问矩阵报告的动态列。比如访问不同年份的netRevenue值

如果问题需要进一步澄清,请询问


提前感谢。

我相信你唯一的问题就是如何获得去年的收入

在这种情况下,您需要在sql中计算过去几年的收入。然后使用:

=((RpItems!NetRev.Value / RpItems!NetRev_LastYr.Value) - 1) * 100
在这种情况下,您需要为要计算的百分比变化计算所有过去几年的值

我可以建议您研究一下这个问题,并用您目前拥有的sql提出另一个问题吗


我发现这样做效果最好。

谢谢你的回答,但如果我有多年的工作经验呢?如2009年至2012年,每个净收入%的变化都需要从上一年开始计算。通过使用sql查询计算后端的值,我成功地做到了这一点。我相信报告的项目!item.Value不适用于矩阵字段。如果我错了,请纠正我。再次感谢你的回答。对不起,我不知道你所说的矩阵域是什么意思。但是您所做的似乎已经是最好的了,尽管使用单个sql可能存在优化。聚合函数和数据范围必须有一些隐藏的处理。矩阵字段是指矩阵的文本框字段。就像在表控件中一样。似乎如果您多年来一直使用同一字段,那么您就不能:(但我的研究有限。祝你好运,我现在对你的结果很感兴趣。你需要我们使用
inscope
函数,哇,试试这个来详细了解。你需要为你的报告调整它……我现在就去…@askitsuhails感谢你对这个问题的兴趣。让我研究一下,我很快会在这里发布我的结果。)。