因为此系统中的评分指标是动态设置的,所以后台对每个评分指标查询结果显示的过程中需要对评分指标和被评人信息进行动态合成datatable,然后显示。

后台查询界面:

以下是核心代码:

#region 合成datatable DataTable dtEvaluater = new DataTable();//将被评分人datatable当做源datatable DataTable dtMainIndex = new DataTable();//存放全部使用的大类指标 dtMainIndex = resultQueryManager.SelectAllMain("1"); //选出全部大类指标 dtEvaluater = resultQueryManager.SelectByDepartment(departmentName);//按部门名称选出全部被评分人 if (dtEvaluater.Rows.Count == 0) //没有被评人数据 { Label1.Visible = true; Label1.Text = "此部门下没有测评人。"; return; } //选出全部大类指标,当做列添加到dtEvaluater源datatable中,进行datatable的拼接 for (int k = 0; k < dtMainIndex.Rows.Count; k++) { string dtColumnName = dtMainIndex.Rows[k]["MainContent"].ToString(); //dtEvaluater.Columns.Add(dtColumnName);//dtEvaluater中添加大类列,并用大类内容作为列名 dtEvaluater.Columns.Add(dtColumnName, typeof(System.String));//dtEvaluater中添加大类列,并用大类内容作为列名 } dtEvaluater.Columns.Add("总分", typeof(System.String)); //添加总分列 //设置变量,用于存放计算后的总分 //循环添加每一个大类的分数 for (int i = 0; i < dtEvaluater.Rows.Count; i++) { double strSum = 0; //按照被评分人选出全部大指标分数,并添加上,合成一个datatable int EvaluaterID = System.Int32.Parse(dtEvaluater.Rows[i]["EvaluaterID"].ToString()); //得到dtEvaluater中被评人ID for (int j = 0; j < dtMainIndex.Rows.Count; j++) { int MainIndexID = System.Int32.Parse(dtMainIndex.Rows[j]["MainIndexID"].ToString());//得到大类指标ID //根据实验课指标大类Id,课程Id计算此课程此大类的分数 DataTable dtScore = resultQueryManager.AverageMainIndex(semester, year, MainIndexID, EvaluaterID);//一门课程一个大类指标的分数 string mainContent = dtMainIndex.Rows[j]["MainContent"].ToString(); //选出大类Id对应的大类名称 if (dtScore.Rows.Count != 0) //存在分数 { if (dtScore.Rows[0][0].ToString() == "") //此大类指标下没有分数值,此大类指标没有参加测评 { dtEvaluater.Rows[i][mainContent] = ""; } else { double dScore = Convert.ToDouble(dtScore.Rows[0][0].ToString()); //Math.Round(dScore,2);//按照四舍五入的国际标准 dtEvaluater.Rows[i][mainContent] = Math.Round(dScore, 2);//将分数加入到dt相对应的大类下 (转换成两位小数) strSum = strSum + Math.Round(dScore, 2); //dtEvaluater.Rows[i][mainContent] = dtScore.Rows[0][0].ToString(); //将分数加入到dt相对应的大类下 (没有转换成两位小数) } } else //不存在分数 { dtEvaluater.Rows[i][mainContent] = "0"; } dtEvaluater.Rows[i]["总分"] = strSum;//填充总分单元格 } } #endregion dtEvaluater.Columns.Remove("EvaluaterID"); dtEvaluater.Columns.Remove("IsUsed"); dtEvaluater.Columns["EvaluaterName"].ColumnName = "姓名"; dtEvaluater.Columns["EvaluaterDepartment"].ColumnName = "部门"; dtEvaluater.Columns["EvaluaterPosition"].ColumnName = "职务"; gvResult.DataSource = dtEvaluater; gvResult.DataBind();

ZC公司员工评分系统——后台查询合成DataTable相关推荐

  1. 基于安卓的公司员工考勤系统的设计与实现

    目 录 1 绪论 1 1.1 选题背景 1 1.2 研究现状 2 1.3 研究意义 3 1.4 研究内容 3 2 相关的理论和技术 4 2.1 JAVA技术与安卓介绍 4 2.2 Android的开发 ...

  2. 02_简易评分系统(DOS界面)(小钱版)[2011-08-01]

    引言 (一)程序名称: 简易评分系统V1.0(DOS界面)(小钱版) (二)开发环境: 电脑型号:        惠普 HP Pavilion g4 Notebook PC 笔记本电脑 操作系统:   ...

  3. 计算机毕业设计SSM电力公司员工安全培训系统【附源码数据库】

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  4. [附源码]Java计算机毕业设计SSM电力公司员工安全培训系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  5. Java毕设项目电力公司员工安全培训系统计算机(附源码+系统+数据库+LW)

    Java毕设项目电力公司员工安全培训系统计算机(附源码+系统+数据库+LW) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行) ...

  6. Java毕设项目电力公司员工安全培训系统(java+VUE+Mybatis+Maven+Mysql)

    Java毕设项目电力公司员工安全培训系统(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX ...

  7. java毕业设计电力公司员工安全培训系统Mybatis+系统+数据库+调试部署

    java毕业设计电力公司员工安全培训系统Mybatis+系统+数据库+调试部署 java毕业设计电力公司员工安全培训系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开 ...

  8. 需求分析挑战之旅(疯狂的订餐系统)(1)——某IT公司员工的吃饭问题

    摘要: 说教性质的需求分析理论,各位看了也白看,所以咱们就来一个真实个案--"订餐系统"体验一下."订餐系统"貌似简单,但陷阱重重,各种需求分析的经典场景将会一 ...

  9. 如何让公司员工认识和接受点晴免费OA系统

    如何让公司员工认识和接受点晴免费OA系统 在OA实施过程中,首先遇到的是员工电脑水平不足,习惯于传统的工作习惯,不情愿到OA中办公,本文章方法就是如何让员工认识和接受点晴免费OA系统,以帮助点晴免费O ...

  10. XXX公司的员工积分系统

    上个星期给XXX公司做的员工积分系统结束了项目终验.这个项目是我跟的第一个项目. 现在在系统分系跟系统架构及团队管理方面有很多感想.在整个过程是也暴露出了很多问题.我现在想把这个项目的需求及相关情况讲 ...

最新文章

  1. 宏基因组公众号7月精选文章目录
  2. Java程序员校招蚂蚁金服,mysql培训考试
  3. cordova 打包工具
  4. Karush-Kuhn-Tucker (KKT条件)
  5. 姜黄的毒副作用调研汇总(调研手稿二)
  6. linux下查看系统socket读写缓冲区
  7. 第一篇:稳定性之如何理解高可用?
  8. HTML5新增相关标签的和属性
  9. Github上点赞最多的10个Python项目(2020年3月)
  10. php apc缓存以及与redis的对比
  11. Python爬虫整站爬取安居客新房房源数据
  12. 计算机网络维护服务承诺书,网络信息技术中心服务承诺书
  13. 7天快速掌握MySQL-DAY2
  14. 高通SDX12:SFE(shortcut-fe)软加速驱动效果调测
  15. rf 遍历列表_RF之关键字、变量、循环
  16. 「需求广场」需求词更新明细(九)
  17. 计算机房考研英语考试时间按,考研各科目答题时间分配
  18. Oracle中安全库存设定和更新,轻松管控仓库的秘密 - 合理设定安全库存和最大库存量...
  19. Xlinx的 FIFO IP核
  20. 企业管理软件公司Coupa Software提高IPO价格区间

热门文章

  1. 鸟哥linux私房菜读后,鸟哥的Linux私房菜读书笔记(1)
  2. 浙江最新建筑施工特种工(施工升降机)机考真题及答案解析
  3. Jenkins 配置 Maven 环境变量
  4. python输入输出字符图形_【Python教程】图片转字符画
  5. 用友U8打开起初采购入库单报错
  6. 鼠标自动点击器linux,鼠标自动点击器PC版下载
  7. 第三代计算机的内存是,Intel正式发布Cooper Lake、第三代傲腾内存和新数据中心SSD...
  8. 最详细的vs2015使用教程(有图)
  9. 让读书的人面上有光:亚马逊Kindle青春版上市
  10. 傲梅分区助手克隆Linux硬盘,傲梅分区助手如何复制磁盘?分区助手克隆磁盘的具体教程...