コード例 #1
0
        public void Initialize(MemberControl member)
        {
            if (member != null && member.Member != null)
            {
                // Текст подсказки
                IList <MemberInfo> anc = new List <MemberInfo>();
                member.Member.CollectAncestors(anc);
                StringBuilder sb = new StringBuilder();
                foreach (MemberInfo mv in anc)
                {
                    sb.AppendLine(mv.Caption + " : " + mv.UniqueName);
                }
                String tupleToStr = sb.ToString();
                tupleToStr = tupleToStr.TrimEnd('\n');
                tupleToStr = tupleToStr.TrimEnd('\r');

                Caption = member.Member.Caption;
                Text    = tupleToStr;
            }
            else
            {
                Caption = String.Empty;
                Text    = String.Empty;
            }
        }
 void Raise_PerformControlAction(ControlActionType action, MemberControl info)
 {
     EventHandler<ControlActionEventArgs<MemberControl>> handler = Members_PerformControlAction;
     if (handler != null)
     {
         handler(this, new ControlActionEventArgs<MemberControl>(action, info));
     }
 }
 internal SortDescriptor GetAxisPropertySort(MemberControl member)
 {
     if (member != null)
     {
         int axis = -1;
         if (member is ColumnMemberControl)
         {
             axis = 0;
         }
         if (member is RowMemberControl)
         {
             axis = 1;
         }
         return GetAxisPropertySort(axis, member.Member);
     }
     return null;
 }
		void ShowSortPropertiesDialog(PivotTableSortTypes sortType, MemberControl member)
		{
			ModalDialog dlg;
			SortPropertiesControl sortControl;
			if (sortType == PivotTableSortTypes.SortByValue)
			{
				// Сортировку по значению делаем отдельным диалогом чтобы не думать о сохранении размеров
				if (m_SortByValueDialog == null)
				{
					m_SortByValueDialog = new ModalDialog() { Width = 500, Height = 400, MinHeight = 250, MinWidth = 180, DialogStyle = ModalDialogStyles.OKCancel };
					m_SortByValueDialog.Caption = Localization.SortingSettingsDialog_Caption;
					m_SortByValueDialog.DialogOk += new EventHandler<DialogResultArgs>(SortProperties_DialogOk);
					Panel panel1 = GetRootPanel(this);
					if (panel1 != null)
					{
						panel1.Children.Add(m_SortByValueDialog.Dialog.PopUpControl);
					}
				}

				if (m_SortByValueSettingsControl == null)
				{
					m_SortByValueSettingsControl = new SortPropertiesControl();
					m_SortByValueSettingsControl.CubeName = m_CSDescr != null ? m_CSDescr.CubeName : String.Empty;
					m_SortByValueSettingsControl.ConnectionID = m_CSDescr != null ? m_CSDescr.Connection.ConnectionID : String.Empty;
					m_SortByValueSettingsControl.GetOlapDataLoader += new EventHandler<GetIDataLoaderArgs>(CopyControl_GetMetadataLoader);
					m_SortByValueSettingsControl.LogManager = this.LogManager;

					m_SortByValueSettingsControl.LoadMeasures += new EventHandler<CustomEventArgs<EventArgs>>(m_SortSettingsControl_LoadMeasures);
					m_SortByValueDialog.Content = m_SortByValueSettingsControl;
				}
				sortControl = m_SortByValueSettingsControl;
				dlg = m_SortByValueDialog;
			}
			else
			{
				if (m_SortDialog == null)
				{
					m_SortDialog = new ModalDialog() { Width = 400, Height = 250, MinHeight = 215, MinWidth = 180, DialogStyle = ModalDialogStyles.OKCancel };
					m_SortDialog.Caption = Localization.SortingSettingsDialog_Caption;
					m_SortDialog.DialogOk += new EventHandler<DialogResultArgs>(SortProperties_DialogOk);
					Panel panel1 = GetRootPanel(this);
					if (panel1 != null)
					{
						panel1.Children.Add(m_SortDialog.Dialog.PopUpControl);
					}
				}

				if (m_SortSettingsControl == null)
				{
					m_SortSettingsControl = new SortPropertiesControl();
					m_SortSettingsControl.CubeName = m_CSDescr != null ? m_CSDescr.CubeName : String.Empty;
					m_SortSettingsControl.ConnectionID = m_CSDescr != null ? m_CSDescr.Connection.ConnectionID : String.Empty;
					m_SortSettingsControl.GetOlapDataLoader += new EventHandler<GetIDataLoaderArgs>(CopyControl_GetMetadataLoader);
					m_SortSettingsControl.LogManager = this.LogManager;

					m_SortSettingsControl.LoadMeasures += new EventHandler<CustomEventArgs<EventArgs>>(m_SortSettingsControl_LoadMeasures);
					m_SortDialog.Content = m_SortSettingsControl;
				}
				sortControl = m_SortSettingsControl;
				dlg = m_SortDialog;
			}

			if (dlg == null || sortControl == null)
				return;

			dlg.Tag = sortControl;
			sortControl.Tag = member;

			SortDescriptor sort = null;
			switch (sortType)
			{
				case PivotTableSortTypes.SortByProperty:
					if (m_CellSetProvider != null &&
									member != null &&
									member.Member != null)
					{
						sort = GetAxisPropertySort(member);
					}
					break;
				case PivotTableSortTypes.SortAxisByMeasure:
					sort = GetAxisByMeasureSort(member);
					break;
				case PivotTableSortTypes.SortByValue:
					// Получаем сортировку для противоположной оси. Если это сортировка по значению, то проверяем чтобы это была сортировка для данного элемента. Если нет, то создается новый дескриптор
					if (member is ColumnMemberControl || member is RowMemberControl)
					{
						var value_sort = GetAxisSort(member is ColumnMemberControl ? AreaType.RowsArea : AreaType.ColumnsArea) as SortByValueDescriptor;
						if (value_sort != null && member != null && member.Member != null && value_sort.CompareByTuple(member.Member.GetAxisTuple()))
						{
							sort = value_sort;
						}
					}

					if (sort == null)
					{
						sort = new SortByValueDescriptor();
						if (member != null && member.Member != null)
						{
							(sort as SortByValueDescriptor).Tuple = member.Member.GetAxisTuple();
						}
					}
					break;
			}

			sortControl.Initialize(sortType, sort);
			ShowDialog(dlg);
		}
		SortDescriptor GetAxisPropertySort(MemberControl member)
		{
			return PivotGrid.GetAxisPropertySort(member);
		}
		void SetAxisByMeasureSort(MemberControl member, SortDescriptor sort)
		{
			if (member is ColumnMemberControl)
				SetAxisSort(AreaType.ColumnsArea, sort);
			if (member is RowMemberControl)
				SetAxisSort(AreaType.RowsArea, sort);
		}
		SortDescriptor GetAxisByMeasureSort(MemberControl member)
		{
			if (member is ColumnMemberControl)
				return GetAxisSort(AreaType.ColumnsArea);
			if (member is RowMemberControl)
				return GetAxisSort(AreaType.RowsArea);
			return null;
		}
        public void Initialize(MemberControl member)
        {
            if (member != null && member.Member != null)
            {
                // Текст подсказки
                IList<MemberInfo> anc = member.Member.GetAncestors();
                StringBuilder sb = new StringBuilder();
                foreach (MemberInfo mv in anc)
                {
                    sb.AppendLine(mv.Caption + " : " + mv.UniqueName);
                }
                String tupleToStr = sb.ToString();
                tupleToStr = tupleToStr.TrimEnd('\n');
                tupleToStr = tupleToStr.TrimEnd('\r');

                Caption = member.Member.Caption;
                Text = tupleToStr;
            }
            else
            {
                Caption = String.Empty;
                Text = String.Empty;
            }
        }