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); } } }
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); } } } }