//把数据放到Dictionary中
DataTable NewTable = new DataTable();
NewTable.Columns.Add("name", typeof(string));
NewTable.Columns.Add("company", typeof(string));
NewTable.Columns.Add("fgongkai", typeof(string));
NewTable.Columns.Add("finvite", typeof(string));
NewTable.Columns.Add("fmeeting", typeof(string));
NewTable.Columns.Add("ftotal", typeof(string));
NewTable.Columns.Add("sgongkai", typeof(string));
NewTable.Columns.Add("sinvite", typeof(string));
NewTable.Columns.Add("smeeting", typeof(string));
NewTable.Columns.Add("stotal", typeof(string));
NewTable.Columns.Add("total", typeof(string));
Dictionary<string, DataRow> DataList = new Dictionary<string, DataRow>();
DataRow Newdr;
foreach (DataRow dr in dt.Rows)
{
if (!DataList.ContainsKey(dr["ExpertId"].ToString().Trim()))
{
Newdr = NewTable.NewRow();
Newdr["name"] = dr["ExpertName"];
Newdr["company"] = dr["CompanyName"];
if (dr["InMeeting"].ToString().Trim() == "1")
{
Newdr["fgongkai"] = DataConvert.ToInt(dr["gongkai"]);
Newdr["finvite"] = DataConvert.ToInt(dr["invite"]);
Newdr["fmeeting"] = DataConvert.ToInt(dr["meeting"]);
Newdr["ftotal"] = DataConvert.ToInt(dr["gongkai"]) + DataConvert.ToInt(dr["invite"]) + DataConvert.ToInt(dr["meeting"]);
Newdr["total"] = Newdr["ftotal"];
}
else
{
Newdr["sgongkai"] = DataConvert.ToInt(dr["gongkai"]);
Newdr["sinvite"] = DataConvert.ToInt(dr["invite"]);
Newdr["smeeting"] = DataConvert.ToInt(dr["meeting"]);
Newdr["stotal"] = DataConvert.ToInt(dr["gongkai"]) + DataConvert.ToInt(dr["invite"]) + DataConvert.ToInt(dr["meeting"]);
Newdr["total"] = Newdr["stotal"];
}
DataList.Add(dr["ExpertId"].ToString(), Newdr);
}
else
{
Newdr = DataList[dr["ExpertId"].ToString()];
if (dr["InMeeting"].ToString().Trim() == "1")
{
DataList[dr["ExpertId"].ToString()]["fgongkai"] = DataConvert.ToInt(dr["gongkai"]);
DataList[dr["ExpertId"].ToString()]["finvite"] = DataConvert.ToInt(dr["invite"]);
DataList[dr["ExpertId"].ToString()]["fmeeting"] = DataConvert.ToInt(dr["meeting"]);
DataList[dr["ExpertId"].ToString()]["ftotal"] = DataConvert.ToInt(dr["gongkai"]) + DataConvert.ToInt(dr["invite"]) + DataConvert.ToInt(dr["meeting"]);
}
else
{
DataList[dr["ExpertId"].ToString()]["sgongkai"] = DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["sgongkai"]) + DataConvert.ToInt(dr["gongkai"]);
DataList[dr["ExpertId"].ToString()]["sinvite"] = DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["sinvite"]) + DataConvert.ToInt(dr["invite"]);
DataList[dr["ExpertId"].ToString()]["smeeting"] = DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["smeeting"]) + DataConvert.ToInt(dr["meeting"]);
DataList[dr["ExpertId"].ToString()]["stotal"] = DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["stotal"]) + DataConvert.ToInt(dr["gongkai"]) + DataConvert.ToInt(dr["invite"]) + DataConvert.ToInt(dr["meeting"]);
}
DataList[dr["ExpertId"].ToString()]["total"] = DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["ftotal"]) + DataConvert.ToInt(DataList[dr["ExpertId"].ToString()]["stotal"]);
}
}
DataTable NewTable2 = new DataTable();
NewTable2 = NewTable.Clone();//复制NewTable表结构
foreach (DataRow dr in DataList.Values)//将DataList中的数据放到NewTable2中
{
NewTable2.Rows.Add(dr.ItemArray);
}
DataView dv = NewTable2.DefaultView;
dv.Sort = " total desc";//根据total排序
DataTable dt1 = dv.ToTable();
int row = 1;
foreach (DataRow dr in dt1.Rows)
{
html.Append(@"
<tr>
<td class=""gray"" align=""center"" valign=""middle"">" + row + @"</td>
<td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + dr["name"] + @"</td>
<td align=""left"" valign=""middle"" style=""background: #D6F1FC"">" + dr["company"] + @"</td>
<td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["fgongkai"]) + @"</td>
<td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["finvite"]) + @"</td>
<td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["fmeeting"]) + @"</td>
<td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["ftotal"]) + @"</td>
<td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["sgongkai"]) + @"</td>
<td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["sinvite"]) + @"</td>
<td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["smeeting"]) + @"</td>
<td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["stotal"]) + @"</td>
<td align=""center"" valign=""middle"" style=""background: #D6F1FC"">" + DataConvert.ToInt(dr["total"]) + @"</td>
</tr>");
row++;
}