我有以下Mdx代码
Scope (
{[Dim PNL].[PNL].&[88]}
,[Measures].members
);
this = iif( aggregate([Dim PNL].[PNL].&[12],[Measures].currentmember)<>0,
aggregate([Dim PNL].[PNL].&[60],[Measures].currentmember)
/(-1* aggregate([Dim PNL].[PNL].&[12],[Measures].currentmember)),null
);
End Scope;
我尝试使用C#代码中的MDX ADOMD命令来修复它。有什么建议吗?
答案 0 :(得分:1)
您无法通过ADOMD更改多维数据集结构,但可以使用AMO。但是,您必须自己对计算脚本进行所有解析,因为您可以访问的是包含完整计算脚本的一个大字符串。
假设您有一个名为cube
的AMO Cube对象,您可以通过
cube.DefaultMdxScript.Commands[0].Text
完成更改后,您应该致电
cube.Update()
将更改写回正在运行的多维数据集。
如您所见,从技术上讲,多维数据集中可以有多个计算脚本。但BIDS将所有这些组合在一起阅读(至少我认为是这样),在写作时,BIDS再次将所有内容写入第一个脚本。