//internal static string GetSortExpr(PerformMemberActionArgs args)
        //{
        //  List<string> sortExpr = new List<string>();

        //  string lasthier = args.Member.HierarchyUniqueName;
        //  for (int i = 0; i < args.Ascendants.Count; i++)
        //  {
        //    var member = args.Ascendants[i];

        //    if (lasthier != member.HierarchyUniqueName)
        //    {
        //      lasthier = member.HierarchyUniqueName;
        //      sortExpr.Insert(0, member.UniqueName);
        //    }
        //  }
        //  sortExpr.Add(args.Member.UniqueName);
        //  return "("+string.Join(",",sortExpr.ToArray())+")";
        //}
        internal void SortByValue(PerformMemberActionArgs args)
        {
            var tuple        = args.Member.GetAxisTuple();
            var measuresSort = MeasuresSort as SortByValueDescriptor;

            if (measuresSort == null)
            {
                measuresSort       = new SortByValueDescriptor();
                measuresSort.Tuple = tuple;
                MeasuresSort       = measuresSort;
            }
            else if (!measuresSort.CompareByTuple(tuple))
            {
                measuresSort.Tuple = tuple;
                measuresSort.Type  = SortTypes.None;
            }

            if (MeasuresSort.Type == SortTypes.None)
            {
                MeasuresSort.Type = SortTypes.Ascending;
            }
            else if (MeasuresSort.Type == SortTypes.Ascending)
            {
                MeasuresSort.Type = SortTypes.Descending;
            }
            else if (MeasuresSort.Type == SortTypes.Descending)
            {
                MeasuresSort.Type = SortTypes.None;
            }
        }
Beispiel #2
0
        void InitializeTuple(SortByValueDescriptor sortDescriptor)
        {
            var tuple = new List <TupleItem>();

            if (sortDescriptor != null)
            {
                tuple = new List <TupleItem>();
                foreach (var item in sortDescriptor.Tuple)
                {
                    var tuple_item = new TupleItem()
                    {
                        HierarchyUniqueName = item.Key, MemberUniqueName = item.Value
                    };
                    tuple.Add(tuple_item);
                }

                // Если меры в тапле нет, то добавляем ее искусственно
                if (!sortDescriptor.Tuple.ContainsKey("[Measures]"))
                {
                    var tuple_item = new TupleItem()
                    {
                        HierarchyUniqueName = "[Measures]", MemberUniqueName = sortDescriptor.MeasureUniqueName, IsReadOnly = false, IsCustom = true
                    };
                    tuple.Add(tuple_item);
                }
            }

            tupleControl.Initialize(tuple);
        }
        void InitializeTuple(SortByValueDescriptor sortDescriptor)
        {
            var tuple = new List<TupleItem>();
            if (sortDescriptor != null)
            {
                tuple = new List<TupleItem>();
                foreach (var item in sortDescriptor.Tuple)
                {
                    var tuple_item = new TupleItem() { HierarchyUniqueName = item.Key, MemberUniqueName = item.Value };
                    tuple.Add(tuple_item);
                }
                
                // Если меры в тапле нет, то добавляем ее искусственно
                if (!sortDescriptor.Tuple.ContainsKey("[Measures]"))
                {
                    var tuple_item = new TupleItem() { HierarchyUniqueName = "[Measures]", MemberUniqueName = sortDescriptor.MeasureUniqueName,  IsReadOnly = false, IsCustom = true };
                    tuple.Add(tuple_item);
                }
            }

            tupleControl.Initialize(tuple);
        }