123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Windows.Forms;
- using FastReport.Utils;
- namespace FastReport.Matrix
- {
- internal class MatrixCellMenu : MatrixCellMenuBase
- {
- private ContextMenuItem miFunction;
- private ContextMenuItem miFunctionNone;
- private ContextMenuItem miFunctionSum;
- private ContextMenuItem miFunctionMin;
- private ContextMenuItem miFunctionMax;
- private ContextMenuItem miFunctionAvg;
- private ContextMenuItem miFunctionCount;
- private ContextMenuItem miFunctionCountDistinct;
- private ContextMenuItem miFunctionCustom;
- private ContextMenuItem miPercent;
- private ContextMenuItem miPercentNone;
- private ContextMenuItem miPercentColumnTotal;
- private ContextMenuItem miPercentRowTotal;
- private ContextMenuItem miPercentGrandTotal;
- private void Function_Click(object sender, EventArgs e)
- {
- MatrixAggregateFunction function = (MatrixAggregateFunction)(sender as ContextMenuItem).Tag;
- (Descriptor as MatrixCellDescriptor).Function = function;
- Change();
- }
- private void Percent_Click(object sender, EventArgs e)
- {
- MatrixPercent percent = (MatrixPercent)(sender as ContextMenuItem).Tag;
- (Descriptor as MatrixCellDescriptor).Percent = percent;
- Change();
- }
- public MatrixCellMenu(MatrixObject matrix, MatrixElement element, MatrixDescriptor descriptor)
- : base(matrix, element, descriptor)
- {
- MyRes res = new MyRes("Forms,TotalEditor");
- miFunction = CreateMenuItem(132, Res.Get("ComponentMenu,MatrixCell,Function"), null);
- miFunctionNone = CreateMenuItem(Res.Get("Misc,None"), new EventHandler(Function_Click));
- miFunctionNone.CheckOnClick = true;
- miFunctionNone.Tag = MatrixAggregateFunction.None;
- miFunctionSum = CreateMenuItem(res.Get("Sum"), new EventHandler(Function_Click));
- miFunctionSum.CheckOnClick = true;
- miFunctionSum.Tag = MatrixAggregateFunction.Sum;
- miFunctionMin = CreateMenuItem(res.Get("Min"), new EventHandler(Function_Click));
- miFunctionMin.CheckOnClick = true;
- miFunctionMin.Tag = MatrixAggregateFunction.Min;
- miFunctionMax = CreateMenuItem(res.Get("Max"), new EventHandler(Function_Click));
- miFunctionMax.CheckOnClick = true;
- miFunctionMax.Tag = MatrixAggregateFunction.Max;
- miFunctionAvg = CreateMenuItem(res.Get("Avg"), new EventHandler(Function_Click));
- miFunctionAvg.CheckOnClick = true;
- miFunctionAvg.Tag = MatrixAggregateFunction.Avg;
- miFunctionCount = CreateMenuItem(res.Get("Count"), new EventHandler(Function_Click));
- miFunctionCount.CheckOnClick = true;
- miFunctionCount.Tag = MatrixAggregateFunction.Count;
- miFunctionCountDistinct = CreateMenuItem(res.Get("CountDistinct"), new EventHandler(Function_Click));
- miFunctionCountDistinct.CheckOnClick = true;
- miFunctionCountDistinct.Tag = MatrixAggregateFunction.CountDistinct;
- miFunctionCustom = CreateMenuItem(res.Get("Custom"), new EventHandler(Function_Click));
- miFunctionCustom.CheckOnClick = true;
- miFunctionCustom.Tag = MatrixAggregateFunction.Custom;
- miFunction.DropDownItems.AddRange(new ContextMenuItem[] {
- miFunctionNone, miFunctionSum, miFunctionMin, miFunctionMax, miFunctionAvg, miFunctionCount, miFunctionCountDistinct, miFunctionCustom });
- res = new MyRes("ComponentMenu,MatrixCell");
- miPercent = CreateMenuItem(res.Get("Percent"), null);
- miPercentNone = CreateMenuItem(Res.Get("Misc,None"), new EventHandler(Percent_Click));
- miPercentNone.CheckOnClick = true;
- miPercentNone.Tag = MatrixPercent.None;
- miPercentColumnTotal = CreateMenuItem(res.Get("PercentColumnTotal"), new EventHandler(Percent_Click));
- miPercentColumnTotal.CheckOnClick = true;
- miPercentColumnTotal.Tag = MatrixPercent.ColumnTotal;
- miPercentRowTotal = CreateMenuItem(res.Get("PercentRowTotal"), new EventHandler(Percent_Click));
- miPercentRowTotal.CheckOnClick = true;
- miPercentRowTotal.Tag = MatrixPercent.RowTotal;
- miPercentGrandTotal = CreateMenuItem(res.Get("PercentGrandTotal"), new EventHandler(Percent_Click));
- miPercentGrandTotal.CheckOnClick = true;
- miPercentGrandTotal.Tag = MatrixPercent.GrandTotal;
- miPercent.DropDownItems.AddRange(new ContextMenuItem[] {
- miPercentNone, miPercentColumnTotal, miPercentRowTotal, miPercentGrandTotal });
- int insertIndex = Items.IndexOf(miDelete);
- Items.Insert(insertIndex, miFunction);
- Items.Insert(insertIndex + 1, miPercent);
- MatrixAggregateFunction function = (Descriptor as MatrixCellDescriptor).Function;
- foreach (ContextMenuItem item in miFunction.DropDownItems)
- {
- if ((MatrixAggregateFunction)item.Tag == function)
- {
- (item as ContextMenuItem).Checked = true;
- break;
- }
- }
- MatrixPercent percent = (Descriptor as MatrixCellDescriptor).Percent;
- foreach (ContextMenuItem item in miPercent.DropDownItems)
- {
- if ((MatrixPercent)item.Tag == percent)
- {
- (item as ContextMenuItem).Checked = true;
- break;
- }
- }
- }
- }
- }
|