zoukankan      html  css  js  c++  java
  • 行转列,报表统计时,同一Id不同状态下的数据

    //把数据放到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++;
                }
  • 相关阅读:
    全站之路一路坑(3)——使用百度站长工具提交站点地图
    全站之路一路坑(2)——在Apache下部署django博客
    全栈一路坑之使用django创建博客
    Django添加模型无法数据迁移解决方法
    一款自动汇报工作的微信机器人
    微信js接口自定义分享内容
    C Primer
    皇家每羊历险记(四)——角色移动
    【转载】Spring Boot 使用SSL-HTTPS
    解决https负载报错:unable to find valid certification path to requested target
  • 原文地址:https://www.cnblogs.com/yueyuepeng/p/5614364.html
Copyright © 2011-2022 走看看