Example #1
0
        public void Run()
        {
            foreach (Element el in engine1.Table.DisplayElements)
            {
                Console.WriteLine(el.ToString());
                if (el is Syncfusion.Grouping.SummarySection)
                {
                    // Cast summary to correct type before accessing idividual summary properties
                    Console.WriteLine("Summaries:");
                    ITreeTableSummary[] summaries = el.ParentGroup.GetSummaries(el.ParentTable);

                    DoubleAggregateSummary d0 = (DoubleAggregateSummary)summaries[el.ParentTableDescriptor.Summaries.IndexOf(sd0)];
                    Console.WriteLine("QuantityAverage = {0}", d0.Average);

                    TotalSummary d1 = (TotalSummary)summaries[el.ParentTableDescriptor.Summaries.IndexOf(sd1)];
                    Console.WriteLine("QuantityDistinctCount = {0}", d1.Total);

                    DistinctInt32CountSummary d2 = (DistinctInt32CountSummary)summaries[el.ParentTableDescriptor.Summaries.IndexOf(sd2)];
                    Console.WriteLine("QuantityTotal = {0}", d2.Count);

                    StatisticsSummary d3 = (StatisticsSummary)summaries[el.ParentTableDescriptor.Summaries.IndexOf(sd3)];
                    Console.WriteLine("QuantityMedian = {0}", d3.Median);

                    Console.WriteLine("QuantityAverage = {0}", GetAverageSummary(sd0, el.ParentGroup));
                }
            }
        }
        public DistinctInt32CountSummary Combine(DistinctInt32CountSummary other)
        {
            ArrayList d = new ArrayList(Count + other.Count);

            Int32[] others = other.Values;

            int n1   = 0;
            int n2   = 0;
            int len1 = _values.Length;
            int len2 = others.Length;

            while (n1 < len1 && n2 < len2)
            {
                int cmp = _Compare(_values[n1], others[n2]);
                if (cmp < 0)
                {
                    d.Add(_values[n1++]);
                }
                else if (cmp > 0)
                {
                    d.Add(others[n2++]);
                }
                else
                {
                    d.Add(_values[n1++]);
                    n2++;
                }
            }
            while (n1 < len1)
            {
                d.Add(_values[n1++]);
            }

            while (n2 < len2)
            {
                d.Add(others[n2++]);
            }

            return(new DistinctInt32CountSummary((Int32[])d.ToArray(typeof(Int32))));
        }