碰上了这么一个需求,将有重复数据的行合并并累计金额。例如:
第一行: 小明 交通费 10元
第二行:小明 通讯费 20元
第三行:小李 通讯费 30元
合并成
第一行:小明 30元
第二行:小李 30元
//合并重复行
for (int i = 0; i < _DtList.Rows.Count; i++)
{
//删除状态跳过
if (_DtList.Rows[i].RowState == DataRowState.Deleted)
{
continue;
}
//从下一条开始循环判断表格内是否有数据重复,如果有则合并加上金额
for (int j = i + 1; j < _DtList.Rows.Count; j++)
{
//删除状态跳过
if (_DtList.Rows[j].RowState == DataRowState.Deleted)
{
continue;
}
//相同客户、业务员
if (_DtList.Rows[i]["ccus_id"].ToString() == _DtList.Rows[j]["ccus_id"].ToString() && _DtList.Rows[i]["cPersonCode"].ToString() == _DtList.Rows[j]["cPersonCode"].ToString())
{
//相同时合并数据:金额为两者合计。
_DtList.Rows[i]["md"] = Convert.ToDouble(_DtList.Rows[i]["md"]) + Convert.ToDouble(_DtList.Rows[j]["md"]);
//后一条状态标示为删除
_DtList.Rows[j].Delete();
}
}
}
//提交更改,提交后删除生效
_DtList.AcceptChanges();