Reporting services SSRS 2008-如何将2个或更多年份参数链接到1

Reporting services SSRS 2008-如何将2个或更多年份参数链接到1,reporting-services,parameters,unique,mdx,ssrs-2008-r2,Reporting Services,Parameters,Unique,Mdx,Ssrs 2008 R2,经过一些研究,我发现混合参数是一个流行的话题,但我还没有找到一个解决这个特定情况的方法。简而言之,我有3个来自不同数据集的参数,都是同一年的数据,我想将它们(可视化地)混合到1中,以消除报告最终用户的冗余 在“参数属性”中的“可用值”中,所有值均取自数据集(隐藏),而“值字段”则取自相应的隐藏数据集 当我“显示隐藏数据集”并进入每个隐藏数据集的“文本模式”时,这些是3成员[Measures].[ParameterValue]作为: [Time].[Financial Year].CURRENTM

经过一些研究,我发现混合参数是一个流行的话题,但我还没有找到一个解决这个特定情况的方法。简而言之,我有3个来自不同数据集的参数,都是同一年的数据,我想将它们(可视化地)混合到1中,以消除报告最终用户的冗余

在“参数属性”中的“可用值”中,所有值均取自数据集(隐藏),而“值字段”则取自相应的隐藏数据集

当我“显示隐藏数据集”并进入每个隐藏数据集的“文本模式”时,这些是3
成员[Measures].[ParameterValue]作为

[Time].[Financial Year].CURRENTMEMBER.UNIQUENAME
[Financial Period].[FP - Year].CURRENTMEMBER.UNIQUENAME
[Time exit].[Financial Year Exit].CURRENTMEMBER.UNIQUENAME
当您查看该值时,它们具有以下输出(相应):

A.因此,在我看来,由于每个
[Year]
参数值的“根”不同,我需要在每个隐藏的数据集中创建一个数据集或一个成员,以替换此
[2017]
。这是“可行的”吗?如果是的话,还有关于如何做的指导吗

B.如果不是,另一个结果也是可以接受的:最终用户将需要生成大部分
本年度
本年度-1
。为了解决这个问题,我制作了一个与FP-Year内容相同的模板“Year”DS,并添加了以下成员:

Member [Measures].[Last Year] as 'YEAR(NOW())-1'
Member [Measures].[Current Year] as 'YEAR(NOW())'
我将它们插入到SELECT和Previed中,它显示了2017和2016年的两个新列。然后我去改变了PF Year参数的DS,value和label,得到了一个错误。有什么建议吗

有什么建议吗

EDIT1:我已经解决了B.并找到了解决方案,我只是为每个参数创建了以下两个默认值:

本年度:
=“[时间].[财政年度].&[“+CStr(年(现在()))+”]”

去年:
=“[时间][财政年度].&[”+CStr(年份(现在())-1)+“]”

然而,即使有了这个结果,我认为它将最大限度地减少最终用户的操作数量,我仍然希望显示1个参数,而不是3个

EDIT2&partial solution我为A找到了另一个解决方案。,这并不完全是我想要的,但它完成了工作

  • 创建了一个具有两个可用值的新年参数:
    [CurrentYear]
    [LastYear]
  • 对于每个其他参数的默认值,我相应地交换了2017年和2016年的
    CStr(Parameters!Year.Value(0))
    CStr(Parameters!Year.Value(1))
    。示例:
    =“[Year exit].[Financial Year exit].&[”+CStr(Parameters!Year.Value(0))+“]”
  • 在每个参数的选项中,我将它们设置为“隐藏”新年参数
  • 现在,我有一个1年参数,下拉列表显示
    当前年份
    去年
  • 尽管这缓解了问题,但是否会有类似的结果,但下拉菜单会显示实际年份?i、 e.这将是动态的,所以在未来几年,会有2018年、2019年等突然出现?这样,最终用户不仅可以比较当前和过去一年,还可以比较任何两年

    谢谢大家

    EDIT3这里是我目前所在位置的屏幕截图:

    EDIT4

    我找到了一个解决办法:因为我知道最终用户一次只能比较2年(因此每个参数有2个默认值),所以我在3个参数中保留了2个隐藏参数,对于2个隐藏参数,我更改了它们的默认值。 因此,我将
    @[财政年度]
    作为我的主要参数,其他参数具有以下默认值:

    @[FP-年]:

    =“[财政期间].[财政年度].[财政年度].&[“+CStr(参数!财政年度(0))+””
    =“[财政期间].[FP-年].[FP-年].&[“+CStr(参数!财政年度(1))+”]”

    @[财政年度退出]:

    =“[年度退出][财政年度退出]。&[“+CStr(参数!财政年度(0))+””
    =“[年度退出].[财政年度退出].&[“+CStr(参数!财政年度(1))+”]”

    瞧,结果是:

    我建议两种方法:

    1:SSRS:添加一个不可见参数(即CurrentYear),并在MDX查询中运行以下命令:

    StrToMember('[Time].[Financial Year].&[' +@CurrentYear + ']')
    
    2:MDX:为每个层次结构添加动态计算成员:

    member [Time].[Financial Year].[Current Year] as
    StrToMember('[Time].[Financial Year].&[' + Format(Now(),'yyyy') + ']')
    

    有关更多详细信息,请参阅。

    Dyakuyu Dan,我终于达到了我需要的结果(请参见EDIT4),但为了获得EDIT3,我认为您的方法在技术上更为正确。谢谢
    member [Time].[Financial Year].[Current Year] as
    StrToMember('[Time].[Financial Year].&[' + Format(Now(),'yyyy') + ']')