public override void activityForRow(DataColumnChangeEventArgs e)
        {
            string curColumn             = e.Column.ColumnName;
            Dublet <string, string> pair = new Dublet <string, string>(string.Empty, string.Empty);

            touchCell(e.Row, curColumn);
            Stack <string> stack = toucher.sort(columns, e.Row);

            //Stack<Dublet<string, DataRow>> stack =
            //toucher.sort(new Dublet<string, DataRow>[]{
            //new Dublet<string,DataRow>(columns[0],e.Row),
            //new Dublet<string,DataRow>(columns[1],e.Row),
            //new Dublet<string,DataRow>(columns[2],e.Row)
            //});
            if (stack.Count >= 2)
            {
                pair.first  = stack.Pop();
                pair.second = stack.Pop();

                if ((pair.first == columns[0] && pair.second == columns[1]) || (pair.first == columns[1] && pair.second == columns[0]))
                {
                    forward.doMath(e.Row, columns[2], e.Row[columns[0]], e.Row[columns[1]], padCoif);
                }
                else
                if ((pair.first == columns[1] && pair.second == columns[2]) || (pair.first == columns[2] && pair.second == columns[1]))
                {
                    backward.doMath(e.Row, columns[0], e.Row[columns[2]], e.Row[columns[1]], padCoif);
                }
                else
                if ((pair.first == columns[2] && pair.second == columns[0]) || (pair.first == columns[0] && pair.second == columns[2]))
                {
                    backward.doMath(e.Row, columns[1], e.Row[columns[2]], e.Row[columns[0]], padCoif);
                }
            }
        }
Example #2
0
        protected void table_DistributeValues(DataRow[] topRows, DataRow[] subRows)
        {
            Dublet <string, string> pair = new Dublet <string, string>(string.Empty, string.Empty);

            double topSum = ColumnMath.sum(topRows, columns[2]);

            for (int i = 0; i < subRows.Length; ++i)
            {
                DataRow curSubRow = subRows[i];
                Stack <Dublet <string, DataRow> > stack =
                    toucher.sort(new Dublet <string, DataRow>[] {
                    new Dublet <string, DataRow>(columns[0], curSubRow),
                    new Dublet <string, DataRow>(columns[1], curSubRow),
                });
                if (stack.Count >= 1)
                {
                    pair.second = stack.Pop().first;
                    if (pair.second == columns[0])
                    {
                        forward.doMath(curSubRow, columns[1], topSum, curSubRow[columns[0]], padCoif);
                    }
                    else
                    if (pair.second == columns[1])
                    {
                        backward.doMath(curSubRow, columns[0], curSubRow[columns[1]], topSum, padCoif);
                    }
                }
            }
        }