/// <summary> /// 合并留存金额 /// </summary> private static void MergeReserveRows(DsTable dsTable) { var sumReserveRow = new DsRow(); for (int i = 0; i < dsTable.ColumnCount - 2; i++) { sumReserveRow.AppendValue((0m).ToString("n2")); } var rowCsdcReserve = dsTable.FindRow("中证本息兑付留存.End Balance"); if (rowCsdcReserve != null) { sumReserveRow += rowCsdcReserve; } var rows = dsTable.Rows.Where(x => x.Description.EndsWith("Reserve.End Balance", StringComparison.CurrentCultureIgnoreCase) || x.Description.EndsWith("留存账户.End Balance", StringComparison.CurrentCultureIgnoreCase)).ToList(); foreach (var row in rows) { sumReserveRow += row; } sumReserveRow.Name = "Reserve Accounts"; sumReserveRow.Description = "当期留存账户余额"; var reserveAccountDisplayEventRow = dsTable.FindRow("留存账户显示事件"); if (reserveAccountDisplayEventRow == null) { dsTable.RemoveRow(rowCsdcReserve); dsTable.RemoveRow(rows); } else { dsTable.RemoveRow(reserveAccountDisplayEventRow); } //汇总后的留存金额插入到表中 var insertRow = false; for (int i = dsTable.Rows.Count - 1; i >= 0; i--) { var row = dsTable.Rows[i]; if (row.Name.Equals("Reserve Accounts", StringComparison.CurrentCultureIgnoreCase)) { dsTable.Rows.Insert(i + 1, sumReserveRow); insertRow = true; break; } } if (!insertRow) { dsTable.Rows.Add(sumReserveRow); } }