由给定SET中每个成员的第一个CHILD组成的SET
编写了一个实现该功能的SSAS存储过程,
可以解决"每年中的第一个月形成的SET"之类的问题.
写得比较拙劣,请大家批评.
public static Microsoft.AnalysisServices.AdomdServer.Set FirstChildren(Microsoft.AnalysisServices.AdomdServer.Set set)
{
if (1 != set.Hierarchies.Count)
{
return null;
}
Microsoft.AnalysisServices.AdomdServer.SetBuilder setBuilder =
new Microsoft.AnalysisServices.AdomdServer.SetBuilder();
foreach (Microsoft.AnalysisServices.AdomdServer.Tuple tuple in set.Tuples)
{
Microsoft.AnalysisServices.AdomdServer.Member member = null;
Microsoft.AnalysisServices.AdomdServer.Expression getFirstChild = null;
Microsoft.AnalysisServices.AdomdServer.Member firstChild = null;
member = tuple.Members[0];
getFirstChild = new Microsoft.AnalysisServices.AdomdServer.Expression();
getFirstChild.ExpressionText = member.UniqueName + ".firstchild";
firstChild = getFirstChild.CalculateMdxObject(null).ToMember();
if (string.Empty == firstChild.UniqueName)
{
continue;
}
Microsoft.AnalysisServices.AdomdServer.TupleBuilder tupleBuilder =
new Microsoft.AnalysisServices.AdomdServer.TupleBuilder();
tupleBuilder.Add(firstChild);
setBuilder.Add(tupleBuilder.ToTuple());
}
return setBuilder.ToSet();
}