zoukankan      html  css  js  c++  java
  • ZC公司员工评分系统——后台查询合成DataTable

     

        因为此系统中的评分指标是动态设置的,所以后台对每个评分指标查询结果显示的过程中需要对评分指标和被评人信息进行动态合成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();
    


     

  • 相关阅读:
    leetcode 155. Min Stack 、232. Implement Queue using Stacks 、225. Implement Stack using Queues
    leetcode 557. Reverse Words in a String III 、151. Reverse Words in a String
    leetcode 153. Find Minimum in Rotated Sorted Array 、154. Find Minimum in Rotated Sorted Array II 、33. Search in Rotated Sorted Array 、81. Search in Rotated Sorted Array II 、704. Binary Search
    leetcode 344. Reverse String 、541. Reverse String II 、796. Rotate String
    leetcode 162. Find Peak Element
    leetcode 88. Merge Sorted Array
    leetcode 74. Search a 2D Matrix 、240. Search a 2D Matrix II
    Android的API版本和名称对应关系
    spring 定时任务执行两次解决办法
    解析字符串为泛型的方法
  • 原文地址:https://www.cnblogs.com/CharmingDang/p/9663987.html
Copyright © 2011-2022 走看看