protected void Raise_PerformMemberAction(MemberActionEventArgs args) { MemberActionEventHandler handler = this.OnPerformMemberAction; if (handler != null) { handler(this, args); } }
protected void Raise_ExecuteMemberAction(MemberActionEventArgs args) { MemberActionEventHandler handler = this.ExecuteMemberAction; if (handler != null) { handler(this, args); } }
protected void OnExecuteMemberAction(object sender, MemberActionEventArgs args) { // Если ячейка с фокусом находилось не в строке или не в колонке, для которой производится данная операция, // то фокус устанавливаем на первую ВИДИМУЮ (чтобы сохранить скроллы) ячейку в данной колонке или строке if (FocusedCellView != null) { int cell_column_indx = -1; int cell_row_indx = -1; if (FocusedCell != null) { // Получаем позицию ячейки с фокусом в гриде cell_column_indx = Grid.GetColumn(FocusedCell); cell_row_indx = Grid.GetRow(FocusedCell); } else { cell_column_indx = CellsArea_BeginColumnIndex; cell_row_indx = CellsArea_BeginRowIndex; } MemberControl member_Control = sender as MemberControl; if (member_Control != null) { // Получаем позицию данного контрола в гриде int member_column_indx = Grid.GetColumn(member_Control); int member_row_indx = Grid.GetRow(member_Control); if (cell_column_indx > -1 && cell_row_indx > -1 && member_column_indx > -1 && member_row_indx > -1 && cell_column_indx != member_column_indx && cell_row_indx != member_row_indx) { if (member_Control is ColumnMemberControl) { CellControl new_focused = m_CellControls_Cache[member_column_indx - CellsArea_BeginColumnIndex, 0]; if (new_focused != null) FocusedCellView = new_focused.Cell; else FocusedCellView = null; } if (member_Control is RowMemberControl) { CellControl new_focused = m_CellControls_Cache[0, member_row_indx - CellsArea_BeginRowIndex]; if (new_focused != null) FocusedCellView = new_focused.Cell; else FocusedCellView = null; } } } } Raise_ExecuteMemberAction(args); }
void PivotGrid_ExecuteMemberAction(object sender, MemberActionEventArgs args) { // Определяем нужно ли выполнить экшен по умолчанию if (args.Action == MemberActionType.Default) { var MemberAction = (ColumnTitleClickBehavior)(int)DefaultMemberAction; if (args.Axis == 0) if (this.ColumnTitleClickBehavior != ColumnTitleClickBehavior.SameAsRows) { MemberAction = this.ColumnTitleClickBehavior; } switch (MemberAction) { case ColumnTitleClickBehavior.None: return; case ColumnTitleClickBehavior.DrillDown: args.Action = MemberActionType.DrillDown; break; case ColumnTitleClickBehavior.ExpandCollapse: if (args.Member != null && args.Member.ChildCount > 0 && !args.Member.IsCalculated) { args.Action = MemberActionType.Expand; if (args.Member.DrilledDown) args.Action = MemberActionType.Collapse; break; } return; case ColumnTitleClickBehavior.SortByValue: if (args.Member.Children.Count > 0) return; args.Action = MemberActionType.SortByValue; break; case ColumnTitleClickBehavior.SortByProperty: if (args.Member != null && (args.Axis == 0 || args.Axis == 1)) { SortDescriptor new_descr = new SortDescriptor(); new_descr.SortBy = "Caption"; new_descr.Type = SortTypes.Ascending; SortDescriptor descr = PivotGrid.GetAxisPropertySort(args.Axis, args.Member); if (descr != null) { if (!String.IsNullOrEmpty(descr.SortBy)) { new_descr.SortBy = descr.SortBy; } switch (descr.Type) { case SortTypes.None: new_descr.Type = SortTypes.Ascending; break; case SortTypes.Ascending: new_descr.Type = SortTypes.Descending; break; case SortTypes.Descending: new_descr.Type = SortTypes.None; break; } } m_CellSetProvider.Sort(args.Axis, args.Member.HierarchyUniqueName, new_descr); try { IsWaiting = true; PivotGrid.Initialize(m_CellSetProvider); } finally { IsWaiting = false; } } return; } } if (args.Axis == 0 || args.Axis == 1) { ExportSizeInfo(); PerformMemberAction(args); } }
protected virtual void PerformMemberAction(MemberActionEventArgs e) { if (e.Action == MemberActionType.Collapse || e.Action == MemberActionType.Expand || e.Action == MemberActionType.DrillDown || e.Action == MemberActionType.SortByValue // || e.Action == MemberActionType.DrillUp ) { List<MemberInfo> full_tuple = e.Member.GetAncestors(true); PerformMemberActionArgs args = CommandHelper.CreatePerformMemberActionArgs( e.Member, e.Axis, e.Action, full_tuple); if (DataManager != null) { String query = DataManager.PerformMemberAction(args); // query=generateQuery(e); if (!String.IsNullOrEmpty(query)) { MdxQueryArgs query_args = CommandHelper.CreateMdxQueryArgs(Connection, query); ExecuteMemberAction(query_args, args); } } } }
protected void Raise_DrillDownMember(MemberActionEventArgs args) { MemberActionEventHandler handler = this.DrillDownMember; if (handler != null) { handler(this, args); } }
void PivotGrid_DrillDownMember(object sender, MemberActionEventArgs args) { //NEW!!! Если в кэше есть изменения, то нужно спросить об их сохранении //if (UseChangesCashe && PivotGrid.LocalChanges.CellChanges.Count > 0) //{ // MessageBox.Show(Localization.PivotGrid_SaveCachedChanges, Localization.MessageBox_Warning, MessageBoxButton.OK); // //PopUpQuestionDialog dlg = SaveChangesDlg; // //dlg.DialogClosed += new EventHandler<Ranet.AgOlap.Controls.Forms.DialogResultArgs>(ColumnsControl_SaveChanges_DialogClosed); // //dlg.Tag = args; // //dlg.Show(); // return; //} if (args.Axis == 0 || args.Axis == 1) { ExportSizeInfo(); PerformMemberAction(args); } }
protected virtual void PerformMemberAction(MemberActionEventArgs e) { List<MemberInfo> full_tuple = new List<MemberInfo>(); e.Member.CollectAncestors(full_tuple, true); PerformMemberActionArgs args = CommandHelper.CreatePerformMemberActionArgs( e.Member, e.Axis, e.Action, full_tuple); if (DataManager != null) { String query = DataManager.PerformMemberAction(args); if (!String.IsNullOrEmpty(query)) { MdxQueryArgs query_args = CommandHelper.CreateMdxQueryArgs(Connection, query); ExecuteMemberAction(query_args, args); } } }
protected override void PerformMemberAction(MemberActionEventArgs e) { base.PerformMemberAction(e); }