private void BindDgv() { dgvUserAppraisa.AutoGenerateColumns = false; string userName = UserNa.Text.Trim(); int baseTypeId = (int)comBase.SelectedValue; bool isStop = ChkisStop.Checked; List <UserAppraisalBases> userAppraisalBases = UserAppraisalBases.GetListJoinAppraisal(); if (baseTypeId == 0) { dgvUserAppraisa.DataSource = userAppraisalBases.FindAll(m => m.UserName.Contains(userName) && m.IsDel == isStop); } else { dgvUserAppraisa.DataSource = userAppraisalBases.FindAll(m => m.UserName.Contains(userName) && m.IsDel == isStop && m.BaseTypeId == baseTypeId); } }
private void bindDgvUserappraisal() { DataTable dtUser = UserAppraisalBases.GetDtJoinAppraisal(); // 获取系数表集合 List <AppraisalCoefficients> appraisalCoefficients = AppraisalCoefficients.ListAll(); // 填充 foreach (var item in appraisalCoefficients) { //添加系数名 dtUser.Columns.Add(new DataColumn { ColumnName = "AppraisalType" + item.Id }); // 添加系数值 dtUser.Columns.Add(new DataColumn { ColumnName = "AppRaisalCoefficient" + item.Id }); // 添加计算方式 dtUser.Columns.Add(new DataColumn { ColumnName = "CalculationMethod" + item.Id }); } // 考核年度 dtUser.Columns.Add(new DataColumn { ColumnName = "AssessmentYear" }); // 添加实发年终奖 dtUser.Columns.Add(new DataColumn { ColumnName = "YearBonus" }); // dtUser 填充数据 List <UserAppraisalCoefficients> userAppraisalCoefficients = UserAppraisalCoefficients.ListAll(); for (int i = 0; i < dtUser.Rows.Count; i++) { var uacFilter = userAppraisalCoefficients.FindAll (m => m.UserId == (int)dtUser.Rows[i]["Id"] && m.AssessmentYear == cbxYear.Text); // 系数计算的数组,存放每个考核类型的总系数 double[] yearbonusArray = new double[uacFilter.Count]; for (int j = 0; j < uacFilter.Count; j++) { // 获取AppraisalType对应的dtUser的ColumnName的值 // 获取考核次数 string appraisalTypeKey = "AppraisalType" + uacFilter[j].CoefficientId; int appraisalTypeCountValue = uacFilter[j].Count; // 获取考核系数 string appraisalCoefficientKey = "AppRaisalCoefficient" + uacFilter[j].CoefficientId; int appraisalCoefficientValue = Convert.ToInt32(uacFilter[j].AppraisalCoefficient); //获取计算方式 string calculationMethodKey = "CalculationMethod" + uacFilter[j].CoefficientId; int calculationMethodValue = Convert.ToInt32(uacFilter[j].CalculationMethod); //绑定 dtUser值 dtUser.Rows[i][appraisalTypeKey] = appraisalTypeCountValue; dtUser.Rows[i][appraisalCoefficientKey] = appraisalCoefficientValue; dtUser.Rows[i][calculationMethodKey] = calculationMethodValue; yearbonusArray[j] = appraisalCoefficientValue * appraisalTypeCountValue * calculationMethodValue; } dtUser.Rows[i]["AssessmentYear"] = cbxYear.Text; // 结算实发年终奖 double yearbonusAll = 0; for (int j = 0; j < yearbonusArray.Length; j++) { yearbonusAll += yearbonusArray[j]; } // 计算实发年终奖 double yearBonus = (1 + yearbonusAll) * Convert.ToDouble(dtUser.Rows[i]["AppraisalBase"]); // 加入年终奖扣成负数则为0 dtUser.Rows[i]["YearBonus"] = yearBonus < 0 ? 0 : yearBonus; } dgvUserAppraisal.AutoGenerateColumns = false; dgvUserAppraisal.DataSource = dtUser; }