コード例 #1
0
ファイル: MatrixObjectMenu.cs プロジェクト: zixing131/LAEACC
        public MatrixObjectMenu(Designer designer) : base(designer)
        {
            FMatrix = Designer.SelectedObjects[0] as MatrixObject;
            MyRes res = new MyRes("ComponentMenu,MatrixObject");

            miAutoSize                         = CreateMenuItem(Res.Get("ComponentMenu,TableRow,AutoSize"), new EventHandler(miAutoSize_Click));
            miAutoSize.BeginGroup              = true;
            miAutoSize.AutoCheckOnClick        = true;
            miShowTitle                        = CreateMenuItem(res.Get("ShowTitle"), new EventHandler(miShowTitle_Click));
            miShowTitle.AutoCheckOnClick       = true;
            miCellsSideBySide                  = CreateMenuItem(res.Get("CellsSideBySide"), new EventHandler(miCellsSideBySide_Click));
            miCellsSideBySide.AutoCheckOnClick = true;
            miStyle            = CreateMenuItem(Res.GetImage(87), res.Get("Style"), null);
            miStyle.BeginGroup = true;

            int insertIndex = Items.IndexOf(miRepeatHeaders);

            Items.Insert(insertIndex, miAutoSize);
            Items.Insert(insertIndex + 1, miShowTitle);
            Items.Insert(insertIndex + 3, miCellsSideBySide);
            Items.Insert(insertIndex + 4, miStyle);

            miRepeatHeaders.BeginGroup = false;
            miCanBreak.Visible         = false;
            miGrowToBottom.Visible     = false;

            miAutoSize.Checked        = FMatrix.AutoSize;
            miShowTitle.Checked       = FMatrix.ShowTitle;
            miCellsSideBySide.Checked = FMatrix.CellsSideBySide;
            BuildStyleMenu();
        }
コード例 #2
0
ファイル: MatrixData.cs プロジェクト: yajunsun/FastReport
 internal MatrixData(MatrixObject matrix)
 {
     columns      = new MatrixHeader(matrix);
     columns.Name = "MatrixColumns";
     rows         = new MatrixHeader(matrix);
     rows.Name    = "MatrixRows";
     cells        = new MatrixCells();
     cells.Name   = "MatrixCells";
 }
コード例 #3
0
ファイル: MatrixHelper.cs プロジェクト: zwyl2001/FastReport
 public MatrixHelper(MatrixObject matrix)
 {
     this.matrix                     = matrix;
     titleDescriptor                 = new MatrixDescriptor();
     cellHeaderDescriptor            = new MatrixDescriptor();
     cellHeaderDescriptor.Expression = "Data";
     noColumnsDescriptor             = new MatrixHeaderDescriptor("", false);
     noRowsDescriptor                = new MatrixHeaderDescriptor("", false);
     noCellsDescriptor               = new MatrixCellDescriptor();
 }
コード例 #4
0
ファイル: MatrixHelper.cs プロジェクト: zixing131/LAEACC
 public MatrixHelper(MatrixObject matrix)
 {
     FMatrix                          = matrix;
     FTitleDescriptor                 = new MatrixDescriptor();
     FCellHeaderDescriptor            = new MatrixDescriptor();
     FCellHeaderDescriptor.Expression = "Data";
     FNoColumnsDescriptor             = new MatrixHeaderDescriptor("", false);
     FNoRowsDescriptor                = new MatrixHeaderDescriptor("", false);
     FNoCellsDescriptor               = new MatrixCellDescriptor();
 }
コード例 #5
0
        public MatrixCellSmartTag(MatrixObject matrix, MatrixDescriptor descriptor) : base(descriptor.TemplateCell)
        {
            FMatrix     = matrix;
            FDescriptor = descriptor;

            string expression = descriptor.Expression;

            if (expression.StartsWith("[") && expression.EndsWith("]"))
            {
                expression = expression.Substring(1, expression.Length - 2);
            }
            DataColumn = expression;
        }
コード例 #6
0
        /// <inheritdoc/>
        public override void Assign(Base source)
        {
            base.Assign(source);

            MatrixObject src = source as MatrixObject;

            AutoSize            = src.AutoSize;
            CellsSideBySide     = src.CellsSideBySide;
            KeepCellsSideBySide = src.KeepCellsSideBySide;
            DataSource          = src.DataSource;
            Filter    = src.Filter;
            ShowTitle = src.ShowTitle;
            Style     = src.Style;
            MatrixEvenStylePriority = src.MatrixEvenStylePriority;
        }
コード例 #7
0
        public MatrixHeaderMenu(MatrixObject matrix, MatrixElement element, MatrixDescriptor descriptor)
            : base(matrix, element, descriptor)
        {
            MyRes res = new MyRes("ComponentMenu,MatrixCell");

            miSort    = CreateMenuItem(null, Res.Get("Forms,DataBandEditor,Sort"), null);
            miSortAsc = CreateMenuItem(null, Res.Get("Forms,GroupBandEditor,Ascending"), Sort_Click);
            miSortAsc.AutoCheckOnClick = true;
            miSortAsc.Tag = SortOrder.Ascending;
            miSortDesc    = CreateMenuItem(null, Res.Get("Forms,GroupBandEditor,Descending"), Sort_Click);
            miSortDesc.AutoCheckOnClick = true;
            miSortDesc.Tag = SortOrder.Descending;
            miSortNone     = CreateMenuItem(null, Res.Get("Forms,GroupBandEditor,NoSort"), Sort_Click);
            miSortNone.AutoCheckOnClick = true;
            miSortNone.Tag                    = SortOrder.None;
            miTotals                          = CreateMenuItem(null, res.Get("Totals"), miTotals_Click);
            miTotals.AutoCheckOnClick         = true;
            miPageBreak                       = CreateMenuItem(null, Res.Get("ComponentMenu,Band,StartNewPage"), miPageBreak_Click);
            miPageBreak.AutoCheckOnClick      = true;
            miSuppressTotals                  = CreateMenuItem(null, res.Get("SuppressTotals"), miSuppressTotals_Click);
            miSuppressTotals.AutoCheckOnClick = true;
            miTotalsFirst                     = CreateMenuItem(null, res.Get("TotalsFirst"), miTotalsFirst_Click);
            miTotalsFirst.AutoCheckOnClick    = true;

            miSort.SubItems.AddRange(new BaseItem[] { miSortAsc, miSortDesc, miSortNone });

            int insertIndex = Items.IndexOf(miDelete);

            Items.Insert(insertIndex, miSort);
            Items.Insert(insertIndex + 1, miTotals);
            Items.Insert(insertIndex + 2, miPageBreak);
            Items.Insert(insertIndex + 3, miSuppressTotals);
            Items.Insert(insertIndex + 4, miTotalsFirst);

            SortOrder sort = (Descriptor as MatrixHeaderDescriptor).Sort;

            miSortAsc.Checked        = sort == SortOrder.Ascending;
            miSortDesc.Checked       = sort == SortOrder.Descending;
            miSortNone.Checked       = sort == SortOrder.None;
            miTotals.Checked         = (Descriptor as MatrixHeaderDescriptor).Totals;
            miTotals.Enabled         = !matrix.IsAncestor;
            miPageBreak.Checked      = (Descriptor as MatrixHeaderDescriptor).PageBreak;
            miSuppressTotals.Checked = (Descriptor as MatrixHeaderDescriptor).SuppressTotals;
            miTotalsFirst.Checked    = (Descriptor as MatrixHeaderDescriptor).TotalsFirst;
        }
コード例 #8
0
        public MatrixCellMenuBase(MatrixObject matrix, MatrixElement element, MatrixDescriptor descriptor) :
            base(matrix.Report.Designer)
        {
            FMatrix     = matrix;
            FElement    = element;
            FDescriptor = descriptor;

            miEdit              = CreateMenuItem(null, Res.Get("ComponentMenu,Component,Edit"), new EventHandler(miEdit_Click));
            miFormat            = CreateMenuItem(Res.GetImage(168), Res.Get("ComponentMenu,TextObject,Format"), new EventHandler(miFormat_Click));
            miHyperlink         = CreateMenuItem(Res.GetImage(167), Res.Get("ComponentMenu,ReportComponent,Hyperlink"), new EventHandler(miHyperlink_Click));
            miDelete            = CreateMenuItem(Res.GetImage(51), Res.Get("Designer,Menu,Edit,Delete"), new EventHandler(miDelete_Click));
            miDelete.BeginGroup = true;

            Items.AddRange(new BaseItem[] {
                miEdit, miFormat, miHyperlink,
                miDelete
            });

            bool enabled = Designer.SelectedObjects.Count == 1;

            miEdit.Enabled   = enabled;
            miDelete.Enabled = enabled && descriptor != null && !matrix.IsAncestor;
        }
コード例 #9
0
ファイル: MatrixObject.cs プロジェクト: yajunsun/FastReport
        /// <inheritdoc/>
        public override void Serialize(FRWriter writer)
        {
            if (writer.SerializeTo != SerializeTo.SourcePages)
            {
                writer.Write(Data.Columns);
                writer.Write(Data.Rows);
                writer.Write(Data.Cells);
            }
            else
            {
                RefreshTemplate(true);
            }

            base.Serialize(writer);
            MatrixObject c = writer.DiffObject as MatrixObject;

            if (AutoSize != c.AutoSize)
            {
                writer.WriteBool("AutoSize", AutoSize);
            }
            if (CellsSideBySide != c.CellsSideBySide)
            {
                writer.WriteBool("CellsSideBySide", CellsSideBySide);
            }
            if (KeepCellsSideBySide != c.KeepCellsSideBySide)
            {
                writer.WriteBool("KeepCellsSideBySide", KeepCellsSideBySide);
            }
            if (DataSource != c.DataSource)
            {
                writer.WriteRef("DataSource", DataSource);
            }
            if (Filter != c.Filter)
            {
                writer.WriteStr("Filter", Filter);
            }
            if (ShowTitle != c.ShowTitle)
            {
                writer.WriteBool("ShowTitle", ShowTitle);
            }
            if (Style != c.Style)
            {
                writer.WriteStr("Style", Style);
            }
            if (MatrixEvenStylePriority != c.MatrixEvenStylePriority)
            {
                writer.WriteValue("MatrixEvenStylePriority", MatrixEvenStylePriority);
            }
            if (SplitRows != c.SplitRows)
            {
                writer.WriteValue("SplitRows", SplitRows);
            }
            if (ManualBuildEvent != c.ManualBuildEvent)
            {
                writer.WriteStr("ManualBuildEvent", ManualBuildEvent);
            }
            if (ModifyResultEvent != c.ModifyResultEvent)
            {
                writer.WriteStr("ModifyResultEvent", ModifyResultEvent);
            }
            if (AfterTotalsEvent != c.AfterTotalsEvent)
            {
                writer.WriteStr("AfterTotalsEvent", AfterTotalsEvent);
            }
        }
コード例 #10
0
ファイル: MatrixTotalMenu.cs プロジェクト: zixing131/LAEACC
 public MatrixTotalMenu(MatrixObject matrix, MatrixElement element, MatrixDescriptor descriptor)
     : base(matrix, element, descriptor)
 {
 }
コード例 #11
0
        public MatrixCellMenu(MatrixObject matrix, MatrixElement element, MatrixDescriptor descriptor)
            : base(matrix, element, descriptor)
        {
            MyRes res = new MyRes("Forms,TotalEditor");

            miFunction     = CreateMenuItem(Res.GetImage(132), Res.Get("ComponentMenu,MatrixCell,Function"), null);
            miFunctionNone = CreateMenuItem(null, Res.Get("Misc,None"), new EventHandler(Function_Click));
            miFunctionNone.AutoCheckOnClick = true;
            miFunctionNone.Tag                = MatrixAggregateFunction.None;
            miFunctionSum                     = CreateMenuItem(null, res.Get("Sum"), new EventHandler(Function_Click));
            miFunctionSum.AutoCheckOnClick    = true;
            miFunctionSum.Tag                 = MatrixAggregateFunction.Sum;
            miFunctionMin                     = CreateMenuItem(null, res.Get("Min"), new EventHandler(Function_Click));
            miFunctionMin.AutoCheckOnClick    = true;
            miFunctionMin.Tag                 = MatrixAggregateFunction.Min;
            miFunctionMax                     = CreateMenuItem(null, res.Get("Max"), new EventHandler(Function_Click));
            miFunctionMax.AutoCheckOnClick    = true;
            miFunctionMax.Tag                 = MatrixAggregateFunction.Max;
            miFunctionAvg                     = CreateMenuItem(null, res.Get("Avg"), new EventHandler(Function_Click));
            miFunctionAvg.AutoCheckOnClick    = true;
            miFunctionAvg.Tag                 = MatrixAggregateFunction.Avg;
            miFunctionCount                   = CreateMenuItem(null, res.Get("Count"), new EventHandler(Function_Click));
            miFunctionCount.AutoCheckOnClick  = true;
            miFunctionCount.Tag               = MatrixAggregateFunction.Count;
            miFunctionCustom                  = CreateMenuItem(null, res.Get("Custom"), new EventHandler(Function_Click));
            miFunctionCustom.AutoCheckOnClick = true;
            miFunctionCustom.Tag              = MatrixAggregateFunction.Custom;

            miFunction.SubItems.AddRange(new BaseItem[] {
                miFunctionNone, miFunctionSum, miFunctionMin, miFunctionMax, miFunctionAvg, miFunctionCount, miFunctionCustom
            });

            res           = new MyRes("ComponentMenu,MatrixCell");
            miPercent     = CreateMenuItem(null, res.Get("Percent"), null);
            miPercentNone = CreateMenuItem(null, Res.Get("Misc,None"), new EventHandler(Percent_Click));
            miPercentNone.AutoCheckOnClick = true;
            miPercentNone.Tag    = MatrixPercent.None;
            miPercentColumnTotal = CreateMenuItem(null, res.Get("PercentColumnTotal"), new EventHandler(Percent_Click));
            miPercentColumnTotal.AutoCheckOnClick = true;
            miPercentColumnTotal.Tag             = MatrixPercent.ColumnTotal;
            miPercentRowTotal                    = CreateMenuItem(null, res.Get("PercentRowTotal"), new EventHandler(Percent_Click));
            miPercentRowTotal.AutoCheckOnClick   = true;
            miPercentRowTotal.Tag                = MatrixPercent.RowTotal;
            miPercentGrandTotal                  = CreateMenuItem(null, res.Get("PercentGrandTotal"), new EventHandler(Percent_Click));
            miPercentGrandTotal.AutoCheckOnClick = true;
            miPercentGrandTotal.Tag              = MatrixPercent.GrandTotal;

            miPercent.SubItems.AddRange(new BaseItem[] {
                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 (BaseItem item in miFunction.SubItems)
            {
                if ((MatrixAggregateFunction)item.Tag == function)
                {
                    (item as ButtonItem).Checked = true;
                    break;
                }
            }

            MatrixPercent percent = (Descriptor as MatrixCellDescriptor).Percent;

            foreach (BaseItem item in miPercent.SubItems)
            {
                if ((MatrixPercent)item.Tag == percent)
                {
                    (item as ButtonItem).Checked = true;
                    break;
                }
            }
        }
コード例 #12
0
 internal MatrixHeader(MatrixObject matrix)
 {
     rootItem    = new MatrixHeaderItem(null);
     this.matrix = matrix;
 }