微软BI开拓者

首页 » 多维分析专区 » SSAS二次开发 » 由给定SET中每个成员的第一个CHILD组成的SET
Administrator - 2007-10-31 15:41:00
由给定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();
        }


1
查看完整版本: 由给定SET中每个成员的第一个CHILD组成的SET