Esempio n. 1
0
        /// <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);
            }
        }