Ejemplo n.º 1
0
        void RefreshMetadataTree()
        {
            List <CalcMemberInfo> members = new List <CalcMemberInfo>();

            foreach (CalculationInfoBase info in Members.Values)
            {
                CalcMemberInfo memberInfo = info as CalcMemberInfo;
                if (memberInfo != null)
                {
                    members.Add(memberInfo);
                }
            }

            List <CalculatedNamedSetInfo> sets = new List <CalculatedNamedSetInfo>();

            foreach (CalculationInfoBase info in Sets.Values)
            {
                CalculatedNamedSetInfo setInfo = info as CalculatedNamedSetInfo;
                if (setInfo != null)
                {
                    sets.Add(setInfo);
                }
            }

            CubeBrowser.CalculatedMembers   = members;
            CubeBrowser.CalculatedNamedSets = sets;
        }
Ejemplo n.º 2
0
        void m_DeleteCalcMemberButton_Click(object sender, RoutedEventArgs e)
        {
            if (MessageBox.Show(Localization.DeleteCurrent_Question, Localization.Warning, MessageBoxButton.OKCancel) == MessageBoxResult.OK)
            {
                CalcMemberInfo memberInfo = MembersList.CurrentObject as CalcMemberInfo;
                if (memberInfo != null)
                {
                    Members.Remove(memberInfo.Name);
                    MembersList.RemoveItem(memberInfo);
                }
                else
                {
                    CalculatedNamedSetInfo setInfo = MembersList.CurrentObject as CalculatedNamedSetInfo;
                    if (setInfo != null)
                    {
                        Sets.Remove(setInfo.Name);
                        MembersList.RemoveItem(setInfo);
                    }
                }

                m_ClearButton.IsEnabled = (Members.Count + Sets.Count) > 0;
                RefreshMetadataTree();
            }
            return;
        }
        public CalculatedMemberTreeNode(CalcMemberInfo info)
        {
            if (info == null)
                throw new ArgumentNullException("info");

            Icon = UriResources.Images.CustomMeasure16;
            Text = info.Name;
            m_Info = info;
        }
        public override object Clone()
        {
            CalcMemberInfo ret = new CalcMemberInfo();

            ret.Name         = Name;
            ret.Expression   = Expression;
            ret.FormatString = FormatString;
            ret.BackColor    = BackColor;
            ret.ForeColor    = ForeColor;

            foreach (var item in NonEmptyBehavior)
            {
                ret.NonEmptyBehavior.Add(item);
            }
            return(ret);
        }
Ejemplo n.º 5
0
        void m_AddCalcMemberButton_Click(object sender, RoutedEventArgs e)
        {
            CalcMemberInfo info = new CalcMemberInfo();

            // Если по выбранному узлу можем определить иерархию, то уникальное имя иерархии добавляем в имя вычисляемого элемента
            // В этом случае элемент попадет в данную иерархию
            // В противном случае - в иерархию [Measures] даже если она явно не прописана в имени
            String name_prefix = String.Empty;
            var    hierarchy   = CubeBrowser.SelectedNode as HierarchyTreeNode;

            if (hierarchy != null)
            {
                if (hierarchy.Info != null && hierarchy.Info is HierarchyInfo)
                {
                    name_prefix = ((HierarchyInfo)hierarchy.Info).UniqueName;
                }
            }
            var level = CubeBrowser.SelectedNode as LevelTreeNode;

            if (level != null)
            {
                if (level.Info != null && level.Info is LevelInfo)
                {
                    name_prefix = ((LevelInfo)level.Info).ParentHirerachyId;
                }
            }
            var member = CubeBrowser.SelectedNode as MemberLiteTreeNode;

            if (member != null)
            {
                if (member.Info != null)
                {
                    name_prefix = member.Info.HierarchyUniqueName;
                }
            }

            String defaultName = String.IsNullOrEmpty(name_prefix) ? "[Calculated Member]" : name_prefix + "." + "[Calculated Member]";

            info.Name = BuildNewCalculatedMemberName(defaultName);
            Members.Add(info.Name, info);

            MembersList.Initialize(Members, Sets, info);
            RefreshMetadataTree();
            m_ClearButton.IsEnabled = (Members.Count + Sets.Count) > 0;
        }
Ejemplo n.º 6
0
        public void Initialize(Dictionary <String, CalculationInfoBase> members, Dictionary <String, CalculationInfoBase> sets, CubeDefInfo cubeInfo, String measureGroupName)
        {
            m_Members = members;
            m_Sets    = sets;
            m_ClearButton.IsEnabled = (Members.Count + Sets.Count) > 0;

            MemberCtrl.InitializeMetadata(cubeInfo);

            if (CubeBrowser.CubeInfo != cubeInfo)
            {
                CubeBrowser.Initialize(cubeInfo);
            }
            CubeBrowser.MeasureGroupName = measureGroupName;

            MemberCtrl.IsEnabled = SetCtrl.IsEnabled = false;

            foreach (CalculationInfoBase info in Members.Values)
            {
                CalcMemberInfo member = info as CalcMemberInfo;
                if (member != null)
                {
                    // Добавляем в список стандартных пользовательские строки форматирования
                    if (!String.IsNullOrEmpty(member.FormatString))
                    {
                        if (!FormatStrings.Contains(member.FormatString))
                        {
                            FormatStrings.Add(member.FormatString);
                        }
                    }
                }
            }

            MemberCtrl.FormatStrings = FormatStrings;
            MembersList.Initialize(members, sets);

            RefreshMetadataTree();

            //CalcMemberInfo memberInfo = MembersList.CurrentObject as CalcMemberInfo;
            //if (memberInfo != null)
            //{
            //    MemberCtrl.Initialize(memberInfo);
            //}
        }
Ejemplo n.º 7
0
        void MembersList_SelectionChanged(object sender, SelectionChangedEventArgs <CalculationInfoBase> e)
        {
            EndEdit();

            MemberCtrl.IsEnabled = SetCtrl.IsEnabled = e.NewValue != null;
            if (e.NewValue == null)
            {
                if (MemberCtrl.Visibility == Visibility.Visible)
                {
                    MemberCtrl.Initialize(null);
                }
                if (SetCtrl.Visibility == Visibility.Visible)
                {
                    SetCtrl.Initialize(null);
                }
            }

            CalcMemberInfo memberInfo = e.NewValue as CalcMemberInfo;

            if (memberInfo != null)
            {
                MemberCtrl.Visibility = Visibility.Visible;
                SetCtrl.Visibility    = Visibility.Collapsed;
                MemberCtrl.Initialize(memberInfo);
            }

            CalculatedNamedSetInfo setInfo = e.NewValue as CalculatedNamedSetInfo;

            if (setInfo != null)
            {
                MemberCtrl.Visibility = Visibility.Collapsed;
                SetCtrl.Visibility    = Visibility.Visible;
                SetCtrl.Initialize(setInfo);
            }

            m_DeleteCalcMemberButton.IsEnabled = e.NewValue != null;
        }
        public void Initialize(CalcMemberInfo info)
        {
            foreach (var item in m_NonEmptyBehavoirSource)
            {
                item.IsChecked = false;
            }
            if (info != null)
            {
                foreach (var nonEmpty in info.NonEmptyBehavior)
                {
                    foreach (var item in m_NonEmptyBehavoirSource)
                    {
                        if (item.Text == nonEmpty)
                        {
                            item.IsChecked = true;
                        }
                    }
                }
            }

            this.IsEnabled = info != null;

            m_Member           = info;
            txtName.Text       = info != null ? info.Name : String.Empty;
            txtExpression.Text = info != null ? info.Expression : String.Empty;

            // Ищем соответствующую строку форматирования
            comboFormatString.SelectItem(info != null ? info.FormatString : String.Empty);
            comboForeColor.SelectItem(info != null ? info.ForeColor : Colors.Transparent);
            comboBackColor.SelectItem(info != null ? info.BackColor : Colors.Transparent);

            if (TabCtrl.SelectedItem == tabScriptTab)
            {
                RefreshScriptTab();
            }
        }
        public void Initialize(CalcMemberInfo info)
        {
            foreach (var item in m_NonEmptyBehavoirSource)
            {
                item.IsChecked = false;
            }
            if (info != null)
            {
                foreach (var nonEmpty in info.NonEmptyBehavior)
                {
                    foreach (var item in m_NonEmptyBehavoirSource)
                    {
                        if (item.Text == nonEmpty)
                        {
                            item.IsChecked = true;
                        }
                    }
                }
            }

            this.IsEnabled = info != null;

            m_Member = info;
            txtName.Text = info != null ? info.Name : String.Empty;
            txtExpression.Text = info != null ? info.Expression : String.Empty;

            // Ищем соответствующую строку форматирования
            comboFormatString.SelectItem(info != null ? info.FormatString : String.Empty);
            comboForeColor.SelectItem(info != null ? info.ForeColor : Colors.Transparent);
            comboBackColor.SelectItem(info != null ? info.BackColor : Colors.Transparent);

            if (TabCtrl.SelectedItem == tabScriptTab)
            {
                RefreshScriptTab();
            }
        }
        void m_AddCalcMemberButton_Click(object sender, RoutedEventArgs e)
        {
            CalcMemberInfo info = new CalcMemberInfo();

            // Если по выбранному узлу можем определить иерархию, то уникальное имя иерархии добавляем в имя вычисляемого элемента
            // В этом случае элемент попадет в данную иерархию
            // В противном случае - в иерархию [Measures] даже если она явно не прописана в имени
            String name_prefix = String.Empty;
            var hierarchy = CubeBrowser.SelectedNode as HierarchyTreeNode;
            if (hierarchy != null)
            {
                if (hierarchy.Info != null && hierarchy.Info is HierarchyInfo)
                    name_prefix = ((HierarchyInfo)hierarchy.Info).UniqueName;
            }
            var level = CubeBrowser.SelectedNode as LevelTreeNode;
            if (level != null)
            {
                if (level.Info != null && level.Info is LevelInfo)
                    name_prefix = ((LevelInfo)level.Info).ParentHirerachyId;
            }
            var member = CubeBrowser.SelectedNode as MemberLiteTreeNode;
            if (member != null)
            {
                if (member.Info != null)
                    name_prefix = member.Info.HierarchyUniqueName;
            }

            String defaultName = String.IsNullOrEmpty(name_prefix) ? "[Calculated Member]" : name_prefix + "." + "[Calculated Member]";
            info.Name = BuildNewCalculatedMemberName(defaultName);
            Members.Add(info.Name, info);
            
            MembersList.Initialize(Members, Sets, info);
            RefreshMetadataTree();
            m_ClearButton.IsEnabled = (Members.Count + Sets.Count) > 0;
        }
        public override object Clone()
        {
            CalcMemberInfo ret = new CalcMemberInfo();
            ret.Name = Name;
            ret.Expression = Expression;
            ret.FormatString = FormatString;
            ret.BackColor = BackColor;
            ret.ForeColor = ForeColor;

            foreach (var item in NonEmptyBehavior)
            {
                ret.NonEmptyBehavior.Add(item);
            }
            return ret;
        }
 public CalculatedMember_AreaItemWrapper(CalcMemberInfo info)
     : base(info)
 {
 }