ZC公司员工评分系统——后台查询合成DataTable
来源:互联网 发布:淘宝好评返现被投诉了 编辑:程序博客网 时间:2024/05/16 04:43
因为此系统中的评分指标是动态设置的,所以后台对每个评分指标查询结果显示的过程中需要对评分指标和被评人信息进行动态合成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
- ZC公司员工评分系统——前台排版算法
- zc
- 麻雀虽小五脏俱全----ZC评价系统
- 推荐系统—影视评分预测
- 公司员工数据查询(SQL)
- R语言编写函数——豆瓣电影评分查询
- 需求分析挑战之旅(疯狂的订餐系统)(1)——某IT公司员工的吃饭问题
- C++小型公司员工管理系统
- 公司员工考勤系统Java代码
- Android图形显示系统——下层显示4:图层合成上(合成原理与3D合成)
- Android图形显示系统——下层显示4:图层合成上(合成原理与3D合成)
- 推荐系统—影视评分预测(续)
- 公司员工 经验——少说话,多做事
- 【剑指 offer】—— 为公司员工的年龄排序
- Linux笔记——linux下的语音合成系统
- React源码分析7 — React合成事件系统
- Drupal项目实战:公司员工订餐系统
- 博弈论
- IO流4
- 最短路径问题 动态规划
- 得到自身的Html
- xml直接生成界面之折腾三
- ZC公司员工评分系统——后台查询合成DataTable
- 经典排序算法
- 后台判断格式是否想要的类型可使用 try{} catch{}捕获错误,
- 常用字符串长度计算函数
- 一个数以最少步骤分解为另外两个数和差问题的解决
- 就是一直往前走
- 局部变量、全局变量、静态局部变量、静态全局变量的异同
- C++常用函数
- 取石子问题