大家好,我的问题是:我正在尝试创建一个作用域函数,它根据日期、货币和指定的汇率来计算汇率。
我让它工作得很好,但在我的作用域函数中,我想说-如果Dimension.Attribute.member = "Latest“,则使用FXRate 1,否则使用FXRate 2。
现在我甚至有了那个“工作”。但只有当成员在我的数据集中时才有效...也就是说,我不能将其用作参数\过滤器。我不想告诉用户“你总是必须在每个报告中都有LatestFlag……只需隐藏列”我想让用户在开始分析数据之前能够设置报告参数。
下面是我目前为止的代码片段: Scope ({ Measures.Amount} );
作用域( Leaves(ExchangeDate),Reporting Currency.USD,Leaves(Currency));
作用域({ Measures.Amount});
This = iif( Latest Flag.Flag.CURRENTMEMBER.name =“是”,报告Currency.Local / Measures.Rate2,报告Currency.Local / Measures.Rate );
结束范围;
结束范围;结束范围;
我怀疑我需要使用另一个作用域而不是iif --但我不确定如何实现。有什么想法吗?
哦,注意这一点可能很重要。FXRate表有两个费率。价格每天更新。对于每种货币,每天都会重复Rate2。因此,与日期无关的是,Rate2永远是该货币的最新汇率。LatestFlag维度只是一个包含yes和no的表,与任何其他表没有任何关系。我只是把它当做过滤器使用。
FX表上也有一个标志--但我不会使用这个,因为如果不是最新汇率,我需要考虑日期。
发布于 2011-02-21 21:12:29
我的解决方案在以下链接中得到了解决。
http://social.msdn.microsoft.com/Forums/en/sqlanalysisservices/thread/cb5ec22b-65c0-4b86-9879-40e42c039808
https://stackoverflow.com/questions/5064258
复制相似问题